连接 stdio vs. HTTP 服务器
stdio
stdio 服务器是 Inspector 启动的一个进程。所有位置参数即命令行:--。若没有该分隔符,--verbose 会被 Inspector 解析而永远到不了服务器。
用 -e 为进程提供环境变量,用 --cwd 提供工作目录:
stderr 会落在 Console 标签页(Web)或 Console 标签页(o,TUI)中,大多数 stdio 服务器把诊断信息放在那里,因此当连接无明显原因地失败时,先检查那里。
HTTP 和 SSE
--transport 接受 http(Streamable HTTP)和 sse。如果服务器受保护,参见授权:无需预先设置,因为当服务器返回 401 时,Inspector 会运行那里所述的 OAuth 流程并重试连接。
对于 HTTP 服务器,还要决定其协议时代。默认是 legacy;在 Server Settings 中设置 modern 或 auto(或在目录文件中设置 protocolEra),以启用 2026-07-28 行为。
导入现有的客户端配置
在 Servers 界面上,Add Servers 可以导入你已经在别处配置好的 MCP 服务器,而不必重新输入。它可直接解析 Claude Desktop、Cursor、Cline 和 VS Code 客户端配置,并且还会读取服务器自己的 MCP Registryserver.json。
导入会合并到活动的目录(Inspector 的可写服务器列表),因此现有条目不会被覆盖。如果你根本不想触碰你的目录,可以改为以只读方式针对外部文件启动:
--config 保证该文件按原样提供,绝不被写入、初始化或迁移。

Add Servers 提供从现有客户端配置或从注册表 server.json 导入。
审查一个 MCP 应用
MCP 应用是携带 UI 小部件的工具。对于自动化审查者(CI 或智能体),对每个返回 JSON 的检查使用 CLI,仅在需要检查渲染出的小部件时才打开浏览器。1
不调用工具即探测安全态势
0,没有则退出 2,因此 && 链会短路:csp 和 permissions(以及 domain,当资源声明了它时)位于 UI 资源而非工具上,因此 --app-info 读取那个资源。工具永远不会被调用。2
获取完整的结果负载,仍然无需浏览器
3
启动一次 Web Inspector,仅 loopback
MCP_SANDBOX_PORT 很重要:应用的 UI 由一个单独的沙箱端口提供,该端口默认是动态的,而你的自动化需要一个固定地址来访问它。4
导航一个深链接到渲染出的小部件
appArgs 是工具的参数,采用 base64url 编码的 JSON,每个深链接参数都在 深链接下有说明。autoConnect 和 autoOpen 必须都等于会话令牌,因为 autoOpen 直接从 URL 触发一次工具调用,需要与 autoConnect 相同的门控。5
等待一个确定性信号,而不是 sleep
Apps 界面暴露一个稳定的自动化契约。轮询这些属性,而不是 sleep:
Docker
一个容器镜像已发布到 GitHub Container Registry,支持linux/amd64 和 linux/arm64:
-e MCP_INSPECTOR_API_TOKEN=<value> 固定它。
该镜像默认为 --web,绑定到 0.0.0.0:6274 且浏览器自动打开关闭,并以非 root 用户运行。它设置 DANGEROUSLY_BIND_ALL_INTERFACES=true,因为容器必须绑定通配符地址才能通过 -p 访问。
它的 HEALTHCHECK 探测 Web UI,因此在运行 --cli 或 --tui(两者都没有 Web 服务器)时添加 --no-healthcheck。下面的 <target> 是一个临时目标:一个位置 stdio 命令,或 --server-url <url> --transport http。
在网络上托管
Inspector 默认绑定localhost,且其后端会启动进程,因此将其暴露到网络应被视为一个刻意的决定。
Inspector 拒绝绑定通配符全接口地址(0.0.0.0、:: 以及每一种等价写法),除非你设置 DANGEROUSLY_BIND_ALL_INTERFACES=true。绑定一个特定地址无需选择加入即被允许,因为那是一次刻意的暴露,而不是一次性暴露每个接口——后者正是 DNS 重绑定攻击所针对的形态。
脱离 loopback 时还有两个注意事项:
- MCP 应用也需要其沙箱端口可达。 它是一个单独的、默认动态的端口;用
MCP_SANDBOX_PORT固定它并暴露或转发它。Docker 镜像只发布6274。 - MCP 应用无法在 TLS 上或裸 IPv6 字面量处渲染。 沙箱 URL 始终是纯
http,因此一个https://页面会将该 iframe 作为混合内容阻止;而带方括号的 IPv6 字面量不是有效的 CSP host-source,因此请在一个名称或一个 IPv4 地址处浏览。
DANGEROUSLY_OMIT_AUTH。
开发工作流
一个在实践中运行良好的循环:1
从 CLI 开始
--method initialize 在一秒内以机器可读的答复确认服务器启动、握手,并报告你所期望的能力。大多数“它不工作”最终都出在这里。2
转到 Web 客户端进行探索
schema 驱动的表单、渲染出的结果,以及它们旁边的 Protocol 标签页,让你能快速找到工具行为异常的情形。
3
测试边界情况
无效输入、缺失的必需提示参数、并发调用,以及对于 HTTP 服务器的两种协议时代。验证这些错误与成功一样出于设计意图。
4
用 CLI 将其固化
把你发现的东西变成一个 CI 断言:用
--stored-auth-only 将 CLI 的 --format json 输出通过管道传给 jq -e,这样缺失的令牌会快速失败,而不是启动交互式 OAuth。完整命令参见在 CI 中验证一个服务器。