写在前面
MCP是当前的热点话题, 说一点自己开发MCP以及开发MCP后进行测试的一些小结
协议层
跟着协议走, 不跑偏 https://modelcontextprotocol.io/
mcp 中 host client server 这几个概念就不重复了, 基本入门时都看过, 着重说一些mcp server相关的内容, 这个也是开发者开发MCP大部分改动的部分
transport
- url: 初版大部分是 http SSE, 也是当前LLM stream response 的标准格式, 新版(未来)使用 StreamableHTTP
以 deepwiki 为例: streamableHTTP, 如果支持, 优先配置: https://mcp.deepwiki.com/mcp; sse 兼容性好, 兜底配置: https://mcp.deepwiki.com/sse
- stdio(对应json配置中的 command): 标准输入输出, 当前有3种方式
uvx npx docker
auth
进行中的是 oauth2.0 和 oauth2.1, 已有的主要通过 apikey
的方式, 下面是几个例子
{
"mcpServers": {
"deepwiki": {
"url": "https://mcp.deepwiki.com/sse"
},
"mcp_weather": {
"type": "sse",
"url": "https://mcp.api-inference.modelscope.cn/sse/<token>" // 直接放url里
},
"lark-mcp": {
"command": "npx",
"args": [ // 放 args 里
"-y",
"@larksuiteoapi/lark-mcp",
"mcp",
"-a",
"cli_<xxx>",
"-s",
"<token>",
"-u",
"u-<xxx>"
]
},
"theta-health-dev": {
"command": "npx",
"args": [
"-y",
"theta_health_mcp"
],
"env": { // 放env里
"THETA_HEALTH_TOKEN": "<token>"
}
}
}
proxy
存量http api 如何快速提供 mcp 服务, 或者 mcp 服务如何转成 api 复用当前工具 -> npx -y supergateway
debug
测试MCP的工具有很多, 推荐使用 Cherry Studio
- agent 可切
- model 可切, 使用 flash/turbo 模型可以快速进行测试, 比如
qwen-turbo
doubao-1.6-flash
- mcp 可切, 甚至mcp中的tools, 也可以选择打开/关闭
Cherry Studio
- 查看当前 mcp 的定义: 通用/工具/提示/资源
添加MCP服务
添加时有个需要注意的点, UI界面添加到MCP服务, 可以在这里查看 json 文件, 检查一下json内容确认MCP服务是否添加正确
查看MCP json
写在最后
debug mcp 这步已经相当于测试中的集成测试了, 其实更多的工作是在MCP server 开发时就做了
- 对应 tools 实际调用方法的单测
- 对应 tools 服务启动后, 直接使用 api 测试工具验证