是什么

构建自定义 Channel 的技术规范。Channel 是一个 MCP Server,通过声明 claude/channel 能力并发送 notifications/claude/channel 事件,将外部系统的消息推送到 Claude Code 会话。

核心机制

必要条件:

  1. 声明 claude/channel 能力,让 Claude Code 注册通知监听器
  2. 发送 notifications/claude/channel 事件
  3. 通过 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,只处理可信来源的消息

关联

  • channels — Channel 使用指南(安装、配置、安全)
  • mcp — MCP Server 基础概念

实践要点

  • 单向 Channel 最简单,只需声明能力和发送通知事件
  • 双向 Channel 需要额外实现 reply 工具
  • Webhook 接收器适合集成 CI/CD、监控系统等
  • 聊天平台 Channel 适合 Telegram、Discord 等需要轮询的场景
  • 生产环境 Channel 需要提交到 Anthropic 白名单才能正常使用