Telegram plugin: inbound notifications/claude/channel not delivered to session (v2.1.89, macOS)
Resolved 💬 2 comments Opened Apr 1, 2026 by cseini Closed May 7, 2026
Bug Description
Telegram plugin's inbound MCP channel notifications (notifications/claude/channel) are not delivered to the Claude Code session. The bot receives messages and processes them successfully, but they never appear in the conversation.
Environment
- Claude Code version: 2.1.89
- OS: macOS (Darwin 25.4.0, arm64)
- Runtime: Bun
- Plugin:
claude-plugins-official/telegramv0.0.4 - MCP SDK:
@modelcontextprotocol/sdk ^1.0.0
What works
- Bot polls Telegram successfully (confirmed via 409 Conflict on manual
getUpdates) gate()passes — typing indicator shows in Telegrammcp.notification()resolves successfully (no error)- Outbound
replytool works perfectly — bot sends messages to Telegram without issue - MCP stdio transport is functional for tool calls (request/response)
What doesn't work
- Inbound messages from Telegram never appear in the Claude Code conversation
mcp.notification({ method: 'notifications/claude/channel', ... })completes with no error but the client does not surface the message
Debug evidence
Added file-based debug logging to server.ts. After sending a message from Telegram:
[2026-04-01T05:21:52.783Z] handleInbound: gate passed, chat_id=7207774160, user=7207774160, text=333
[2026-04-01T05:21:52.783Z] mcp.notification called: {"method":"notifications/claude/channel","params":{"content":"333","meta":{"chat_id":"7207774160","message_id":"48","user":"7207774160","user_id":"7207774160","ts":"2026-04-01T05:21:52.000Z"}}}
[2026-04-01T05:21:52.784Z] mcp.notification SUCCESS
The server-side notification succeeds, but the Claude Code client silently drops it.
Steps to reproduce
- Configure Telegram plugin with bot token and allowlist
- Start Claude Code session
- Send a message to the bot from Telegram
- Observe: typing indicator appears in Telegram, but message never arrives in Claude Code
- Use the
replytool to send a message back — this works fine
What I've tried
- Restarting Claude Code multiple times
- Killing orphaned bot processes and restarting
/reload-pluginsclaude --update(already latest)- Verified
access.jsonhas correctallowFromwith sender's user ID
Related issues
- #36429, #36431, #36472, #36802, #37498, #37633, #37933, #38259
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗