Telegram plugin: inbound messages not delivered to conversation
Resolved 💬 3 comments Opened Mar 20, 2026 by klaushofrichter Closed Mar 21, 2026
Summary
The Telegram MCP plugin (telegram channel) polls and consumes inbound messages from the Telegram Bot API, but the notifications/claude/channel MCP notification never reaches the active Claude Code conversation. Outbound messages (via the reply tool) work fine.
Steps to reproduce
- Configure the Telegram plugin with a valid bot token in
~/.claude/channels/telegram/.env - Add a user ID to
allowFrominaccess.json - Start a Claude Code session,
/reload-plugins - Send a DM to the bot from the allowed Telegram account
- The message is consumed (verified via
getUpdatesreturning empty results), but no<channel>notification appears in the conversation
Debugging performed
- Bot token: valid (
getMesucceeds, bot responds toreplytool calls) - Webhook: none set (
getWebhookInforeturns empty URL) - Polling: confirmed working —
getUpdatesreturns empty after the plugin consumes messages - Gate logic: user ID is in
allowFrom, so gate returnsdeliver(verified by readingserver.ts) - MCP notification:
handleInboundcallsmcp.notification({ method: 'notifications/claude/channel', ... })— this fires but the conversation never sees it - Outbound:
replytool works correctly (messages delivered to Telegram) - Session restart: tried
/reload-pluginsand full session restart — no change - Switched bot tokens: reproduced with two different bots
Expected behavior
Inbound Telegram messages from allowed users should appear in the Claude Code conversation as <channel source="telegram" ...> blocks.
Environment
- macOS (Darwin 25.3.0)
- Claude Code with Telegram plugin v0.0.1
- grammy-based bot polling
🤖 Generated with Claude Code
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗