Telegram plugin: inbound MCP notifications not reaching conversation (outbound works)

Resolved 💬 5 comments Opened Mar 23, 2026 by geheharidas Closed Apr 22, 2026

Environment

  • Claude Code v2.1.81
  • Windows 11 Enterprise (10.0.26200)
  • Plugin: telegram@claude-plugins-official v0.0.1
  • Shell: bash (Git Bash)

Description

Telegram channel plugin receives inbound messages (confirmed by typing indicator and double ticks) but notifications/claude/channel never surfaces in the conversation. Outbound reply tool works perfectly.

Diagnostic evidence

| Check | Result |
|-------|--------|
| Bot token valid | getMe returns correct bot |
| Webhook | None set (long polling) |
| Polling active | 409 conflict confirms single poller |
| Typing indicator | Appears on every inbound message |
| Gate (access control) | User ID in allowlist, dmPolicy: allowlist |
| Outbound reply tool | Works — messages delivered to Telegram |
| mcp.notification() at server.ts:792 | Fires without error, but not consumed by client |
| Plugin enabled | settings.json confirms telegram@claude-plugins-official: true |
| Fresh restart | Killed all bun processes, closed terminal, fresh claude — same result |
| Plugin reinstall | Uninstalled, reinstalled, restarted — same result |

Steps to reproduce

  1. Configure Telegram plugin with valid bot token and allowlist
  2. Start Claude Code session
  3. Send a message from Telegram to the bot
  4. Bot shows typing indicator, message gets double ticks (delivered)
  5. No <channel source="telegram"> block appears in the conversation
  6. Outbound reply tool works fine in the same session

Expected behaviour

Inbound Telegram messages appear as <channel source="telegram"> blocks in the conversation.

Actual behaviour

Notifications silently dropped. No error logs found. The MCP server's mcp.notification({ method: 'notifications/claude/channel', ... }) call completes without error but the client does not surface it.

Additional context

  • This was working previously (22 March 2026, same bot, same config)
  • Broke on 23 March with no config changes
  • The server code at server.ts:792 calls mcp.notification() with method notifications/claude/channel — the call does not throw, suggesting the MCP transport accepts it but the Claude Code client silently ignores it

View original on GitHub ↗

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