MCP Bundler Service

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 仓库 URL
  • commit (可选): 要使用的特定 commit 哈希 (默认为最新)
  • format (可选): 输出格式 - mjs (默认) 或 cjs

响应:

{
  "data": "<打包后的代码,字符串形式>"
}

V2 Bundler (带有可选的 GCP 上传)

GET /v2/bundler?url=<github_url>&commit=<commit_hash>&mcpId=<your_mcp_id>

参数:

  • url (必需): GitHub 仓库 URL
  • commit (可选): 要使用的特定 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 集成时:

  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:

# 构建 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

Supabase MCP Server

一个模型上下文协议(MCP)服务器,它提供对 Supabase 管理 API 的编程访问。该服务器允许 AI 模型和其他客户端通过标准化的接口来管理 Supabase 项目和组织。

精选
JavaScript
contentful-mcp

contentful-mcp

在你的 Contentful Space 中更新、创建、删除内容、内容模型和资源。

精选
TypeScript
Azure MCP Server

Azure MCP Server

通过 Claude Desktop 实现与 Azure 服务的自然语言交互,支持资源管理、订阅处理和租户选择,并提供安全身份验证。

官方
本地
TypeScript
Settlemint

Settlemint

利用 SettleMint 的模型上下文协议服务器,无缝地与企业区块链基础设施交互。通过人工智能驱动的助手构建、部署和管理智能合约,从而简化您的区块链开发工作流程,实现最高的效率。

官方
本地
TypeScript
Brev

Brev

在云端运行、构建、训练和部署机器学习模型。

官方
本地
Python
Appwrite MCP Server

Appwrite MCP Server

一个模型上下文协议服务器,允许 AI 助手与 Appwrite 的 API 交互,从而提供管理 Appwrite 项目中数据库、用户、函数、团队和其他资源的工具。

官方
Python
MCP2Lambda

MCP2Lambda

通过 MCP 协议,人工智能模型能够与 AWS Lambda 函数交互,从而在安全的环境中访问私有资源、实时数据和自定义计算。

官方
Python
mcp-server-cloudflare

mcp-server-cloudflare

允许您使用 Claude Desktop 或任何 MCP 客户端,通过自然语言在您的 Cloudflare 帐户上完成任务。

官方
TypeScript
Story Protocol SDK MCP

Story Protocol SDK MCP

这个服务器提供 MCP(模型上下文协议)工具,用于与 Story 的 Python SDK 交互。 功能: * 获取许可条款 * 使用 PIL 条款铸造和注册 IP 资产 * 铸造许可代币 * 向钱包发送 $IP * 通过 Pinata [外部] 上传图像到 ipfs * 通过 Pinata [外部] 上传 IP 和 NFT 元数据

官方
Python
Tembo MCP Server

Tembo MCP Server

一个 MCP 服务器,它使 Claude 能够与 Tembo Cloud 平台 API 交互,从而允许用户通过自然语言管理 Tembo Cloud 资源。

官方
TypeScript