Telegram plugin: inbound MCP notifications not reaching conversation (outbound works)
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
- Configure Telegram plugin with valid bot token and allowlist
- Start Claude Code session
- Send a message from Telegram to the bot
- Bot shows typing indicator, message gets double ticks (delivered)
- No
<channel source="telegram">block appears in the conversation - Outbound
replytool 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:792callsmcp.notification()with methodnotifications/claude/channel— the call does not throw, suggesting the MCP transport accepts it but the Claude Code client silently ignores it
This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗