Telegram channel plugin: inbound notifications not delivered (typing indicator fires but message never arrives)

Resolved 💬 5 comments Opened Mar 21, 2026 by YOURIA-AI Closed Apr 20, 2026

Description

The Telegram channel plugin (telegram@claude-plugins-official v0.0.1) receives messages from Telegram and sends the "typing" indicator, but the MCP notification (notifications/claude/channel) never arrives in the Claude Code conversation.

Environment

  • Claude Code version: 2.1.81 (latest)
  • Plugin: telegram@claude-plugins-official v0.0.1
  • MCP SDK: @modelcontextprotocol/sdk 1.27.1
  • Platform: macOS Darwin 25.3.0
  • Runtime: Bun

Steps to reproduce

  1. Configure the Telegram plugin: claude --channels plugin:telegram@claude-plugins-official
  2. Set up bot token and pair a Telegram user (pairing works fine)
  3. Send a message from Telegram to the bot

Expected behavior

The message should appear in the Claude Code conversation as a <channel source="telegram" ...> notification.

Actual behavior

  • The bot receives the message (confirmed: getUpdates returns empty = consumed by polling)
  • The "typing" indicator fires in Telegram (line 775 of server.ts)
  • The mcp.notification() call at line 792 executes (no error logged)
  • Nothing arrives in the Claude Code conversation

What works

  • Outbound tools work fine: reply, react, edit_message all function correctly (Claude Code → Telegram)
  • Bot is valid: getMe returns correctly (@youria_claude_code_bot)
  • Access control is correct: sender ID is in allowFrom, gate returns deliver
  • No webhook conflict: getWebhookInfo shows no webhook, pending_update_count: 0
  • Single instance: no 409 Conflict, only one polling process

Diagnosis

The issue is specifically in the server → client notification direction of the MCP connection. The server capability experimental: { 'claude/channel': {} } is declared at line 349. The notification method notifications/claude/channel is sent at line 792. But Claude Code never processes it.

The MCP stdio transport is connected (confirmed via lsof — unix sockets on fd 0, 1, 2). Tool calls (client → server) work. Notifications (server → client) do not.

🤖 Generated with Claude Code

View original on GitHub ↗

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