MCP Inspector 官方提供的用于测试和调试 MCP 服务器的交互式开发工具; 可以可视化的方式查看和调用测试Server端能力的可用性。
类似于接口调试工具:

部署
部署方式很简单, 直接运行官方提供的 npx @modelcontextprotocol/inspector 即可启动服务:

启动完成后自动调转至浏览器界面
可能遇到的问题: 浏览器无法访问

在命令行设置 set HOST=127.0.0.1

启动服务后Url会变成127.0.0.1 , 可成功访问

调试 MCP Server
MCP Inspector 连接 MCP Server 的方式有三种STDIO、SSE、Streamable Http; 其中 Streamable Http为主流方式

启动 MCP Server
Streamable Http
命令行启动uv run server.py

之前使用FastMcp运行启动为 mcp.run(transport="streamable-http"),使用这种方式会出现 MCP Inspector 连接不上的问题,Server端会出现如下错误

需要修改代码实现如下, 替换成使用 Starlette + CORSMiddleware
app = Starlette(
routes=[
# Mount("/", app=mcp.sse_app()),
Mount("/", app=mcp.streamable_http_app()),
],
lifespan=lifespan,
)
app = CORSMiddleware(
app,
allow_origins=[
"http://localhost:6274",
"http://127.0.0.1:6274",
],
allow_methods=["GET", "POST", "DELETE", "OPTIONS"],
allow_headers=["*"],
expose_headers=["Mcp-Session-Id"],
)
if __name__ == "__main__":
uvicorn.run(app, host="127.0.0.1", port=8000)
启动方式还是一样
连接 Inspector
Transport Type选择Streamable HttpURL写入Http://127.0.0.1:8000/mcpConnection Type选择Direct- 点击
Connection

连接成功后右侧会出现对于的资源面板, 我们的测试Server端只定义了tools,点击对应的面板,点击List tools即可出现Server端已有的Tool列表,点击对应的Tool,右侧会出现对应的参数、描述及调试按钮。

填入对应的参数,点击Run Tool

即可验证工具的可用性和连通性, 返回结果
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
SSE 方式
该方式为旧版本的实现方式,当前主流请使用Http
Server端将Mount("/", app=mcp.streamable_http_app()), 改成 Mount("/", app=mcp.sse_app()), 去掉lifespan=lifespan,即可
app = Starlette(
routes=[
Mount("/", app=mcp.sse_app())
# Mount("/", app=mcp.streamable_http_app()),
],
# lifespan=lifespan,
)
使用 uv run server.py运行

Transport Type选择SSEURL写入Http://127.0.0.1:8000/sseConnection Type选择Direct- 点击
Connection 
即可正常连接,其他使用方式同上述的一致
总结
本次主要分享MCP Inspector 在本地部署的一些排错记录,以及如何使用它帮助我们对MCP Server的资源仅需开发测试,有了它我们就不用自己再写MCP Client去测试我们的MCP Server的资源可用性了。希望对您有用~~~
我是小C,每天学一点 Agent 也拆一点 Agent;尽量把原理弄懂,框架每天都在迭代,不只看用法,更看实现思路。框架会变,原理不变。后续继续分享Agent相关知识笔记~
#MCPInspector #MCPServer调试 #MCP本地调试 #StreamableHTTP #SSE #MCP跨域 #Starlette #CORSMiddleware #AIAgent #Agent工程化