Telegram plugin: inbound channel notifications not surfaced in conversation

Resolved 💬 3 comments Opened Apr 2, 2026 by Ulkogan Closed Apr 5, 2026

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-official v0.0.1
  • MCP SDK: @modelcontextprotocol/sdk v1.27.1
  • Runtime: Bun
  • OS: macOS (Darwin 24.6.0)

Steps to reproduce

  1. Install and configure the Telegram plugin (/telegram:configure with a valid bot token)
  2. Pair a Telegram user via /telegram:access
  3. Send a message from Telegram to the bot
  4. 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.

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗