Setup: OpenClaw 2026.4.11, local gateway, Mac. Using openclaw mcp serve --claude-channel-mode on to connect Claude Code as an MCP channel client.
What I'm trying to do: Use OpenClaw's MCP bridge as Claude Code's channel provider for Telegram. I have multiple Telegram bot accounts configured (default, secondary-bot, claude-bot). I want Claude Code to only receive and send through "claude-bot" account, while the main agent uses "default".
What works:
• openclaw mcp serve connects successfully
• Bridge advertises experimental.claude/channel
• DMs to claude-bot arrive as Claude channel notifications ✓
• messages_send on claude-bot DM session works ✓
What's broken:
- Event filtering: Claude Code receives ALL channel notifications from ALL accounts (default, secondary, claude-bot), not just claude-bot. DMs to the main agent's bot also push to Claude Code. How do I filter so only claude-bot account events reach the MCP bridge?
- Group outbound routing: The group session is locked to accountId: "default". When I messages_send on that session, it sends from the main bot, not claude-bot. Is there a way to specify accountId on outbound group sends, or create a per-account group session?
Config (telegram accounts):
"accounts": {
"default": { "botToken": "...", "dmPolicy": "pairing" },
"secondary": { "botToken": "...", "dmPolicy": "pairing" },
"claude-bot": { "botToken": "...", "dmPolicy": "pairing" }
}
MCP config in ~/.claude.json:
"openclaw": {
"type": "stdio",
"command": "openclaw",
"args": ["mcp","serve","--claude-channel-mode","on","--token-file","path/to/token","--url","ws://127.0.0.1:18789"]
}
for some reason, this is not working, and the event filtering is not happening, so all messages that I send in any DM are being read by both the main agents. I'm not sure what the correct configuration for this is.