Telegram plugin: MCP channel notifications not delivered to conversation
Resolved 💬 4 comments Opened Mar 22, 2026 by Crispydug Closed Apr 23, 2026
Bug Description
The Telegram plugin (plugin:telegram@claude-plugins-official) successfully receives inbound messages and sends MCP notifications/channel/message via stdio, but Claude Code does not surface these notifications to the active conversation.
Environment
- Claude Code version: 2.1.81
- Platform: macOS (Darwin 25.3.0)
- Launch command:
claude --channels plugin:telegram@claude-plugins-official - Plugin version: 0.0.1 (from
~/.claude/plugins/cache/claude-plugins-official/telegram/0.0.1)
Steps to Reproduce
- Configure Telegram plugin with valid bot token and access.json (allowlist policy with authorized user ID)
- Start Claude Code with
claude --channels plugin:telegram@claude-plugins-official - Verify outbound works: use
replytool to send a message to Telegram — succeeds - Send a message FROM Telegram TO the bot
- Observe: message never appears in the Claude Code conversation
Evidence
Debug logging added to the plugin's server.ts confirms:
2026-03-22T19:44:57.823Z gate result: deliver for sender=6304339334 text=hello
2026-03-22T19:44:57.830Z notification SENT OK for: hello
2026-03-22T19:46:43.754Z gate result: deliver for sender=6304339334 text=can yuo see this
2026-03-22T19:46:43.761Z notification SENT OK for: can yuo see this
The plugin:
- Receives the Telegram update via long-polling ✅
- Passes the access control gate (allowlist check) ✅
- Sends
notifications/channel/messagevia MCP stdio transport ✅ - Claude Code does NOT surface the notification to the conversation ❌
Additional Context
- The
StdioServerTransportin@modelcontextprotocol/sdkwrites notifications directly to stdout - The MCP SDK client silently drops notifications without registered handlers (
protocol.js—_onNotificationreturns early if no handler exists) - This suggests Claude Code's MCP client may not be registering a handler for
notifications/channel/message
Expected Behavior
Inbound Telegram messages should appear in the conversation as <channel source="telegram" ...> blocks, enabling bidirectional communication.
Actual Behavior
Only outbound messaging works. Inbound messages are received by the plugin and sent as MCP notifications but never surface in the conversation.
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗