MCP Inspector 是由 Anthropic 官方提供的 MCP 服务器交互式调试和测试工具。它让开发者无需编写任何客户端代码,即可通过 Web 图形界面直接与 MCP 服务器进行交互,检查服务器声明的工具、资源和提示模板,发送请求并查看响应结果。
在 MCP 服务器的开发流程中,Inspector 扮演着"开发调试器"的关键角色。每当开发者构建或修改一个 MCP 服务器时,都需要验证服务器是否正确实现了 MCP 协议规范、工具调用是否正常返回结果、资源读取是否按预期工作。借助 Inspector,这些验证工作变得直观而高效。
Inspector 的核心价值在于它大大降低了 MCP 服务器开发和调试的门槛。传统调试方式需要开发者自己编写测试脚本或搭建客户端环境,而 Inspector 开箱即用,一个 npx 命令就能启动完整的交互式测试环境。它支持的 MCP 传输协议包括标准的 stdio(标准输入输出)和 SSE(Server-Sent Events)两种模式,兼容绝大多数 MCP 服务器的连接方式。
MCP Inspector 以 npm 包的形式发布,最简单的方式是通过 npx 直接运行,无需全局安装:
执行上述命令后,Inspector 会启动一个本地 Web 服务器,默认监听在 5173 端口。打开浏览器访问 http://localhost:5173 即可进入 Inspector 的主界面。首次使用时,会自动下载所需的依赖包,后续启动将更为快速。
Inspector 启动后,界面会显示一个连接配置面板。对于通过 stdio 协议通信的本地 MCP 服务器,需要在配置面板中填写服务器的启动命令。例如,如果要测试一个基于 Python 的 MCP 服务器,可以输入:
如果是 Node.js 编写的 MCP 服务器:
在配置面板中填写完命令后,点击"Connect"按钮,Inspector 会启动该服务器进程并通过 stdio 与之建立连接。连接成功后,Inspector 会自动向服务器发送初始化请求,获取服务器的能力声明(包括支持的工具列表、资源列表和提示模板列表)。
对于部署在远程服务器上、通过 SSE 协议通信的 MCP 服务器,Inspector 同样支持连接。在配置面板中切换到 SSE 模式,填写服务器的 SSE 端点 URL:
Inspector 会通过 HTTP 连接到 SSE 端点,建立持久化连接并发送初始化请求。连接远程服务器时需要注意网络可达性和跨域问题。对于本地开发中通过 SSE 运行的服务器,通常使用 http://localhost:PORT/sse 格式的 URL。
MCP Inspector 的 Web 界面布局清晰,主要分为以下几个核心区域:
左侧面板显示当前已经连接的 MCP 服务器列表。如果同时连接了多个服务器实例(高级用法),可以在列表中快速切换,选择要调试的目标服务器。每个服务器条目会显示其名称、连接状态(已连接/断开)以及协议类型(stdio/SSE)。
主面板是 Inspector 的核心操作区域,通过三个标签页分别对应 MCP 协议的三大原语:
右侧面板实时显示客户端和服务器之间的全部消息交换记录。每条日志条目包含消息方向(发送/接收)、消息类型(initialize、tools/list、tools/call 等)、JSON-RPC 请求 ID 以及时间戳。点击任意日志条目可以在底部控制台查看完整的消息内容。
底部控制台区域展示被选中日志消息的完整 JSON-RPC 消息体,包括请求参数和响应结果的全部字段。此外,服务器写入 stderr 的调试日志也会在此处显示,方便开发者查看服务器端的运行状态和错误信息。
连接 MCP 服务器成功后,切换到"Tools"标签页,Inspector 会自动调用 tools/list 接口,获取服务器注册的全部工具列表。每个工具条目会显示工具名称、描述信息以及参数的 JSON Schema 定义。通过 Schema 可以了解到每个参数的类型(string、number、boolean、object、array 等)、是否必填、默认值以及枚举值约束。
点击需要测试的工具名称,Inspector 会展开一个参数输入面板。面板根据工具的 JSON Schema 自动生成表单控件——字符串类型生成文本框,数值类型生成数字输入框,布尔类型生成复选框,枚举类型生成下拉选择框。开发者只需填入测试参数即可,无需手动构造 JSON 请求体。
对于没有参数的简单工具,点击"Call Tool"按钮即可直接调用。对于参数较多的复杂工具,可以逐步填写不同字段,观察不同参数组合对返回结果的影响。
点击"Call Tool"按钮后,Inspector 会构造 JSON-RPC 请求并发送给 MCP 服务器。调用完成后,结果区域会清晰展示:
Inspector 的一个强大功能是可以快速测试同一工具的不同参数组合。开发者可以修改参数值后重新调用,之前的调用记录会保留在右侧日志面板中,方便对比不同参数下的返回结果差异。这种交互式调试方式非常适合在开发过程中验证工具的边界情况处理,例如测试空值参数、极大值参数、特殊字符参数等。
切换到"Resources"标签页后,Inspector 会调用 resources/list 接口获取服务器提供的所有资源列表。资源以 URI 的形式组织,通常遵循特定的命名规范,例如:
Inspector 以树形结构展示资源 URI,开发者可以展开树节点浏览资源的层次关系。每个资源条目会显示 URI、名称、MIME 类型(如 text/plain、application/json)以及可选的描述信息。
点击资源条目旁的"Read"按钮,Inspector 会调用 resources/read 接口读取该资源的内容。读取结果会展示在内容区域,对于 JSON 格式的内容会自动进行语法高亮和格式化,对于纯文本内容则直接显示。如果资源读取失败(如 URI 不存在、权限不足),Inspector 会返回详细的错误信息,帮助开发者定位问题。
切换到"Prompts"标签页,Inspector 会调用 prompts/list 接口获取服务器定义的所有提示模板。每个提示模板包含模板名称、描述信息以及参数定义。
点击一个提示模板后,参数输入面板会根据模板的参数 Schema 生成表单。填入参数值后点击"Get Prompt"按钮,Inspector 会调用 prompts/get 接口,生成最终的提示文本。生成的提示文本会展示在结果区域,开发者可以检查提示模板的变量替换是否正确、生成的内容是否完整、格式是否整洁。
测试 Prompts 的意义在于确保提示模板在不同参数下都能生成高质量的提示文本,特别是模板中的条件逻辑和变量插值功能需要做充分的边界测试。
Inspector 的右侧日志面板记录了客户端和服务器之间的每一次消息交换。每条消息按照时间顺序排列,使用不同的颜色区分请求(蓝色)和响应(绿色),以及错误消息(红色)。日志格式清晰展示:
当 MCP 服务器返回错误响应时,Inspector 会高亮显示错误条目。点击错误消息会在底部控制台展示完整的错误信息,包括:
对于服务器端的运行异常,Inspector 会捕获服务器写入 stderr 的输出并显示在底部控制台的"Server Output"区域。这对于调试服务器端的运行时错误非常有帮助——例如 Python 服务器中的 Traceback 信息或者 Node.js 服务器中的异常堆栈。
每条工具调用记录都会显示从发出请求到收到响应的完整耗时。开发者可以通过耗时数据初步判断工具的性能表现:
这个功能对于调试 stdio 模式的 MCP 服务器尤为关键。在 stdio 模式下,stdout 用于 JSON-RPC 消息通信,而 stderr 则专门用于输出服务器的调试日志和错误信息。Inspector 会在底部控制台实时显示服务器的 stderr 输出流,开发者可以在其中添加自己的调试日志(如 log 语句、打印变量值等),帮助定位问题。
在全新开发一个 MCP 服务器时,Inspector 是最直接的功能验证工具。按照"开发-启动-测试"的快速迭代循环,开发者可以:
当 MCP 客户端(如 Claude Desktop)无法正常连接或使用某个 MCP 服务器时,Inspector 是首选的故障排查工具:
对于刚开始学习 MCP 协议的开发者来说,Inspector 是一个极好的学习工具。通过观察 Inspector 右侧面板中每条 JSON-RPC 消息的完整内容,可以直观理解 MCP 协议的各个生命周期阶段:
在团队协作或产品演示场景中,Inspector 可以作为 MCP 服务器的"展示台":
MCP Inspector 作为一个轻量级但功能强大的调试工具,已经成为 MCP 开发生态中不可或缺的组成部分。无论是 MCP 服务器开发者、MCP 客户端集成者,还是 MCP 协议的学习者,都能从 Inspector 中获得极大的帮助。掌握 Inspector 的使用方法,是高效开发 MCP 服务器的重要基础。