Telegram plugin: inbound messages (notifications/claude/channel) silently dropped
Summary
The official Telegram plugin (v0.0.1) outbound works correctly — Claude can send messages to Telegram via the reply MCP tool. However, inbound messages from Telegram never surface in the Claude Code session.
Environment
- Claude Code version:
2.1.81 - Plugin:
telegram 0.0.1(official plugin) - OS: macOS
What's happening
The plugin's MCP server polls Telegram via grammy and correctly gates inbound messages. When a message passes the gate, it fires:
mcp.notification({
method: 'notifications/claude/channel',
params: {
content: text,
meta: { chat_id, message_id, user, user_id, ts }
}
})
The server declares experimental: { 'claude/channel': {} } in its capabilities. The notification appears to fire (no errors), but the message never appears in the Claude Code session as a <channel source="telegram" ...> block.
Steps to reproduce
- Install the Telegram plugin, configure bot token and allowlist
- Confirm outbound works: Claude can call the
replytool and messages arrive in Telegram ✅ - DM the bot from an allowlisted Telegram account
- Expected: message appears in Claude Code session as a channel tag
- Actual: nothing — message is silently dropped
Impact
The entire inbound path is non-functional, making the plugin one-way only. Users can receive messages from Claude but Claude never receives messages from Telegram.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗