是什么
构建自定义 Channel 的技术规范。Channel 是一个 MCP Server,通过声明 claude/channel 能力并发送 notifications/claude/channel 事件,将外部系统的消息推送到 Claude Code 会话。
核心机制
必要条件:
- 声明
claude/channel能力,让 Claude Code 注册通知监听器 - 发送
notifications/claude/channel事件 - 通过 stdio 传输连接(Claude Code 将 Server 作为子进程启动)
两种 Channel 类型:
- 单向:转发告警、Webhook、监控事件,Claude 只接收不回复
- 双向:暴露 reply 工具,Claude 可通过 Channel 回复(如聊天桥接)
Webhook 接收器模式:Server 监听本地 HTTP 端口,外部系统 POST 到该端口,Server 将 payload 推送给 Claude。适合 CI 流水线、监控告警等场景。
聊天平台模式:Server 轮询平台 API(如 Telegram Bot API),收到消息后推送给 Claude。无需暴露公网 URL。
权限中继:声明 relay-permission-prompts 能力后,可将 Claude 的权限提示转发到 Channel,允许远程审批。
运行时要求:MCP SDK(@modelcontextprotocol/sdk),支持 Bun、Node.js、Deno。
关键细节
- 测试自定义 Channel:
claude --dangerously-load-development-channels - Research Preview 期间,自定义 Channel 不在官方白名单,必须用上述标志
- 通知事件格式:
notifications/claude/channel - 能力声明:
claude/channel - 发送者白名单:防止 Prompt Injection,只处理可信来源的消息
关联
实践要点
- 单向 Channel 最简单,只需声明能力和发送通知事件
- 双向 Channel 需要额外实现 reply 工具
- Webhook 接收器适合集成 CI/CD、监控系统等
- 聊天平台 Channel 适合 Telegram、Discord 等需要轮询的场景
- 生产环境 Channel 需要提交到 Anthropic 白名单才能正常使用