MCP channel notifications (notifications/claude/channel) not surfaced to conversation
Description
MCP server-to-client notifications using the notifications/claude/channel method are successfully sent by the MCP server but never surfaced as <channel> tags in the conversation.
Environment
- macOS (Darwin 25.3.0)
- Claude Code (latest as of 2026-03-21)
- Telegram channel plugin (
claude-plugins-official/telegramv0.0.1)
Steps to Reproduce
- Install and configure the Telegram channel plugin
- Pair a Telegram user via
/telegram:access pair <code> - Send a message from the paired Telegram user to the bot
Expected Behavior
The message should appear in the Claude Code conversation as a <channel source="telegram" ...> tag, allowing the assistant to see and respond to it.
Actual Behavior
The message never appears. The assistant receives no <channel> tag.
Debugging Performed
- MCP tool calls work fine —
reply,react,edit_messagetools all function correctly (request/response path is healthy) - Bot is polling Telegram — confirmed via active TCP connections to Telegram API servers and
pending_update_count: 0 - Gate check passes — sender is in
allowFrom, gate returnsdeliver mcp.notification()succeeds — added debug logging to server.ts confirming:
````
2026-03-21T06:18:05.507Z handleInbound called: text="Hi" from=126616686
2026-03-21T06:18:05.508Z gate result: deliver
2026-03-21T06:18:05.509Z sending mcp.notification for chat_id=126616686
2026-03-21T06:18:05.510Z mcp.notification sent successfully
- MCP stdio pipes are connected — verified via
lsofshowing unix socket FDs for stdin/stdout/stderr between Claude Code and the bun server process - The experimental capability is advertised — server declares
experimental: { 'claude/channel': {} }in capabilities
Conclusion
The MCP server correctly sends notifications/claude/channel notifications over stdio. Claude Code receives them (no error thrown) but does not inject them as <channel> tags into the conversation. This was tested across multiple Claude Code restarts and a full plugin reinstall.
🤖 Generated with Claude Code
This issue has 10 comments on GitHub. Read the full discussion on GitHub ↗