Telegram plugin: inbound channel notifications not delivered to session
Resolved 💬 3 comments Opened Mar 24, 2026 by Tim-Feng Closed Mar 28, 2026
Description
The Telegram plugin (v0.0.4) can send messages to Telegram (outbound reply tool works), but inbound messages from Telegram never appear in the Claude Code session.
Environment
- Claude Code: 2.1.81
- Telegram plugin: 0.0.4
- MCP SDK: 1.27.1 (
@modelcontextprotocol/sdk) - Runtime: Bun 1.3.11
- OS: macOS Darwin 24.6.0
Steps to Reproduce
- Install telegram plugin (
/plugin install telegram) - Configure bot token in
~/.claude/channels/telegram/.env - Pair a Telegram user (user is in
access.json→allowFrom) - Send a message from Telegram to the bot
Expected
Message appears in the Claude Code session as a <channel source="telegram" ...> notification.
Actual
- Bot receives the message (Telegram shows "typing..." indicator)
- No notification appears in the Claude Code session
- Outbound direction works: calling the
replyMCP tool successfully sends messages to Telegram
Debugging Details
mcp.notification({ method: 'notifications/claude/channel', params: {...} })is called by the server (code path confirmed inserver.ts:925)- The MCP stdio transport is connected (tool calls work both ways)
- Manual server start (
bun server.ts) shows"polling as @BotName"on stderr — under Claude Code plugin management, bot polling behavior is inconsistent - When bot IS polling (confirmed via 409 Conflict on
getUpdates), notifications still don't arrive - Tested across multiple session restarts, plugin reinstalls, and cache clears — same result
- The server declares
experimental: { 'claude/channel': {} }capability during MCP initialization
Hypothesis
Claude Code's MCP client may not be processing/surfacing notifications/claude/channel notifications from plugin MCP servers, even though the transport is functioning (tool request/response works fine).
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗