一个微服务,用于从GitHub仓库打包代码并准备部署。它支持直接返回打包后的代码或上传到Google Cloud Storage。
# 安装依赖
pnpm install
# 启动开发服务器
pnpm run dev
# 访问API文档
open http://localhost:8080/docs
当服务器运行时,可以在 /docs 路径访问交互式API文档。
GET /
返回一个包含服务信息的静态HTML页面。
GET /health
返回一个简单的状态检查以验证服务是否正在运行。
GET /bundler?url=<github_url>&commit=<commit_hash>&format=<mjs|cjs>
参数:
url(必需):GitHub仓库URLcommit(可选):要使用的特定提交哈希(默认为最新)format(可选):输出格式 - mjs(默认)或 cjs响应:
{
"data": "<打包后的代码字符串>"
}
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": "<打包后的代码字符串>"
}
V2打包器可以将打包后的代码上传到Google Cloud Storage供其他服务使用,或者在禁用GCP集成时直接返回代码。
如果您想禁用GCP上传并在响应中直接获取打包后的代码,请设置:
DISABLE_GCP_INTEGRATION=true
在您的环境变量或.env文件中。当禁用GCP集成时:
bundled目录中bundle-[commit-hash].tar.gz格式如果您想使用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
对于Google Cloud Run部署,设置GCP_SERVICE_ACCOUNT_KEY环境变量为您的服务账户凭证JSON。
所有端点都包含带有适当HTTP状态码的全面错误响应:
400:无效输入参数500:服务器端错误504:超时错误(通常针对大型仓库或复杂依赖)| 变量 | 描述 | 默认值 |
|---|---|---|
GCP_SERVICE_ACCOUNT_KEY | GCP服务账户凭证JSON | - |
DISABLE_GCP_INTEGRATION | 设置为"true"以禁用GCP上传 | - |
SENTRY_INGEST_URL | Sentry摄入URL | - |
欢迎贡献!请随时提交Pull Request。