Telegram channel plugin: MCP notifications not delivered to conversation

Resolved 💬 4 comments Opened Mar 26, 2026 by MrStnr21 Closed Mar 30, 2026

Bug description

The Telegram channel plugin (telegram@claude-plugins-official v0.0.4) stops delivering inbound messages to the Claude Code conversation. The bot receives messages, processes them, and mcp.notification() resolves successfully — but the <channel source="telegram"> tags never appear in the conversation.

This was working 2–3 hours before the report, in the same Claude Code version, same machine, same bot token. No configuration changes were made.

Environment

  • Claude Code: v2.1.84 (latest, confirmed via claude update)
  • OS: macOS Darwin 25.3.0
  • Bun: 1.3.11
  • MCP SDK: @modelcontextprotocol/sdk 1.27.1
  • grammy: ^1.21.0
  • Plugin version: 0.0.4

Diagnostic steps performed

  1. Bot polling worksgetWebhookInfo shows pending_update_count: 0, the bot consumes all updates.
  2. Outbound tools workmcp__plugin_telegram_telegram__reply sends messages to Telegram successfully.
  3. Bot is single-instance — only one bun server.ts process running, no 409 Conflict.
  4. gate() returns deliver — user ID is in allowFrom, confirmed via debug log.
  5. mcp.notification() succeeds — added debug logging to handleInbound; the promise resolves without error:

``
[2026-03-26T11:43:56.251Z] handleInbound called: text="тест", from=245671573
[2026-03-26T11:43:56.251Z] gate result: deliver
[2026-03-26T11:43:56.252Z] sending mcp.notification for text="тест"
[2026-03-26T11:43:56.252Z] mcp.notification succeeded for text="тест"
``

  1. Full reinstall attempted — removed ~/.claude/channels/telegram/ and ~/.claude/plugins/cache/claude-plugins-official/telegram/, reconfigured token and access from scratch, reloaded plugins. Same result.
  2. Multiple /reload-plugins and process kills attempted — no effect.
  3. User reports restarting Claude Code entirely — same result.

Expected behavior

notifications/claude/channel sent by the MCP server should appear in the conversation as <channel source="telegram" ...> tags, as they did ~2 hours prior.

Actual behavior

The notification is sent successfully (no error, promise resolves), but Claude Code silently drops it — no <channel> tag appears in the conversation.

Reproduction

  1. Install telegram@claude-plugins-official
  2. Configure bot token and pair a Telegram user
  3. Send a message from Telegram to the bot
  4. Observe that no <channel> tag appears in the Claude Code conversation, despite mcp.notification() succeeding on the server side

View original on GitHub ↗

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