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 是一个仅限 Web 的标志。它会运行 Vite 开发服务器,而不是提供预构建的 bundle;如果你正在开发 Inspector 本身,这一点很重要:
--web 会提供已构建的 bundle。在已发布的软件包中,该 bundle 始终会随包提供;而在全新的源代码检出中,它并不存在,因此运行器会在你首次启动时按需构建它。
标签栏
网络和控制台不会同时出现。旧时代和现代的说明请参阅协议时代。
已连接服务器的标签栏。显示哪些标签取决于服务器报告的能力。
监控侧边栏
任务、日志、协议、网络和控制台组成一个_监控组_。固定该组后,它们会离开标签栏,移至右侧可调整大小的栏中,这样你就可以在使用工具或资源时监控流量。栏宽度和选中的监控标签会在重新加载后保留。固定在工具屏幕旁的监控侧边栏。在工作时,协议流会保持可见。
服务器
“服务器”屏幕是入口。每一行服务器都会显示其传输方式、连接状态,以及一个用于打开该服务器专属设置的控件。 该列表的来源,以及是否可编辑,取决于你的启动方式:
首次启动时,Web 客户端会使用两个示例服务器初始化目录:一个作用域为
/tmp 的文件系统服务器,以及规范的“everything”参考服务器。有关完整规则(包括 CLI 和 TUI 为何初始化空目录),请参阅配置和标志。
服务器设置
- 协议时代:
legacy/auto/modern。请参阅协议时代。 - 每个请求的日志级别:现代时代连接默认附加到每个传出请求的级别,或使用
off选择退出(请参阅日志记录)。 - 声明的扩展:Inspector 在
capabilities.extensions中声明的扩展。一个用于调试的选项:服务器可能会根据你声明的内容,合理地改变其注册的内容。取消选中 Tasks 扩展,然后针对test-servers/configs/advertised-extensions-http.jsonfixture 重新连接(设置方法请参阅在本地复现各个时代),即可看到某个工具消失。 - 根目录:通过
roots客户端能力声明的根目录。例如,@modelcontextprotocol/server-filesystem会调用roots/list来了解其允许访问的目录。 - 请求头、超时和 OAuth 字段。
- 逐页获取列表:关闭时,连接时会自动聚合所有分页中的列表结果;开启时,每个列表只加载第 1 页,并显示 加载下一页 控件及 已加载 N 页 状态。可使用
test-servers/configs/pagination-http.json复现,该配置会将 12 个工具、资源和提示词分别分页为三页。
展开了“声明的扩展”的服务器设置。取消选中某一项会改变 Inspector 在连接时声明的内容。
工具
选择一个工具以查看其描述、以表单形式呈现的输入架构及其注释。填写表单并调用工具;结果将显示在下方,其中结构化内容、嵌入资源和图像均会以原生方式处理。 在现代版本的服务器上,此屏幕还会显示镜像的Mcp-Param-* 标头、已排除的工具以及独立的 -32602 错误面板,相关内容均涵盖在协议时代中。
一次工具调用及其呈现的结果。调用返回后,参数表单会折叠到结果面板中。
资源
列出资源和资源模板及其 MIME 类型与描述,在选择资源时读取内容,并在支持订阅的服务器上提供订阅功能。订阅机制因时代而异;请参阅资源订阅。资源读取示例,资源列表下方列出了一个活跃的订阅。
提示词
列出带有其参数的提示词模板,并渲染根据你提供的参数生成的消息,这是确认提示词是否产生预期结果的最快方式。使用所提供的参数渲染的提示词。
应用
MCP 应用 是携带 UI 的工具。Apps 标签页会在由独立端口提供服务的沙盒 iframe 中渲染一个应用,调用ui/* 桥接,并在侧边面板中显示视图提交的 ui/message 和其 notifications/message 日志。
- 沙盒端口默认是动态的;如果需要公开或转发该端口,请使用
MCP_SANDBOX_PORT固定它。 - 沙盒受
frame-ancestorsCSP 限制,并且带方括号的 IPv6 字面量不是有效的 CSP host-source,因此请通过localhost、127.0.0.1、主机名或局域网 IPv4 地址访问 Inspector,不要通过裸的http://[::1]:...访问。 - 沙盒 URL 始终使用普通的
http,因此https://Inspector 页面会因混合内容而阻止该框架。当前 MCP 应用需要普通的http源。
在其沙盒框架中渲染的 MCP 应用,应用自身的日志显示在其下方。
协议、网络和控制台
这三个选项卡以不同的详细程度显示相同的流量:- 协议:JSON-RPC 记录。请求与响应配对显示,通知内联显示,MRTR 轮次归为一个会话,并按类别呈现规范错误。
- 网络:适用于 SSE 和可流式 HTTP 服务器的 HTTP 层。显示状态码、请求和响应标头以及正文。在现代连接中,标准化的
Mcp-*标头会突出显示,并解码哨兵值。 - 控制台:已连接的 stdio 服务器进程的
stderr,大多数 stdio 服务器会将自身的诊断信息输出到这里。
协议选项卡中展开了一条记录,显示完整的 JSON-RPC 交换内容。
深层链接
驱动程序(脚本、CI 测试工具,或 CLI 的--print-handoff)可以通过一次导航访问一个_已连接的_ Inspector:
另外三个参数可以将你带到一个_渲染后的应用_:
openApp=<toolName> 指定工具名称,appArgs=<base64url(JSON)> 提供其参数(与工具架构的默认值合并),而 autoOpen=<token> 会自动触发工具调用。由于 autoOpen 会触发调用,因此它与 autoConnect 一样带有相同的必需令牌门槛。
主机绑定与来源
默认情况下,Inspector 绑定localhost,并且仅接受来自其端口的环回来源的请求。请将这两个默认设置都视为安全边界,因为后端会在您的计算机上生成进程。
除非设置 DANGEROUSLY_BIND_ALL_INTERFACES=true,否则将所有接口绑定到 (HOST=0.0.0.0) 会被拒绝。绑定到某个_特定的_非环回地址时无需选择加入,因为这表示一次有意的单独暴露,而不是同时暴露所有接口。
请参阅在网络上托管配方以了解完整矩阵,并参阅配置了解相关变量。