Telegram plugin: inbound messages not delivered to conversation
Status Fixed / completed
Maintainer reply None cached
Activity 3 comments · opened Mar 20, 2026 · 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 ↗