Telegram channel plugin: inbound messages not delivered to session

Resolved 💬 4 comments Opened Mar 20, 2026 by jojopas Closed Apr 20, 2026

Description

The Telegram channel plugin (telegram@claude-plugins-official) can send outbound messages via the reply tool, but inbound messages from Telegram never reach the Claude Code session. The MCP notification (notifications/claude/channel) appears to fire in server.ts but is not delivered to the host.

Environment

  • Claude Code version: 2.1.80
  • Platform: macOS (Darwin 24.3.0)
  • Shell: zsh

Setup (all verified correct)

  • Bot token is valid (getMe returns successfully)
  • access.json has correct user ID in allowFrom (verified via @userinfobot)
  • dmPolicy is set to allowlist
  • All three Telegram tools (reply, react, edit_message) are auto-allowed in settings.json
  • Single plugin process running (bun run ... start)
  • No webhook set on the bot (getWebhookInfo returns empty URL)

Reproduction

  1. Enable telegram@claude-plugins-official in settings.json
  2. Configure bot token and allowlist a user
  3. Send a message from Claude to the user via reply tool → works
  4. User sends a message back to the bot on Telegram → never arrives in the Claude Code session

Troubleshooting already attempted

  • Restarted Claude Code 7+ times
  • Verified only one plugin process is running
  • Confirmed bot token validity via Telegram Bot API (getMe, getWebhookInfo)
  • Confirmed user ID in allowlist matches actual Telegram user ID
  • getUpdates returns empty (expected — plugin is polling)

Likely cause

The mcp.notification() call at server.ts:578 fires after the gate passes, but the notification does not reach the Claude Code host session. The MCP transport (stdio) may not be delivering notifications/claude/channel events correctly.

🤖 Generated with Claude Code

View original on GitHub ↗

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