Telegram channel plugin: inbound notifications/claude/channel silently dropped

Resolved 💬 6 comments Opened Mar 25, 2026 by InquiringMinion Closed May 23, 2026

Summary

The Telegram channel plugin (claude-plugins-official/telegram v0.0.4) successfully sends notifications/claude/channel via the MCP stdio transport, but Claude Code never surfaces inbound messages in the conversation. Outbound tools (reply, react, edit_message) work fine.

Reproduction

  1. Enable Telegram plugin, configure bot token and allowlist
  2. Start Claude Code — plugin connects, MCP tools available
  3. Send a message from the allowlisted Telegram user
  4. Message never appears as a <channel> tag in the conversation
  5. Reproduced across 4+ restarts of Claude Code

Debug evidence

Added logging to server.ts to confirm the plugin side is working correctly:

[2026-03-25T04:11:10.237Z] connecting MCP stdio transport...
[2026-03-25T04:11:10.238Z] MCP stdio transport connected
[2026-03-25T04:12:02.594Z] gate result: deliver for <user_id> in chat <chat_id>
[2026-03-25T04:12:02.595Z] gate passed, delivering "Test" to Claude
[2026-03-25T04:12:02.595Z] notification payload: {"method":"notifications/claude/channel","params":{"content":"Test","meta":{...}}}
[2026-03-25T04:12:02.595Z] notification sent successfully

The MCP notification resolves without error — the transport accepts it — but Claude Code does not inject it into the conversation.

What works

  • Bot token is valid (getMe and getUpdates return correctly)
  • User ID is in access.json allowFrom
  • Gate check passes (action: deliver)
  • Outbound: telegram/reply tool sends messages to Telegram successfully
  • MCP stdio transport is connected

What doesn't work

  • Inbound messages from Telegram never appear in the Claude Code conversation
  • No <channel source="telegram" ...> tags are ever rendered

Environment

  • Claude Code v2.1.81
  • macOS Darwin 25.3.0
  • Plugin runtime: bun
  • Plugin version: claude-plugins-official/telegram 0.0.4

View original on GitHub ↗

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