HTTP协议检测工具

基于Go语言的MCP服务器,提供HTTP请求/响应详细日志记录和深度检测功能。

  • by Robert-Rino
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 Robert-Rino/mcp-streamable-http

使用说明

MCP流式HTTP浏览器

这是Go内置的MCP(模型上下文协议)服务器,使用 可流式传输的HTTP 运输。

它提供工具并将所有HTTP请求/响应详细信息(标头、有效载荷和流式数据)记录到stdout,从而允许对协议的传输层进行深入检查。

设置

  1. 安装Go 1.22+。
  2. 初始化依赖关系:
    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测试服务器的最简单方法。

  1. 确保服务器正在运行(go run main.go).
  2. 打开一个新终端并运行:
    npx @modelcontextprotocol/inspector
    
  3. 打开控制台中提供的URL(它将包含一个身份验证令牌)。
  4. 在“连接”面板中:
    • 选择 可流式传输的HTTP 作为运输。
    • 进入 http://localhost:8080/mcp 作为URL。
    • 点击 连接.
  5. 现在,您可以浏览工具并通过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连接进行流式传输。