npx @modelcontextprotocol/inspector 会进入这里。
会话令牌
Web 客户端背后的 Node 服务器用一个按启动生成的令牌守护每一个/api/* 路由,因为它可以在你的机器上启动进程。启动器会打印一个包含该令牌的 URL:打开那个 URL,不要凭记忆输入 localhost:6274。
浏览器按优先级顺序从三个位置恢复令牌:
window.__INSPECTOR_API_TOKEN__,在每次页面加载时注入到index.html。这正是让裸 URL 重新加载或书签保持有效的原因。- 一个
?MCP_INSPECTOR_API_TOKEN=...查询字符串,即那个打印出的 URL 所用的形式。 sessionStorage,作为后备。
MCP_INSPECTOR_API_TOKEN 环境变量以固定一个已知令牌(对脚本化启动有用),或设置 DANGEROUSLY_OMIT_AUTH=true 以完全禁用该检查,但仅在没有其他东西能到达该端口的机器上这样做。两者都在 Web 后端环境变量下有说明。
Dev 模式
--dev 是一个仅限 Web 的 flag。它运行 Vite dev 服务器而不是提供预构建的 bundle,如果你正在开发 Inspector 本身,这一点很重要:
--web 提供一个已构建的 bundle。在已发布的软件包中,该 bundle 总是随附;在一个全新的源码检出中则没有,因此运行器会在你首次启动时按需构建它。
标签栏
Network 和 Console 从不同时出现。旧式与现代时代在协议时代中有说明。

一个已连接服务器上的标签栏。哪些标签页出现取决于服务器所报告的能力。
监控侧边栏
Tasks、Logs、Protocol、Network 和 Console 构成一个_监控组_。固定该组,它们就会离开标签栏并移入一个可调整大小的右侧列,这样你就可以在 Tools 或 Resources 中工作的同时观察流量。列宽和所选的监控标签页会跨重新加载保持。
固定在 Tools 界面旁边的监控侧边栏。你工作时 Protocol 流保持可见。
Servers
Servers 界面是入口点。一个服务器行携带其传输、其连接状态,以及一个打开其按服务器设置的控件。 那个列表来自何处、以及它是否可编辑,取决于你如何启动:
在首次启动时,Web 客户端用两个示例服务器初始化目录:一个范围限定为
/tmp 的文件系统服务器,以及规范的 “everything” 参考服务器。有关完整规则(包括为何 CLI 和 TUI 反而初始化一个空目录),参见配置与 flag。
Server Settings
- Protocol Era:
legacy/auto/modern。参见协议时代。 - Log level per request:现代时代连接默认在每个发出的请求上加盖的级别,或用
off选择退出(参见日志)。 - Advertised Extensions:Inspector 在
capabilities.extensions中声明哪些扩展。一个调试旋钮:服务器可能合理地根据你所公布的内容改变它所注册的东西。取消勾选 Tasks 扩展并针对test-servers/configs/advertised-extensions-http.json固定装置(fixture)重新连接(设置见在本地复现每个时代),观察一个工具消失。 - Roots:通过
roots客户端能力公布的 roots。例如@modelcontextprotocol/server-filesystem会调用roots/list来了解其允许的目录。 - Headers、timeouts 和 OAuth 字段。
- Fetch lists one page at a time:关闭时,列表结果在连接时跨页自动聚合;开启时,每个列表只加载第 1 页,并带一个 Load next page 控件和一个_已加载 N 页_的状态。用
test-servers/configs/pagination-http.json复现,它将 12 个工具、资源和提示各分页为三页。

展开了 Advertised Extensions 的 Server Settings。取消勾选一个会改变 Inspector 在连接时所声明的内容。
Tools
选择一个工具以查看其描述、渲染为表单的输入 schema,以及其注解。填写表单并调用它;结果渲染在下方,原生处理结构化内容、嵌入的资源和图像。 在现代时代的服务器上,此界面还显示镜像的Mcp-Param-* header、被排除的工具,以及各不相同的 -32602 错误面板,这些都在协议时代中有涵盖。

一次工具调用及其渲染出的结果。调用返回后,参数表单会折叠进结果面板。
Resources
列出资源和资源模板及其 MIME 类型和描述,在选择时读取内容,并在支持订阅的服务器上提供 Subscribe。订阅机制因时代而异;参见资源订阅。
一次资源读取,资源列表下方列出一个活动的订阅。
Prompts
列出提示模板及其参数,并为你所提供的参数渲染生成的消息,这是确认一个提示产出你所期望内容的最快方式。
用所提供参数渲染出的一个提示。
Apps
MCP 应用是携带 UI 的工具。Apps 标签页在一个从单独端口提供的沙箱化 iframe 中渲染其中之一,运行ui/* 桥接,并在侧边面板中显示视图的 ui/message 提交及其 notifications/message 日志。
- 沙箱端口默认是动态的;如果你需要暴露或转发它,用
MCP_SANDBOX_PORT固定它。 - 沙箱由一个
frame-ancestorsCSP 门控,而带方括号的 IPv6 字面量不是有效的 CSP host-source,因此请在localhost、127.0.0.1、一个主机名或一个 LAN IPv4 处浏览 Inspector,而不是在一个裸的http://[::1]:...处。 - 沙箱 URL 始终是纯
http,因此一个https://的 Inspector 页面会将该框架作为混合内容阻止。MCP 应用如今需要一个纯http的 origin。

在其沙箱化框架中渲染的一个 MCP 应用,其下方是应用自己的日志。
Protocol、Network 和 Console
这三个标签页以不同的详细程度显示相同的流量:- Protocol:JSON-RPC 记录。请求与响应配对、内联的通知、被分组为一次对话的 MRTR 轮次,以及按类别渲染的规范错误。
- Network:HTTP 层,用于 SSE 和 Streamable HTTP 服务器。状态码、请求和响应 header,以及正文。在现代连接上,标准化的
Mcp-*header 被高亮,哨兵值被解码。 - Console:已连接的 stdio 服务器进程的
stderr,大多数 stdio 服务器把自己的诊断信息放在那里。

展开了一个条目的 Protocol 标签页,显示完整的 JSON-RPC 交换。
深链接
一个驱动方(一个脚本、一个 CI harness,或 CLI 的--print-handoff)可以通过单次导航到达一个_已连接的_ Inspector:
另外三个参数会让你抵达一个_渲染出的应用_:
openApp=<toolName> 指定工具,appArgs=<base64url(JSON)> 提供其参数(合并到工具 schema 的默认值之上),而 autoOpen=<token> 自动触发工具调用。由于 autoOpen 触发一次调用,它携带与 autoConnect 相同的强制令牌门控。
主机绑定和 origin
默认情况下,Inspector 绑定localhost 并仅接受来自其端口的 loopback origin 的请求。将两个默认值都视为安全边界,因为后端会在你的机器上启动进程。
绑定所有接口(HOST=0.0.0.0)会被拒绝,除非你设置 DANGEROUSLY_BIND_ALL_INTERFACES=true。绑定一个_特定的_非 loopback 地址无需选择加入即被允许,因为那是一次刻意的暴露,而不是一次性暴露每个接口。
完整矩阵参见在网络上托管配方,相关变量参见配置。