Telegram plugin: notifications/claude/channel MCP notifications silently dropped

Resolved 💬 3 comments Opened Mar 23, 2026 by LookJohnny Closed May 5, 2026

Bug Report

Claude Code version: 2.1.81 (latest as of 2026-03-23)
Plugin: telegram@claude-plugins-official v0.0.1
OS: macOS (Darwin 25.3.0)

Description

The Telegram plugin's MCP server successfully receives inbound messages from Telegram and sends notifications/claude/channel MCP notifications, but Claude Code silently drops them — they never appear in the conversation.

Steps to Reproduce

  1. Install the telegram plugin: /plugin install telegram@claude-plugins-official
  2. Configure bot token via /telegram:configure <token>
  3. Pair a Telegram account via /telegram:access pair <code>
  4. Lock down access: /telegram:access policy allowlist
  5. Send a message to the bot on Telegram
  6. Message never appears in the Claude Code conversation

Debugging Done

Added debug logging to server.ts. The log confirms the full pipeline works on the bot side:

[2026-03-23T04:15:20.359Z] === server starting ===
[2026-03-23T04:15:21.121Z] polling started as @lovelyjoy_claude_bot
[2026-03-23T04:15:29.779Z] handleInbound: text="你运行在什么样的一个系统上", from=5579203735, gate=deliver
[2026-03-23T04:15:29.779Z] sending MCP notification: chat_id=5579203735, user=jefinsocal, text="你运行在什么样的一个系统上"
[2026-03-23T04:15:29.780Z] MCP notification sent OK
  • Bot long-polling: ✅ working (confirmed via 409 Conflict on manual getUpdates)
  • Gate/allowlist check: ✅ passing
  • MCP notification send: ✅ no error thrown
  • Outbound reply tool: ✅ works (can send messages TO Telegram)
  • Inbound notification surfacing: ❌ never appears in conversation

Expected Behavior

Messages from Telegram should appear in the conversation as <channel source="telegram" ...> blocks, as described in the MCP server instructions.

Actual Behavior

The notifications/claude/channel notification is sent successfully by the MCP server but Claude Code does not surface it to the conversation. No error is logged on either side.

Environment Notes

  • Network: Behind Clash Verge proxy (required — Telegram is blocked by GFW)
  • Proxy works correctly for both polling and API calls
  • /reload-plugins does not always restart the MCP server process (old PID persists); manual kill + reload is needed

View original on GitHub ↗

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