Telegram plugin: inbound messages (notifications/claude/channel) silently dropped

Resolved 💬 2 comments Opened Mar 21, 2026 by git-bafshar Closed Mar 21, 2026

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

  1. Install the Telegram plugin, configure bot token and allowlist
  2. Confirm outbound works: Claude can call the reply tool and messages arrive in Telegram ✅
  3. DM the bot from an allowlisted Telegram account
  4. Expected: message appears in Claude Code session as a channel tag
  5. 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.

View original on GitHub ↗

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