Telegram channel plugin: inbound notifications silently dropped in terminal CLI

Resolved 💬 3 comments Opened Apr 6, 2026 by Dimo99 Closed Apr 9, 2026

Fix immediately

Summary

The Telegram channel plugin (telegram@claude-plugins-official) successfully receives messages, passes access control, and calls mcp.notification({ method: 'notifications/claude/channel', ... }) — the promise resolves without error — but Claude Code terminal CLI (v2.1.92) never surfaces the notification in the conversation.

Reproduction steps

  1. Install and configure the Telegram plugin (/telegram:configure with a BotFather token)
  2. Pair a Telegram user via /telegram:access
  3. Start a Claude Code terminal session (claude --dangerously-skip-permissions)
  4. Send a DM to the bot on Telegram
  5. Expected: Message appears in the Claude Code conversation as a <channel source="telegram" ...> block
  6. Actual: Nothing happens. The message is consumed (getUpdates returns 409 Conflict confirming the bot is polling) but never shown.

Debugging evidence

  • getMe and sendMessage API calls work — the bot token is valid
  • The bot process is running and connected to Telegram (active TCP connections to 149.154.166.110:443)
  • getUpdates returns 409 Conflict, confirming the plugin is consuming updates
  • Outbound MCP tool calls work: mcp__plugin_telegram_telegram__reply successfully sends messages to Telegram
  • Added appendFileSync debug logging inside handleInbound():
  • gate() returns deliver for the allowed user
  • mcp.notification() resolves successfully (.then() fires, not .catch())
  • The MCP server declares experimental: { 'claude/channel': {} } capability
  • Tried: killing process, /reload-plugins, full Claude restart — same result

Environment

  • Claude Code: 2.1.92 (terminal CLI, claude --dangerously-skip-permissions)
  • macOS Darwin 24.6.0
  • Telegram plugin: 0.0.4
  • MCP SDK: 1.27.1
  • Runtime: Bun

Conclusion

The MCP server is sending the notification correctly over stdio. Claude Code is not handling notifications/claude/channel from plugin MCP servers in the terminal CLI.

🤖 Generated with Claude Code

View original on GitHub ↗

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