kimi-code/docs/zh/customization/mcp.md
oocz 18f299fd0b
Some checks are pending
CI / build (push) Waiting to run
CI / test (push) Waiting to run
CI / lint (push) Waiting to run
CI / typecheck (push) Waiting to run
Nix Build / Check flake.nix workspace sync (push) Waiting to run
Nix Build / nix build .#kimi-code (push) Blocked by required conditions
Release / Publish native release assets (push) Blocked by required conditions
Release / Native release artifact (push) Blocked by required conditions
Release / Release (push) Waiting to run
Release / Deploy docs (push) Blocked by required conditions
mcp suport sse (#744)
Co-authored-by: yuchengzhen <yuchengzhen@moonshot.cn>
2026-06-14 18:04:26 +08:00

4.5 KiB
Raw Permalink Blame History

Model Context Protocol

Model Context ProtocolMCP 是一个开放协议,让模型可以安全地调用外部进程或服务暴露的工具——例如读取 GitHub issues、查询数据库、操作本地文件系统。Kimi Code CLI 作为 MCP client 接入这些外部工具,并把它们与内置工具(ReadBashGrep 等)一起暴露给 Agent 使用,行为上没有差异。

接入方式

Kimi Code CLI 支持三种 MCP server 接入方式:

  • stdioCLI 以子进程方式启动本地 MCP server通过标准输入输出通信。适合本地命令行工具。
  • HTTPCLI 连接一个已在运行的 HTTP 端点。适合远程服务或需要持久运行的进程。
  • SSECLI 连接旧式 HTTP+SSE 端点Server-Sent Events一种流式 HTTP 机制)。新 MCP server 优先使用 HTTP只有服务仍仅暴露旧式 SSE 传输时,才设置 transport: "sse"

配置

MCP server 配置写在 mcp.json 中,分两层:

  • 用户级~/.kimi-code/mcp.json(或 $KIMI_CODE_HOME/mcp.json),跨项目共享
  • 项目级:工作目录下的 .kimi-code/mcp.json,只对当前仓库生效

同名条目以项目级为准,覆盖用户级。

在 TUI 中运行 /mcp-config 可以交互式地新增、编辑或删除 server无需手动编辑 JSON 文件。运行 /mcp 可查看当前所有 server 的连接状态。

mcp.json 的结构:

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"]
    },
    "linear": {
      "url": "https://mcp.linear.app/mcp"
    },
    "legacy-events": {
      "transport": "sse",
      "url": "https://mcp.example.com/sse"
    }
  }
}

command 字段的条目为 stdio serverurl 字段且未写 transport 的条目为 HTTP server。旧式 SSE server 需要显式把 transport 设为 "sse"

可选字段:

字段 类型 适用方式 说明
env Record<string, string> stdio 注入子进程的环境变量
cwd string stdio 子进程工作目录
headers Record<string, string> HTTP、SSE 附加到每次请求的静态请求头
bearerTokenEnvVar string HTTP、SSE 存放 bearer token 的环境变量名
enabled boolean 全部 设为 false 可禁用该 server
startupTimeoutMs number 全部 连接超时,默认 30000 毫秒
toolTimeoutMs number 全部 单次工具调用超时
enabledTools string[] 全部 工具白名单
disabledTools string[] 全部 工具黑名单

HTTP 与 SSE server 支持通过 headersbearerTokenEnvVar 提供静态凭证。需要 OAuth 时,运行 /mcp-config login <server-name> 完成浏览器授权。

Plugins 也可以在 manifest 中声明 MCP servers。Plugin 声明的 servers 默认启用,可以在 /plugins 中禁用或重新启用,然后开启新会话。详见 Plugins

::: warning 注意 项目级 .kimi-code/mcp.json 中的 stdio 条目会在会话启动时执行本地命令,只在你信任的仓库里启用。 :::

工具命名与权限

MCP 工具按 mcp__<server>__<tool> 格式命名,例如 mcp__github__create_issue。权限规则中支持 *** 通配,例如 mcp__github__* 命中该 server 下所有工具。MCP 工具参数不参与权限匹配。

未命中权限规则的调用会触发审批请求;在审批弹窗中选择"Approve for this session"后,本次会话内的后续同类调用自动放行。

也可以在 config.toml[[permission.rules]] 中预置永久规则:

[[permission.rules]]
decision = "allow"
pattern = "mcp__github__*"

[[permission.rules]]
decision = "deny"
pattern = "mcp__filesystem__write_file"

权限规则的完整语法见配置文件

安全性

接入外部 MCP server 时需注意:

  • 只接入可信来源的 server
  • 在审批请求中核查工具名与参数是否合理
  • 对高风险工具(写文件、执行命令等)维持手动审批,避免用 mcp__* 通配放行全部工具

::: warning 注意 在 YOLO 模式下MCP 工具调用会被自动批准。仅在完全信任所接入的 MCP server 时使用此模式。 :::

下一步

  • Plugins — 在 plugin manifest 中声明 MCP server一键打包和分发
  • 配置文件 — 权限规则的完整字段参考