Telegram plugin: inbound channel notifications not delivered to conversation (Linux)

Resolved 💬 3 comments Opened Mar 26, 2026 by juangarces1 Closed Mar 30, 2026

Bug Description

The Telegram plugin (telegram@claude-plugins-official v0.0.4) receives inbound messages correctly but the MCP notification (notifications/claude/channel) never reaches the Claude Code conversation. Outbound messages (reply tool) work perfectly.

Environment

  • OS: Ubuntu 24.04.4 LTS (Linux 6.17.0-19-generic)
  • Claude Code: latest version
  • Plugin: telegram@claude-plugins-official v0.0.4
  • MCP SDK: @modelcontextprotocol/sdk via Bun runtime

Steps to Reproduce

  1. Configure Telegram plugin with a valid bot token
  2. Add a user ID to the allowlist in access.json
  3. Start a Claude Code session
  4. Send a message to the bot from Telegram

Expected Behavior

The message should appear in the Claude Code conversation as a <channel source="telegram" ...> block.

Actual Behavior

The message never appears in the conversation. However:

  • Outbound (reply tool) works — messages sent via mcp__plugin_telegram_telegram__reply are delivered to Telegram ✅
  • Bot polling works — the bot process is running and receiving updates via getUpdates (confirmed by 409 Conflict when attempting manual polling) ✅
  • Gate authorization works — the user passes the allowlist check (confirmed by adding ackReaction: "👀" to access.json — the bot reacts to messages) ✅
  • mcp.notification() is called — the code at server.ts:925 fires with method: 'notifications/claude/channel' but the notification never reaches the conversation ❌

Diagnostic Details

  • The MCP server process is running (bun server.ts, confirmed via ps aux)
  • stdio file descriptors (fd 0, 1) are connected via sockets to Claude Code (confirmed via /proc/<pid>/fd/)
  • The MCP server declares experimental: { 'claude/channel': {} } in capabilities
  • Multiple Claude Code restarts did not resolve the issue
  • The bot token is valid (getMe returns successfully)
  • No webhook is configured (getWebhookInfo returns empty URL)

Conclusion

The bot correctly processes inbound messages and calls mcp.notification(), but the notification is not being delivered to or processed by Claude Code on Linux. This suggests an issue in how Claude Code handles notifications/claude/channel from MCP channel servers on this platform.

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗