Telegram plugin: notifications/claude/channel not delivered to session
Resolved 💬 3 comments Opened Mar 20, 2026 by git-akki Closed Mar 24, 2026
Description
The Telegram plugin's MCP channel notifications (notifications/claude/channel) are not being delivered to the Claude Code session, even though the bot correctly receives inbound messages.
Environment
- Claude Code version: 2.1.80
- MCP SDK version: 1.27.1
- OS: macOS (Darwin 25.3.0)
- Runtime: Bun 1.3.11
- Plugin:
telegram@claude-plugins-officialv0.0.1
What works
- Bot token is valid and bot polls successfully (
bot.start()logspolling as @johndrew_bot) - Bot receives DMs — the
gate()function passes (user is inallowFrom) sendChatAction('typing')fires (typing indicator visible in Telegram)- Ack reaction works if configured
- Outbound
replytool works — Claude can send messages to Telegram getWebhookInfoshows no webhook conflict- Only one bot process is running
What doesn't work
mcp.notification({ method: 'notifications/claude/channel', params: { content, meta } })is called (line 580 ofserver.ts) but the message never appears in the Claude Code session- The
voidon the notification call silently swallows any errors, making debugging difficult - The server declares
experimental: { 'claude/channel': {} }in capabilities
Steps to reproduce
- Install and configure the Telegram plugin (
enabledPlugins: { "telegram@claude-plugins-official": true }) - Set bot token in
~/.claude/channels/telegram/.env - Add your Telegram user ID to
allowFrominaccess.json - Start Claude Code — plugin MCP server starts and polls
- Send a DM to the bot on Telegram
- Observe: typing indicator appears in Telegram, but no
<channel source="telegram">message appears in Claude Code
Investigation
- The MCP SDK's
assertNotificationCapabilityhas no explicit case fornotifications/claude/channelbut falls through the switch without error - The
notification()method inprotocol.jsshould send via stdio transport — no obvious blocking logic - Restarting Claude Code and
/reload-pluginsdoes not fix the issue - Multiple restarts over multiple sessions confirmed the issue persists
Expected behavior
Inbound Telegram messages should appear in the Claude Code session as <channel source="telegram" ...> blocks, allowing Claude to read and respond to them.
🤖 Generated with Claude Code
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗