Telegram channel plugin: inbound notifications not delivered (typing indicator fires but message never arrives)
Description
The Telegram channel plugin (telegram@claude-plugins-official v0.0.1) receives messages from Telegram and sends the "typing" indicator, but the MCP notification (notifications/claude/channel) never arrives in the Claude Code conversation.
Environment
- Claude Code version: 2.1.81 (latest)
- Plugin:
telegram@claude-plugins-officialv0.0.1 - MCP SDK:
@modelcontextprotocol/sdk1.27.1 - Platform: macOS Darwin 25.3.0
- Runtime: Bun
Steps to reproduce
- Configure the Telegram plugin:
claude --channels plugin:telegram@claude-plugins-official - Set up bot token and pair a Telegram user (pairing works fine)
- Send a message from Telegram to the bot
Expected behavior
The message should appear in the Claude Code conversation as a <channel source="telegram" ...> notification.
Actual behavior
- The bot receives the message (confirmed:
getUpdatesreturns empty = consumed by polling) - The "typing" indicator fires in Telegram (line 775 of
server.ts) - The
mcp.notification()call at line 792 executes (no error logged) - Nothing arrives in the Claude Code conversation
What works
- Outbound tools work fine:
reply,react,edit_messageall function correctly (Claude Code → Telegram) - Bot is valid:
getMereturns correctly (@youria_claude_code_bot) - Access control is correct: sender ID is in
allowFrom, gate returnsdeliver - No webhook conflict:
getWebhookInfoshows no webhook,pending_update_count: 0 - Single instance: no 409 Conflict, only one polling process
Diagnosis
The issue is specifically in the server → client notification direction of the MCP connection. The server capability experimental: { 'claude/channel': {} } is declared at line 349. The notification method notifications/claude/channel is sent at line 792. But Claude Code never processes it.
The MCP stdio transport is connected (confirmed via lsof — unix sockets on fd 0, 1, 2). Tool calls (client → server) work. Notifications (server → client) do not.
🤖 Generated with Claude Code
This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗