Telegram plugin: inbound channel notifications not surfaced in conversation
Bug description
The official Telegram plugin (telegram@claude-plugins-official v0.0.1) successfully receives inbound Telegram messages and sends notifications/claude/channel via the MCP SDK, but Claude Code never injects them into the conversation as <channel> tags. Outbound messages (via the reply tool) work correctly.
Environment
- Claude Code: v2.1.90 (also reproduced on v2.1.79)
- Plugin:
telegram@claude-plugins-officialv0.0.1 - MCP SDK:
@modelcontextprotocol/sdkv1.27.1 - Runtime: Bun
- OS: macOS (Darwin 24.6.0)
Steps to reproduce
- Install and configure the Telegram plugin (
/telegram:configurewith a valid bot token) - Pair a Telegram user via
/telegram:access - Send a message from Telegram to the bot
- Observe: the bot shows a "typing" indicator (confirming the message passed the access gate), but no
<channel>tag appears in the Claude Code conversation
Diagnosis
Added debug logging to server.ts in the handleInbound function. The notification payload is well-formed and mcp.notification() resolves successfully (no error thrown or caught). Example debug output:
2026-04-02T03:37:35.007Z SENDING notification: {"method":"notifications/claude/channel","params":{"content":"hello","meta":{"chat_id":"8254363101","message_id":"33","user":"frenchbutnice","user_id":"8254363101","ts":"2026-04-02T03:37:34.000Z"}}}
2026-04-02T03:37:35.007Z SENT OK
The server declares the experimental capability:
capabilities: { tools: {}, experimental: { 'claude/channel': {} } }
The MCP transport (stdio over unix sockets) is functioning — tool calls from Claude Code to the server work fine. The issue is specifically that Claude Code does not process or surface the notifications/claude/channel notification it receives from the MCP server.
Expected behavior
Inbound Telegram messages should appear in the conversation as <channel source="telegram" chat_id="..." message_id="..." user="..." ts="..."> tags, as described in the plugin's MCP server instructions.
Actual behavior
The notification is silently consumed. No <channel> tag appears. The Telegram user sees only the "typing" indicator and never receives a response.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗