Telegram plugin: inbound channel notifications silently dropped
Resolved 💬 3 comments Opened Mar 20, 2026 by RananjayRaj Closed Mar 20, 2026
Bug Report
Summary
The Telegram plugin (telegram@claude-plugins-official v0.0.1) can send messages to Telegram via MCP tools (reply, react, edit_message), but inbound messages from Telegram never surface in the Claude Code conversation. The notifications/claude/channel MCP notification is silently dropped.
Environment
- Claude Code version: 2.1.80 (latest)
- OS: macOS (Darwin 25.3.0)
- MCP SDK version: 1.27.1
- Plugin:
telegram@claude-plugins-officialv0.0.1 - Runtime: Bun
Steps to Reproduce
- Install the Telegram plugin: enable
telegram@claude-plugins-official - Configure bot token via
/telegram:configure - Pair a Telegram user via
/telegram:access pair <code> - User is added to
allowFrominaccess.json,dmPolicyset toallowlist - Send a message from the paired Telegram account to the bot
- Message is consumed by the server (verified:
pending_update_count: 0fromgetWebhookInfo, no webhook conflict) - Message passes the gate (user is allowlisted)
mcp.notification({ method: 'notifications/claude/channel', params: { content, meta } })fires on line 578 ofserver.ts- Nothing appears in Claude Code — the notification is silently dropped
What Works
- Outbound:
replytool sends messages to Telegram successfully - Outbound:
reacttool adds emoji reactions - Outbound:
edit_messagetool edits bot messages - Bot token validation:
getMereturns correct bot info - Pairing flow:
/start→ pairing code →/telegram:access pair→ "Paired!" confirmation sent - Server process stays running, polls correctly
What Doesn't Work
- Inbound
notifications/claude/channelnotifications never reach the Claude Code conversation - The server declares
experimental: { 'claude/channel': {} }in MCP capabilities (line 338 ofserver.ts) - The notification fires (no error on server side) but Claude Code doesn't process it
Observations
- The bot briefly responded to one inbound message during the session, suggesting the capability exists but is unreliable
- Multiple restart attempts (closing all sessions, restarting Claude Code) did not resolve
- No competing webhook (
getWebhookInforeturns empty URL) - Single session running (no dual-process conflict)
Expected Behavior
Inbound Telegram messages should appear in the Claude Code conversation as <channel source="telegram" ...> blocks, allowing Claude to read and respond to them.
Actual Behavior
Inbound messages are consumed by the server and the MCP notification fires, but nothing appears in the Claude Code session. The experimental claude/channel capability appears to not be reliably wired up on the client side.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗