MCP push notifications (claude/channel) not received in VS Code extension
Summary
notifications/claude/channel push notifications sent from an MCP server are silently ignored by the VS Code extension, even when the server declares the experimental: { "claude/channel": {} } capability and the process is launched with --dangerously-load-development-channels via claudeProcessWrapper.
Environment
- Claude Code version: 2.1.90
- Platform: macOS (Apple Silicon, darwin arm64)
- VS Code extension (not CLI)
- MCP server: claude-peers-mcp — peer discovery and messaging between Claude Code instances
Steps to reproduce
- Register an MCP server (scope: user) that declares
experimental: { "claude/channel": {} }and sendsnotifications/claude/channelnotifications - Configure
claudeProcessWrapperin VS Code settings to wrap the Claude process with--dangerously-load-development-channels - Verify the flag is active:
ps aux | grep dangerouslyshowsclaude --dangerously-load-development-channels ...✅ - Verify MCP tools load correctly ✅
- Have the MCP server send a
notifications/claude/channelnotification to the connected client
Expected behavior
Claude receives the channel notification and reacts immediately (as documented for CLI sessions with --channels or --dangerously-load-development-channels).
Actual behavior
The notification is silently ignored. The message is consumed from the broker (marked delivered=1 in SQLite) but never surfaces in the Claude session. No error in logs.
Additional context
- The same MCP server + flag works as expected in CLI sessions launched directly with
--dangerously-load-development-channels - The VS Code extension correctly loads the MCP tools when the
experimentalcapability is declared (without the flag, tools fail to load entirely) - This blocks real-time inter-instance communication patterns (multiple Claude Code sessions talking to each other via a local broker) in VS Code
Workaround
Currently falling back to polling: the MCP server stores messages in a local in-memory inbox, and Claude manually calls check_messages periodically. This introduces significant latency (minimum 1 minute with CronCreate//loop) and is a poor substitute for push.
Request: Support notifications/claude/channel in the VS Code extension, consistent with CLI behavior when --dangerously-load-development-channels is active.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗