Support custom channel plugins beyond the hard-coded allowlist
Problem
The --channels flag only accepts plugins from a hard-coded allowlist (discord, telegram, fakechat). Custom MCP plugins that correctly implement the notifications/claude/channel protocol and declare experimental: { 'claude/channel': {} } are rejected with:
plugin:irc@synaxis-plugins · not on the approved channels allowlist
Use case
I run a fleet of ~11 Claude Code sessions coordinating via a shared chat channel. I built a custom IRC channel plugin (ngircd server on my tailnet, MCP server in TypeScript/Bun, same architecture as the Discord plugin) so the fleet can communicate over a lightweight, terminal-native protocol instead of Discord.
The plugin works — it connects, sends/receives messages, uses the same notifications/claude/channel notification method. But the Channels runtime rejects it because it's not on the internal allowlist.
What I've tried
- Installing from a custom marketplace (
synaxis-plugins) — rejected - Placing the plugin in
claude-plugins-official/external_plugins/locally — rejected - Loading via
--mcp-config— MCP server starts but channel notifications are silently dropped without--channels
Request
Allow users to approve custom channel plugins, either via:
- A setting in
settings.json(e.g.approvedChannelPlugins) - A CLI flag (e.g.
--allow-custom-channels) - Trusting any installed+enabled plugin that declares the
claude/channelcapability
I understand this is a research preview and security matters for channels. A flag like --dangerously-allow-custom-channels that requires explicit opt-in would be fine.
References
- Plugin repo: https://github.com/pwelty/synaxis-plugins
- The plugin follows the exact same structure as the official Discord plugin (server.ts, .mcp.json, plugin.json, same MCP SDK)
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗