通用Docker运行时

MCP Universal Runtime是一个通用的Docker运行时,用于将任何基于stdio的MCP服务器部署为HTTP服务,提供RESTful MCP端点、实时流、健康检查等功能。

  • by 1broseidon
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 1broseidon/mcp-universal-runtime

使用说明

MCP通用运行时

通用Docker运行时,用于将任何基于stdio的MCP服务器部署为HTTP服务。

特性

  • ✅ 通用兼容性:无需修改即可部署任何stdio MCP服务器
  • ✅ HTTP/JSON-RPC:在以下位置提供RESTful MCP端点 /mcp
  • ✅ 服务器发送的事件:实时流媒体 /sse
  • ✅ 健康检查:内置监控 /health
  • ✅ 能力:MCP服务器信息位于 /capabilities
  • ✅ 生产就绪:正确的错误处理、超时、CORS

端点

  • GET /health -健康检查和状态
  • POST /mcp -MCP JSON-RPC请求
  • GET /sse -服务器发送的事件流
  • GET /capabilities -MCP服务器功能

环境变量

  • PORT -HTTP服务器端口(默认值:8080)
  • MCP_ENTRY_POINT -入口点文件(默认:server.js)
  • USER_CODE_PATH -用户MCP代码的路径(默认:/app/user code)

用法

地方发展

# Build the image
docker build -t mcp-universal-runtime .

# Run with user code mounted
docker run -v /path/to/mcp/server:/app/user-code \
  -p 8080:8080 \
  -e MCP_ENTRY_POINT=server.js \
  mcp-universal-runtime

生产部署

# Copy user code into container
FROM mcp-universal-runtime:latest
COPY ./my-mcp-server /app/user-code
ENV MCP_ENTRY_POINT=index.js

运作原理

  1. 代码注入:用户MCP服务器代码已装载/复制到 /app/user-code
  2. 繁殖过程:网桥将用户的MCP服务器作为子进程生成
  3. 协议网桥转换 stdio JSON-RPC↔ HTTP JSON-RPC 数据库
  4. 标准化:所有部署的MCP都公开相同的HTTP接口

建筑

User Request (HTTP) → Bridge → MCP Process (stdio) → Response

兼容的MCP服务器

任何符合以下条件的MCP服务器:

  • 使用stdio传输
  • 实施MCP 2024-11-05协议
  • 是一个Node.js应用程序
  • 有一个主入口点文件

例子

请参阅 /examples 使用此运行时的示例MCP服务器的目录。