Telegram channel MCP notifications not surfaced in conversation
Resolved 💬 5 comments Opened Mar 23, 2026 by anthony-potts Closed Apr 12, 2026
Description
Inbound Telegram messages are received by the Telegram channel MCP server and mcp.notification() resolves successfully, but the messages are never injected into the active Claude Code conversation as <channel> tags.
Environment
- Claude Code version: 2.1.81
- OS: macOS (Darwin 24.6.0)
- Plugin:
claude-plugins-official/telegramv0.0.1 - Runtime: Bun
Steps to Reproduce
- Configure the Telegram channel plugin with a valid bot token and allowlisted user ID
- Start a Claude Code session
- Send a message to the bot from the allowlisted Telegram account
- Observe that no
<channel source="telegram">tag appears in the conversation
Observed Behavior
- The bot receives the message (confirmed via grammY polling)
- The access gate passes (
gate result=deliver) mcp.notification({ method: 'notifications/claude/channel', ... })resolves without error- Debug logging confirms "notification sent successfully"
- No
<channel>tag ever appears in the Claude Code conversation - The bot's typing indicator shows in Telegram, confirming the message was processed
Expected Behavior
The notification should be surfaced in the conversation as a <channel source="telegram" chat_id="..." message_id="..." user="..." ts="..."> tag, allowing Claude to read and reply to the message.
Additional Context
- Outbound replies via the
replytool work correctly — messages sent from Claude reach Telegram - Only one bot process is running (no duplicate consumer / 409 conflict)
- The MCP server declares
experimental: { 'claude/channel': {} }capability - Tested across multiple session restarts — same behavior
Debug Log (excerpt)
[timestamp] gate result=deliver from=<user_id> chat=<chat_id>
[timestamp] sending notification chat_id=<chat_id> text=okay, how about now?
[timestamp] notification sent successfullyThis issue has 5 comments on GitHub. Read the full discussion on GitHub ↗