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

类似于接口调试工具:

在这里插入图片描述

部署

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

在这里插入图片描述

启动完成后自动调转至浏览器界面

可能遇到的问题: 浏览器无法访问

在这里插入图片描述

在命令行设置 set HOST=127.0.0.1

在这里插入图片描述

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

在这里插入图片描述

调试 MCP Server

MCP Inspector 连接 MCP Server 的方式有三种STDIOSSEStreamable 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 Http
  • URL 写入 Http://127.0.0.1:8000/mcp
  • Connection 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 选择 SSE
  • URL 写入 Http://127.0.0.1:8000/sse
  • Connection 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工程化

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐