Channel plugin MCP notifications not delivered as interrupts (v2.1.83)

Resolved 💬 3 comments Opened Mar 25, 2026 by Naylen Closed Mar 29, 2026

Description

After updating Claude Code to v2.1.83, MCP channel plugin notifications (notifications/claude/channel) are no longer surfaced as <channel> interrupts in the conversation. They were working correctly in the previous version.

Reproduction

  1. Official Discord channel plugin running, declares experimental: { 'claude/channel': {} } capability
  2. Plugin sends mcp.notification({ method: 'notifications/claude/channel', params: { content, meta: { chat_id, message_id, user, ... } } }) on incoming messages
  3. Notification sent over stdio transport (confirmed via code inspection) but never appears as a <channel> interrupt
  4. Tools (fetch_messages, reply, etc.) work fine — plugin is connected and functional
  5. fetch_messages confirms messages exist and gate() logic passes correctly

Expected behavior

Incoming Discord messages should appear as <channel source="discord" ...> interrupts in the CLI, as they did in the previous version.

Environment

  • Claude Code: 2.1.83
  • Plugin: claude-channel-discord (official marketplace plugin, v0.0.4)
  • MCP SDK: 1.27.1
  • Runtime: Bun (server.ts)
  • OS: Ubuntu Linux (x86_64)

Investigation notes

  • Plugin process is running and healthy (confirmed via ps aux)
  • assertNotificationCapability in the MCP SDK passes silently for notifications/claude/channel (no matching case in the switch, falls through without error)
  • Server capabilities correctly declare experimental: { 'claude/channel': {} }
  • All tool calls to the plugin work (fetch_messages, reply, react, etc.)
  • Only the push notification delivery path is broken
  • Plugin code (server.ts) is identical between cached v0.0.4 and current marketplace version — no plugin-side changes
  • /mcp reconnect does not resolve the issue

View original on GitHub ↗

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