├── index.js # 启动文件,在这里可以选择你要使用的 mcp server
├── llm
│ └── askLLM.js # 调用大模型
└── mcp
├── sse
│ └── client.js
├── stdio
│ ├── compute
│ │ ├── client.js
│ │ └── server.js # 自己写的 mcp server
│ └── filesystem
│ └── client.js
└── streamable-http
└── client.js
npm run start: 启用对话服务,在根目录中有一个.env文件用于设置环境变量src/index你可以选择要测试的MCP类型npm run sse基于STDio启动SSE服务npm run inspector打开用于测试MCP服务器的可视化工具各种Transport都可以通过requestInit设置header,例如添加认证令牌
new StreamableHTTPClientTransport(new URL('http://localhost:8000/sse'), {
requestInit: {
headers: {
"Authorization": "Bearer xxx",
}
}
})
访问各种client可以通过_meta设置参数,例如:
await client.listTools({
_meta: {
newsId: "179",
}
})
await client.callTool({
name: tool.name,
arguments: {
...JSON.parse(functionInfo.arguments),
_meta: {
newsId: '170'
}
}
});
await client.listResources({
_meta: {
newsId: "179",
}
})
await client.readResource({
uri: "",
_meta: {
newId: '179'
})
不支持的协议版本,支持的最新版本是2025-03-26
主要原因在于MCP客户端和MCP服务器使用了不同版本的MCP协议,前端解决方案是升级或降级@modelcontextprotocol/sdk版本。
MCP协议:为什么Streamable HTTP是最好的选择?
STDio是拉取相应的代码到本地并启动本地服务
SSE是从服务器拉取相应代码以启动服务
sse或streamableHttp服务工具: https://github.com/supercorp-ai/supergateway
大脑思考非常不同:顺序思维MCP 实现基于推理的大模型功能的全面分析