FastMCP运行器
用于MCP(模型上下文协议)服务器的通用基于OCI的运行器。从注册表中提取容器映像并运行它们,而不需要Docker守护进程。
概述
FastMCP Runner是一个引导容器,在运行时拉取并执行MCP服务器映像。它适用于任何打包为容器映像的MCP服务器,而不仅仅是FastMCP应用程序。这对于像Hugging Face Spaces这样的环境很有用,在这些环境中,你不能直接运行任意的Docker镜像。
文档
完整文档可在 fastmcp-runner.readthedocs.io
快速开始
docker run \
-e IMAGE=ghcr.io/your-org/your-mcp-server:latest \
-e PORT=8000 \
-e REGISTRY_USER=username \
-e REGISTRY_PASSWORD=token \
-p 8000:8000 \
ghcr.io/drengskapur/fastmcp-runner:latest-stable对于公共图像,省略 REGISTRY_USER 和 REGISTRY_PASSWORD.
图像标记
| 标签 | 描述 | 用例 |
|---|---|---|
latest | 基于每次主推 | 开发、分期 |
latest-stable | 通过发布工作流程进行推广 | 生产 |
vX.Y.Z | 特定版本 | 固定部署 |
环境变量
| 变量 | 必填 | 描述 |
|---|---|---|
IMAGE | 是 | 要拉取并运行的完整OCI映像引用 |
PORT | 是 | MCP服务器的端口(1-65535) |
REGISTRY_USER | 否 | 专用注册表身份验证的用户名 |
REGISTRY_PASSWORD | 否 | 专用注册表身份验证的密码/令牌 |
MCP_TRANSPORT | 否 | 运输类型: streamable-http (默认)或 sse |
MCP_HOST | 否 | 绑定地址(默认值: 0.0.0.0) |
MCP_PATH | 无 | MCP端点路径(默认值: /mcp) |
HEALTHCHECK_PATH | 否 | 健康检查路径(默认: /health) |
LOG_LEVEL | 否 | 日志记录级别: debug, info, warn, error |
LOG_FORMAT | 否 | 日志格式: text 或 json |
MCP_ENV_* | 否 | 传递变量(在传递给应用程序之前去掉前缀) |
运作原理
- 验证所需的环境变量
- 向注册表进行身份验证(如果提供了凭据),然后清除凭据
- 获取图像配置以确定入口点和环境
- 提取应用程序目录(
/app,/data,/home,/opt,网站包) - 删除非root用户(UID 1000)的权限
- 执行映像的配置入口点/命令
安全
- 身份验证后立即清除凭据
- 应用程序以非root用户身份运行(UID 1000)
- 从提取中排除的系统目录(仅复制应用程序路径)
- 基础图像: 长城狼基地
- 所有图片均已Sigstore联名签名
验证图像签名
cosign verify ghcr.io/drengskapur/fastmcp-runner:latest-stable \
--certificate-oidc-issuer https://token.actions.githubusercontent.com \
--certificate-identity-regexp 'https://github.com/drengskapur/fastmcp-runner/.*'需求
目标图像必须具有:
- 启动MCP服务器的有效入口点或命令
- 可提取路径中的应用程序代码(
/app,/opt,/home,或网站包) - 服务器必须绑定到
0.0.0.0并从读取端口PORT环境变量
许可证
Apache 2.0
