MCP服务器模板

一个轻量级、后端无关的骨架,用于构建模型上下文协议(MCP)服务器,提供确定性信封、Starlette路由、服务器发送事件(SSE)和可扩展的工具注册功能。

  • by mad-sol-dev
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 BadlyDrawnBoy/mcp-server-template

使用说明

MCP服务器模板

一个轻量级的、后端中立的框架,用于构建模型上下文协议(MCP)服务器。模板侧重于管道 每个服务器都需要——确定性信封、Starlette路由、带就绪门的服务器发送事件(SSE)和干净的 用于定位工具的延伸表面。

特性

  • 具有确定性的最小HTTP API {ok,data,errors} 信封
  • 受保护的SSE端点,强制执行单个活动连接和就绪检查
  • FastMCP集成已准备好用于stdio或SSE传输
  • 环境驱动的安全限制(MCP_MAX_*)和审计日志切换
  • 可插拔后端发现(bridge/backends)用于注册自定义工具

快速入门

python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt -r requirements-dev.txt
uvicorn bridge.app:create_app --factory --host 127.0.0.1 --port 8000

服务器运行后:

curl -s http://127.0.0.1:8000/api/ping.json | jq
curl -s http://127.0.0.1:8000/api/version.json | jq

配置

运行时行为通过环境变量进行控制 MCP_ 前缀:

  • MCP_ENABLE_WRITES –启用可写工具(默认值: false)
  • MCP_MAX_WRITES_PER_REQUEST –单个请求中允许的最大写入量(默认值: 2)
  • MCP_MAX_ITEMS_PER_BATCH –由强制执行的最大批量大小 enforce_batch_limit (默认值: 256)
  • MCP_AUDIT_LOG –JSONL审核日志文件的可选路径

一 .env.sample 文件作为参考提供。

HTTP端点

路线 描述
GET /api/ping.json 健康检查返回 {"pong": true}
GET /api/version.json 模板语义版本(默认 0.0.0)
GET /api/state 关于SSE就绪和活动连接的诊断
GET /api/openapi.json 为已注册的路线生成OpenAPI文档

这 /sse 端点通过单个连接门公开MCP SSE传输。这 /messages 安装提供FastMCP 消息传输,并遵守相同的准备规则。

扩展服务器

将后端模块放入 bridge/backends/ 并实施a register(server: FastMCP) 功能。发现模块 启动时自动接收共享 FastMCP 例如用于注册工具。

示例性存根包含在 bridge/backends/example.py.

发展

使用以下命令运行测试:

./bin/dev # creates .venv if necessary and starts the server
pytest

要尝试SSE传输,请启动服务器并连接两次:

curl -iN http://127.0.0.1:8000/sse
curl -i http://127.0.0.1:8000/sse   # returns HTTP 409 while the first stream is active

许可证

此项目根据MIT许可证条款分发。看 许可证 了解详情。