命令字典
Slash 命令、CLI 子命令、Hook 事件、启动参数的字典与演进史。
Slash 命令、CLI 子命令、Hook 事件、启动参数的字典与演进史。
从JSON文件或字符串加载MCP服务器
--mcp-config <file|string>claude --mcp-config ./mcp.json--mcp-config 是 Claude Code 的 CLI 启动 flag。官方 CLI reference 的描述是:"Load MCP servers from JSON files or strings (space-separated)"。也就是说,它接受 JSON 文件路径或 JSON 字符串,可以一次传多个,用空格分隔。
官方文档给出的语法:
--mcp-config <path-or-json> [<path-or-json> ...]
claude --mcp-config ./mcp.json。# 从文件加载
claude --mcp-config ./mcp.json
# 直接传 JSON 字符串(GitHub issue #14490 中的复现命令采用了这种形式)
claude --mcp-config '{"mcpServers":{"axiom":{"type":"stdio","command":"npx","args":["-y","mcp-remote","https://mcp.axiom.co/mcp"]}}}'
官方 MCP 文档说明,项目根目录 .mcp.json 的顶层结构是 mcpServers 对象,以服务器名为键。type 可取 http、stdio、sse、ws,其中 sse 已标注为 deprecated。服务器名只能包含字母、数字、连字符和下划线。
{
"mcpServers": {
"server-name": {
"type": "stdio",
"command": "...",
"args": [],
"env": {}
}
}
}
| flag | 组合效果 | 出处 |
|---|---|---|
-p / --print | 官方文档:与 -p 一起传入时,Claude Code 会先等待仍在连接中的服务器,再运行第一轮。等待上限是 MCP_TIMEOUT 启动超时,默认 30 秒。已有 cached tool list 的服务器跳过等待,首次使用时再连接。该等待行为要求 Claude Code v2.1.221 或更高版本 | CLI reference |
--strict-mcp-config | 官方 MCP 文档:会话只使用通过 --mcp-config 传入的 MCP 服务器。在 v2.1.246 之前,strict 会话仍会为未加载的 project-scoped 服务器等待审批,导致后台会话卡在启动阶段。v2.1.246 起跳过该审批 | MCP 文档 |
--permission-prompt-tool | CLI reference 将其列为相关 flag:可指定一个 MCP tool 来处理权限提示 | CLI reference |
| 约束 | 原因 / 出处 |
|---|---|
-p 下的连接等待受 MCP_TIMEOUT 限制,默认 30 秒 | CLI reference |
显式传入的服务器不受 disableClaudeAiConnectors 影响 | MCP 文档:"Servers passed explicitly via --mcp-config are unaffected" |
managed-mcp.json 存在时,--strict-mcp-config 的效果由 managed MCP 文档另行说明 | MCP 文档指向 "Exclusive control with managed-mcp.json" 一节。该节内容我没有访问到,此处不下结论 |
claude -p 和 Agent SDK 会话。传入 -p 时,CLI 会等待服务器连接后再开始第一轮。--strict-mcp-config,会话只用你传入的服务器,忽略其他 MCP 配置。--strict-mcp-config 可能不覆盖 disabledMcpServers:GitHub issue #14490 报告,在 Claude Code 2.0.72(macOS)上,如果某服务器在项目的 disabledMcpServers(存放于 ~/.claude.json)里,即使用 --mcp-config 加 --strict-mcp-config 加载它,它仍保持 disabled。这个 issue 已被以 "closed as not planned" 关闭,并带 autoclose 标签,所以问题不一定已被修复。issue 里的 workaround 是手动编辑 ~/.claude.json,把它从 disabledMcpServers 中移除。.mcp.json 里的环境变量展开规则不一定适用于 --mcp-config:MCP 文档只在 .mcp.json 一节描述了 ${VAR} 和 ${VAR:-default}。文档没有说明 --mcp-config 传入的文件或字符串是否同样展开,请自行验证。docs.claude.com/en/docs/claude-code/cli-reference 会 301 跳转到这里)修复空值时与 `--strict-mcp-config` 一起阻塞非交互模式的问题
修复了 MCP 服务器在使用打印模式 (`-p`) 时无法在首个 turn 前连接的问题
修复了忽略 per-server request_timeout_ms 的问题
修复 Python Agent SDK 中 type:'sdk' MCP 服务器在启动时被丢弃
修复标志绕过 allowedMcpServers/deniedMcpServers 托管策略执行
修复了 `--mcp-config` 指向损坏文件时的 hang 问题。
修复了该参数无法正确覆盖基于文件的 MCP 配置的问题
新增 flag 用于运行 one-off MCP 服务器