命令字典
Slash 命令、CLI 子命令、Hook 事件、启动参数的字典与演进史。
Slash 命令、CLI 子命令、Hook 事件、启动参数的字典与演进史。
仅使用指定的MCP服务器配置忽略其他配置
--strict-mcp-configclaude --strict-mcp-config --mcp-config ./mcp.json--strict-mcp-config 是一个启动 flag。官方 CLI reference 的定义是:只使用 --mcp-config 提供的 MCP servers,忽略所有其他 MCP 配置。
按官方 MCP 文档,启用后:
--mcp-config 传入的 servers。.mcp.json 里的 servers 不加载。.mcp.json servers 的审批提示。这一点文档标注需要 Claude Code v2.1.246+。这样后台会话不会在启动时卡在审批对话框上。# 官方示例
claude --strict-mcp-config --mcp-config ./mcp.json
# 内联 JSON 字符串(来自 GitHub issue 里的复现命令)
claude --strict-mcp-config --mcp-config '{"mcpServers":{"axiom":{"type":"stdio","command":"npx","args":["-y","mcp-remote","https://mcp.axiom.co/mcp"]}}}'
--mcp-config 接受 JSON 文件或字符串,多个之间用空格分隔。
| 组合 | 行为 |
|---|---|
--mcp-config | 标准搭配,strict 模式下它是唯一的 MCP 来源 |
-p | 官方文档提到 claude -p 这类非交互场景。--mcp-config 配合 -p 时,Claude Code 会在第一轮前等待未连接完成的 servers,上限为 MCP_TIMEOUT(默认 30 秒)。等待逻辑需要 v2.1.221+ |
--tools | 不能互相替代。--tools 不影响 MCP tools,要禁用 MCP tools 需要 --disallowedTools "mcp__*" |
--bare | 官方说明它会跳过 MCP servers 的自动发现。文档没有说明它与 --strict-mcp-config 的交互细节 |
| 约束 | 原因 |
|---|---|
| 同名 server 出现在多个来源时的优先级 | 官方 MCP 文档的顺序是 local、project、user、plugin、claude.ai connectors;组织通过 managedMcpServers 托管设置提供的 server 排在这些之上。文档的这份列表里没有 --mcp-config |
| 同名 server 只取最高优先级来源的整条配置 | 字段不会跨 scope 合并 |
存在 managed-mcp.json 时的行为有专门说明 | CLI reference 指向 managed-mcp 文档的 "Exclusive control with managed-mcp.json" 一节。本文没有 fetch 该页,请以那一页为准 |
disabledMcpServers 可能不被覆盖。 GitHub issue #14490 报告:在 Claude Code 2.0.72 上,~/.claude.json 的 disabledMcpServers 里列出的 server,即使通过 --strict-mcp-config --mcp-config 传入,仍然保持禁用。该 issue 状态为 Closed as not planned。该 issue 只在 2.0.72 上验证,当前版本行为未经核实。--tools 管不到 MCP tools。 想让会话彻底没有 MCP tools,要另外加 --disallowedTools "mcp__*"。claude -p、Agent SDK 会话和云端会话无法显示审批提示,会直接加载项目级 servers;启用 --strict-mcp-config 则只使用 --mcp-config 传入的 servers。.mcp.json 审批提示,避免启动时被审批对话框阻塞(需要 v2.1.246+)。