关于 MCP Bundler Service
这是一个微服务,用于从 GitHub 仓库打包 MCP 服务代码,并为部署做准备。可直接返回打包结果,也可上传至 Google Cloud Storage。适合需要批量或自动化部署 MCP 服务的开发团队。
主要功能
- 01打包公开 GitHub 仓库的代码
- 02支持 ESM 与 CommonJS 输出格式
- 03可指定 commit 以保证可复现构建
- 04可选上传至 Google Cloud Storage
- 05提供 Swagger 接口文档
适用场景
- 01为 MCP 服务生成可部署的打包文件
- 02在 CI/CD 流程中按指定 commit 进行构建
- 03将打包结果存入 GCP 存储桶供后续部署
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MCP Bundler 服务
一个用于打包 GitHub 仓库中的代码并为部署做好准备的微服务。支持直接返回打包后的代码,或将其上传到 Google Cloud Storage。
快速入门
# Install dependencies
pnpm install
# Start the development server
pnpm run dev
# Access the API documentation
open http://localhost:8080/docs
API 文档
服务器运行时,可在 /docs 查看交互式 API 文档。
核心端点
索引路由
GET /
返回包含服务信息的静态 HTML 页面。
健康检查
GET /health
返回简单的状态检查结果,用于确认服务正在运行。
V1 打包器(旧版)
GET /bundler?url=<github_url>&commit=<commit_hash>&format=<mjs|cjs>
参数:
url(必填):GitHub 仓库 URLcommit(可选):要使用的特定提交哈希(默认为最新提交)format(可选):输出格式——mjs(默认)或cjs
响应:
{
"data": "<bundled code as string>"
}
V2 打包器(可选上传到 GCP)
GET /v2/bundler?url=<github_url>&commit=<commit_hash>&mcpId=<your_mcp_id>
参数:
url(必填):GitHub 仓库 URLcommit(可选):要使用的特定提交哈希(默认为最新提交)mcpId(可选):打包后的服务的唯一标识符(未提供时自动生成)
启用 GCP 上传时的响应:
{
"success": true,
"gcp_upload": {
"bucket": "your-bucket-name",
"path": "your-mcp-id/commit-hash/",
"files": [
"bundle-commit-hash.tar.gz"
]
}
}
禁用 GCP 上传时的响应:
{
"success": true,
"data": "<bundled code as string>"
}
GCP 集成(可选)
V2 打包器可以将打包后的代码上传到 Google Cloud Storage,以供其他服务使用;如果禁用了 GCP 集成,也可以直接返回代码。
禁用 GCP 上传
如果要禁用 GCP 上传,并在响应中直接获取打包后的代码,请在环境中或 .env 文件中设置:
DISABLE_GCP_INTEGRATION=true
禁用 GCP 集成后:
- 打包后的代码会直接在 API 响应中返回
- 打包后的代码归档副本会保存到项目根目录下的
bundled目录中 - 归档文件名格式为
bundle-[commit-hash].tar.gz
设置 GCP 凭据
如果要使用 GCP 上传功能,需要提供 Google Cloud Platform 凭据:
将服务账号密钥 JSON 直接添加到 .env 文件中:
GCP_SERVICE_ACCOUNT_KEY={"type": "service_account", "project_id": "your-project-id", ...}
这是开发和 CI/CD 环境的推荐选项。
所需权限
为要使用的存储桶创建一个具有 Storage Admin 权限的服务账号。
部署
本服务包含一个用于容器化部署的 Dockerfile:
# Build the Docker image
docker build -t mcp-bundler .
# Run the container
docker run -p 8080:8080 -e GCP_SERVICE_ACCOUNT_KEY='{"type":"service_account",...}' mcp-bundler
部署到 Cloud Run
要部署到 Google Cloud Run,请将服务账号凭据 JSON 设置为 GCP_SERVICE_ACCOUNT_KEY 环境变量。
错误处理
所有端点都包含全面的错误响应,并使用适当的 HTTP 状态码:
400:输入参数无效500:服务器端错误504:超时错误(通常由大型仓库或复杂依赖项导致)
功能
- GitHub 集成:直接打包任意公开 GitHub 仓库中的代码
- 格式选项:输出 ESM(mjs)或 CommonJS(cjs)格式
- 固定提交版本:指定确切的提交哈希,以生成可复现的构建
- GCP 存储:可选将打包后的代码上传到 Google Cloud Storage,以便进一步部署
- Swagger 文档:使用 Swagger UI 提供交互式 API 文档
- 错误处理:全面报告错误,并使用适当的状态码
限制
- 仓库打包超时时间为 5 分钟
- 大型 WASM 文件可能超出处理限制
环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
GCP_SERVICE_ACCOUNT_KEY | GCP 服务账号凭据 JSON | - |
DISABLE_GCP_INTEGRATION | 设置为 "true" 以禁用 GCP 上传 | - |
SENTRY_INGEST_URL | Sentry 数据接收 URL | - |
贡献
欢迎贡献!欢迎提交 Pull Request。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。