Telegram plugin: inbound channel notifications not delivered to session

Resolved 💬 3 comments Opened Mar 25, 2026 by shah1git Closed May 1, 2026

Description

The Telegram plugin (telegram@claude-plugins-official) can send messages via the reply MCP tool, but inbound messages from Telegram users are never delivered to the Claude Code session as notifications/claude/channel events.

Environment

  • Claude Code version: 2.1.83
  • OS: Linux (Ubuntu)
  • Plugin: telegram@claude-plugins-official (external plugin)
  • Runtime: Bun

Steps to reproduce

  1. Install the Telegram plugin: claude plugins install telegram@claude-plugins-official
  2. Configure bot token in ~/.claude/channels/telegram/.env
  3. Configure access.json with dmPolicy: "allowlist" and the user's Telegram ID in allowFrom
  4. Start Claude Code session, verify plugin loads (/reload-plugins shows 1 plugin MCP server)
  5. Send a message to the bot from the allowlisted Telegram account
  6. Observe: no <channel source="telegram" ...> notification appears in the session

What works

  • Bot process starts and polls Telegram successfully (confirmed via getUpdates returning 409 Conflict)
  • Outbound mcp__plugin_telegram_telegram__reply tool works — messages are delivered to the user
  • access.json is correctly configured with the user's ID in allowFrom
  • The MCP server process is running and connected (tool calls succeed)

What doesn't work

  • mcp.notification({ method: 'notifications/claude/channel', ... }) calls in server.ts (line 925) never reach the Claude Code session
  • Restarting Claude Code, killing/restarting the plugin process, reinstalling the plugin — none of these fix the issue
  • The .catch() on notification (line 945) does not log errors to stderr either

Expected behavior

Inbound Telegram messages from allowlisted users should appear in the Claude Code session as <channel source="telegram" ...> notifications.

🤖 Generated with Claude Code

View original on GitHub ↗

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