MCP Bundler Service
一个微服务,用于从 GitHub 仓库打包 MCP 服务器,并准备好进行部署。
highlight-ing
README
MCP Bundler 服务
一个微服务,用于打包来自 GitHub 仓库的代码,并为部署做好准备。它支持直接返回打包后的代码或上传到 Google Cloud Storage。
快速开始
# 安装依赖
pnpm install
# 启动开发服务器
pnpm run dev
# 访问 API 文档
open http://localhost:8080/docs
API 文档
当服务器运行时,可以在 /docs 访问交互式 API 文档。
核心端点
索引路由
GET /
返回一个静态 HTML 页面,其中包含有关服务的信息。
健康检查
GET /health
返回一个简单的状态检查,以验证服务是否正在运行。
V1 Bundler (旧版)
GET /bundler?url=<github_url>&commit=<commit_hash>&format=<mjs|cjs>
参数:
url(必需): GitHub 仓库 URLcommit(可选): 要使用的特定 commit 哈希 (默认为最新)format(可选): 输出格式 -mjs(默认) 或cjs
响应:
{
"data": "<打包后的代码,字符串形式>"
}
V2 Bundler (带有可选的 GCP 上传)
GET /v2/bundler?url=<github_url>&commit=<commit_hash>&mcpId=<your_mcp_id>
参数:
url(必需): GitHub 仓库 URLcommit(可选): 要使用的特定 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": "<打包后的代码,字符串形式>"
}
GCP 集成 (可选)
V2 bundler 可以将打包后的代码上传到 Google Cloud Storage 以供其他服务使用,如果禁用 GCP 集成,则可以直接返回代码。
禁用 GCP 上传
如果您想禁用 GCP 上传并直接在响应中获取打包后的代码,请设置:
DISABLE_GCP_INTEGRATION=true
在您的环境或 .env 文件中。 当禁用 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:
# 构建 Docker 镜像
docker build -t mcp-bundler .
# 运行容器
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) 格式输出
- Commit 锁定: 指定精确的 commit 哈希以实现可重现的构建
- 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。
推荐服务器
Supabase MCP Server
一个模型上下文协议(MCP)服务器,它提供对 Supabase 管理 API 的编程访问。该服务器允许 AI 模型和其他客户端通过标准化的接口来管理 Supabase 项目和组织。
contentful-mcp
在你的 Contentful Space 中更新、创建、删除内容、内容模型和资源。
Azure MCP Server
通过 Claude Desktop 实现与 Azure 服务的自然语言交互,支持资源管理、订阅处理和租户选择,并提供安全身份验证。
Settlemint
利用 SettleMint 的模型上下文协议服务器,无缝地与企业区块链基础设施交互。通过人工智能驱动的助手构建、部署和管理智能合约,从而简化您的区块链开发工作流程,实现最高的效率。
Brev
在云端运行、构建、训练和部署机器学习模型。
Appwrite MCP Server
一个模型上下文协议服务器,允许 AI 助手与 Appwrite 的 API 交互,从而提供管理 Appwrite 项目中数据库、用户、函数、团队和其他资源的工具。
MCP2Lambda
通过 MCP 协议,人工智能模型能够与 AWS Lambda 函数交互,从而在安全的环境中访问私有资源、实时数据和自定义计算。
mcp-server-cloudflare
允许您使用 Claude Desktop 或任何 MCP 客户端,通过自然语言在您的 Cloudflare 帐户上完成任务。
Story Protocol SDK MCP
这个服务器提供 MCP(模型上下文协议)工具,用于与 Story 的 Python SDK 交互。 功能: * 获取许可条款 * 使用 PIL 条款铸造和注册 IP 资产 * 铸造许可代币 * 向钱包发送 $IP * 通过 Pinata [外部] 上传图像到 ipfs * 通过 Pinata [外部] 上传 IP 和 NFT 元数据
Tembo MCP Server
一个 MCP 服务器,它使 Claude 能够与 Tembo Cloud 平台 API 交互,从而允许用户通过自然语言管理 Tembo Cloud 资源。