使用说明
MCP流式HTTP浏览器
这是Go内置的MCP(模型上下文协议)服务器,使用 可流式传输的HTTP 运输。
它提供工具并将所有HTTP请求/响应详细信息(标头、有效载荷和流式数据)记录到stdout,从而允许对协议的传输层进行深入检查。
设置
- 安装Go 1.22+。
- 初始化依赖关系:
go mod tidy
运行服务器
在端口8080上启动服务器:
go run main.go
服务器将监听 http://localhost:8080/mcp.
配置
服务器的行为可以使用环境变量进行自定义:
| 变量 | 描述 | 默认值 |
|---|---|---|
MCP_VERBOSE_LOGGING |
启用详细的请求/响应标头和有效负载日志。 | true |
要禁用详细日志,请执行以下操作:
MCP_VERBOSE_LOGGING=false go run main.go
MCP检查员测试(推荐)
这 MCP检查员 是使用UI测试服务器的最简单方法。
- 确保服务器正在运行(
go run main.go). - 打开一个新终端并运行:
npx @modelcontextprotocol/inspector - 打开控制台中提供的URL(它将包含一个身份验证令牌)。
- 在“连接”面板中:
- 选择 可流式传输的HTTP 作为运输。
- 进入
http://localhost:8080/mcp作为URL。 - 点击 连接.
- 现在,您可以浏览工具并通过UI调用它们。
手动测试(卷曲)
1.启动SSE(GET)
要启动会话,请使用 curl 要打开SSE流:
curl -v http://localhost:8080/mcp
服务器将以 Mcp-Session-Id 头球保留此ID以备后续请求。
2.初始化会话(POST)
在调用工具之前,您必须初始化会话:
curl -X POST http://localhost:8080/mcp \
-H "Mcp-Session-Id: <YOUR-SESSION-ID>" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "initialize",
"params": {
"protocolVersion": "2024-11-05",
"capabilities": {},
"clientInfo": {"name": "curl", "version": "1.0"}
},
"id": 1
}'
3.调用工具(POST)
打电话给 add 工具:
curl -X POST http://localhost:8080/mcp \
-H "Mcp-Session-Id: <YOUR-SESSION-ID>" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "add",
"arguments": { "a": 10.5, "b": 20.2 }
},
"id": 2
}'
测试 long_running_task 带有进度通知:
curl -X POST http://localhost:8080/mcp \
-H "Mcp-Session-Id: <YOUR-SESSION-ID>" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "long_running_task",
"arguments": { "duration": 5 },
"_meta": { "progressToken": "my-token" }
},
"id": 3
}'
响应和进度更新将通过步骤1中启动的SSE连接进行流式传输。
