MCP HTTP服务器

一个实现MCP可流式HTTP协议的FastAPI服务器,提供JSON-RPC 2.0端点供AI助手发现和调用工具。

  • by andkirby
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 andkirby/mcp-server-streamable-http-demo

使用说明

具有流式HTTP协议的MCP HTTP服务器

简单的MCP服务器实现 MCP流式HTTP协议 (2025-03-26)使用FastAPI。为AI助手提供JSON-RPC 2.0端点,以便通过HTTP传输发现和调用工具。

快速开始

python3 -m venv venv && source venv/bin/activate
pip install -r requirements.txt
uvicorn server:app --reload

测试

MCP检查器CLI

# List tools
timeout 10 npx @modelcontextprotocol/inspector --cli http://localhost:8000/mcp --transport http --method tools/list

# Call hello tool
timeout 10 npx @modelcontextprotocol/inspector --cli http://localhost:8000/mcp --transport http --method tools/call --tool-name hello --tool-arg name=FooBar --log-level debug

卷曲

# List tools
curl -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' http://localhost:8000/mcp

# Call hello tool
curl -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"hello","arguments":{"name":"World"}}}' http://localhost:8000/mcp

# Health check
curl http://localhost:8000/health

特性

  • MCP流式HTTP协议 (2025-03-26)符合要求
  • JSON-RPC 2.0 HTTP通信
  • 工具发现 支持分页
  • 工具执行 通过适当的错误处理
  • 生命周期管理 (初始化→ 操作→ 关机)
  • 日志记录支持 使用RFC 5424日志级别
  • 健康监测 端点

API

  • POST /mcp -JSON-RPC 2.0端点
    • initialize -协议协商和能力交换
    • tools/list -带分页的工具发现
    • tools/call -工具执行与错误处理
    • logging/setLevel -配置日志详细程度
  • GET /health -健康检查端点

MCP协议合规性

✅ 生命周期管理 -正确的初始化顺序和状态管理 ✅ 工具规格 -工具发现、执行和错误处理 ✅ 测井规范 -RFC 5424日志级别和结构化消息 ✅ 错误处理 -协议与执行错误的区别 ✅ JSON-RPC 2.0 -标准请求/响应格式

依赖项

  • 快速API>=0.104.0
  • Uvicorn>=0.24.0
  • Python 3.8+