claude code mcp channels 是什么怎么开

Channels 把 Telegram 等事件推入已开的 Claude Code 会话,含 preview 限制与配对步骤。

claude code mcp channels 是什么怎么开

claude code mcp channels 是什么:一种把外部事件推入你当前已打开的 Claude Code 会话的 MCP 插件机制,和普通 MCP「模型任务中主动去查」方向相反。事件只有会话开着才进得来,常配合后台进程或常驻终端使用。

作者CodePass 技术编辑

Channel 与普通 MCP 差在哪

标准 MCP server 是模型在任务里按需查询:读文档、拉 issue、查监控,不会主动把外部事件推进会话。Channels 填补的是反向通道:CI 结果、聊天消息、监控告警从外部推到你正在跑的那份本地会话里,Claude 在已有项目上下文里立刻反应。

官方对比表里还有 Claude Code on the web(云端新沙箱)、Slack 集成(频道里 @Claude 会 spawn web 会话)、Remote Control(用手机遥控本地会话)。Channels 的独特价值是 chat bridge 和 webhook receiver:Telegram 里问一句,工作在本地真实文件上跑,回复回到同一条聊天;或 deploy pipeline 的 webhook 打进来,会话里还记着刚才在 debug 什么。

双向通道可以经同一 plugin 回复,但终端里看到的和聊天里看到的不完全一样。入站消息会在终端显示为 channel 行;Claude 调用 reply 工具后,终端只见 tool 确认(例如 sent),回复正文出现在 Telegram、Discord 或 iMessage 对端。这和 Skills 与 MCP 的分工 无关,Channels 属于 MCP 家族里的推送型变体。

Research preview 与平台限制

Channels 目前标为 research preview,功能逐步放量,--channels 旗标语法与协议合约可能随反馈调整。预览期内 --channels--dangerously-load-development-channels 甚至不会出现在 claude --help 里,但旗标本身可用。

认证与托管限制(均来自官方 channels 文档):

  • 需要 Anthropic 认证:claude.ai 账号或 Console API key
  • 不支持 Amazon Bedrock、Google Cloud Agent Platform、Microsoft Foundry
  • Team / Enterprise 组织须管理员显式开启 channelsEnabled,否则 MCP 工具能连、channel 消息进不来,启动时会有警告
  • Console API key 认证默认允许 channels,除非组织部署了 managed settings 覆盖
  • Pro / Max 个人无组织时跳过组织级检查,每会话用 --channels 自行 opt-in

插件侧:官方 Telegram、Discord、iMessage 插件依赖 Bun;本地开发自定义 channel 可用 --dangerously-load-development-channels,与组织 allowedChannelPlugins 白名单的交互见官方 Enterprise controls 节。

事件只在会话打开时投递。离开终端就没有推送,always-on 场景需要后台进程、tmux 或等价常驻会话。非交互模式 -p 会禁用需要终端输入的工具,避免会话卡住等人点选。

事件如何进入会话

启用方式是在启动 Claude Code 时传入 --channels,参数是已安装的 channel 插件名,可空格分隔多个:

claude --channels plugin:telegram@claude-plugins-official

仅写在 .mcp.json 里不够,还必须出现在 --channels 里,消息才会注入当前会话。组织还可通过 allowedChannelPlugins 限制哪些 marketplace 插件能注册;不在名单上的插件会正常启动 Claude Code,但 channel 不注册,启动通知会说明原因。

入站事件在终端形如 channel 行(fakechat 演示里是 ← fakechat · web: ...),模型侧作为 scoped server 的 event 处理。Claude 处理后若需回复,调用该 plugin 的 reply 类工具;首次回复往往触发权限确认,人不在终端时会话暂停,除非 channel 声明 permission relay 能力或使用你完全信任的 --dangerously-skip-permissions(仅建议在隔离环境使用)。

Telegram 配对与 allowlist 要点

官方 Telegram 流程可压成以下步骤(细节以 channels 文档 为准):

  1. 在 BotFather 创建 bot,拿到 token
  2. Claude Code 内:/plugin install telegram@claude-plugins-official(marketplace 缺失时先 /plugin marketplace add anthropics/claude-plugins-official
  3. /telegram:configure <token>,写入 ~/.claude/channels/telegram/.env
  4. 退出并以 claude --channels plugin:telegram@claude-plugins-official 重启
  5. 在 Telegram 给 bot 发消息,bot 回 pairing code
  6. 会话内 /telegram:access pair <code>,再 /telegram:access policy allowlist 锁访问

bot 只有在 Claude Code 带 --channels 运行时才回 pairing 消息。Discord 流程类似:Developer Portal 建 bot、开 Message Content Intent、OAuth 邀请进服,再 /discord:configure 与 pair。iMessage 仅 macOS,读本地 Messages 数据库,自聊默认直通,他人需 /imessage:access allow 加 handle。

安全:allowlist 与写权限

每个获批的 channel 插件维护 sender allowlist:未批准 ID 的消息静默丢弃。Telegram / Discord 通过 pairing 把发送者 ID 加入列表;allowlist 也约束 permission relay,能经 channel 回复的人理论上能远程批准或拒绝工具调用,因此只 allowlist 你信任的人。

会话级 --channels 决定本次启用哪些 server;组织级 channelsEnabledallowedChannelPlugins 决定能不能用、能用哪几个。公开群或开放频道里给 bot 写权限是高风险配置:任何人@bot 都可能把事件推入你的本地会话并触发工具。生产用法应维持 allowlist、避免对公开群开放双向写能力,敏感 repo 上慎用 skip-permissions。

与「模型主动查外部系统」的 MCP 相比,Channels 把信任边界移到了「谁可以往你的终端推消息」。排查 webhook 类集成时可对照 Sentry MCP 权限收紧 的思路:先最小 scope,再按需放大;Channels 则是先 pairing,再 policy allowlist,默认拒绝未知发送者。

参考资料