mcpField
M
MCP Bundler Service

MCP Bundler Service

本地服务
github.com/highlight-ing开发工具3283 周前更新

关于 MCP Bundler Service

这是一个微服务,用于从 GitHub 仓库打包 MCP 服务代码,并为部署做准备。可直接返回打包结果,也可上传至 Google Cloud Storage。适合需要批量或自动化部署 MCP 服务的开发团队。

主要功能

  1. 01打包公开 GitHub 仓库的代码
  2. 02支持 ESM 与 CommonJS 输出格式
  3. 03可指定 commit 以保证可复现构建
  4. 04可选上传至 Google Cloud Storage
  5. 05提供 Swagger 接口文档

适用场景

  1. 01为 MCP 服务生成可部署的打包文件
  2. 02在 CI/CD 流程中按指定 commit 进行构建
  3. 03将打包结果存入 GCP 存储桶供后续部署

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"bundler": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"build"
]
}
}
}
启动命令docker run -i --rm build

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocibuild

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

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 仓库 URL
  • commit(可选):要使用的特定提交哈希(默认为最新提交)
  • 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 仓库 URL
  • commit(可选):要使用的特定提交哈希(默认为最新提交)
  • 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 集成后:

  1. 打包后的代码会直接在 API 响应中返回
  2. 打包后的代码归档副本会保存到项目根目录下的 bundled 目录中
  3. 归档文件名格式为 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_KEYGCP 服务账号凭据 JSON-
DISABLE_GCP_INTEGRATION设置为 "true" 以禁用 GCP 上传-
SENTRY_INGEST_URLSentry 数据接收 URL-

贡献

欢迎贡献!欢迎提交 Pull Request。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。