Channels are in research preview and require Claude Code v2.1.80 or later. Team and Enterprise organizations must explicitly enable them.
- Overview: how channels work
- What you need: requirements and general steps
- Example: build a webhook receiver: a minimal one-way walkthrough
- Server options: the constructor fields
- Notification format: the event payload and delivery behavior
- Expose a reply tool: let Claude send messages back
- Gate inbound messages: sender checks to prevent prompt injection
- Relay permission prompts: forward tool approval prompts to remote channels
Overview
A channel is an MCP server that runs on the same machine as Claude Code. Claude Code spawns it as a subprocess and communicates over stdio. Your channel server is the bridge between external systems and the Claude Code session:- Chat platforms (Telegram, Discord): your plugin runs locally and polls the platform’s API for new messages. When someone DMs your bot, the plugin receives the message and forwards it to Claude. No URL to expose.
- Webhooks (CI, monitoring): your server listens on a local HTTP port. External systems POST to that port, and your server pushes the payload to Claude.