README
🚀 MCP 打包服务
这是一个微服务,用于打包来自 GitHub 仓库的代码并将其准备好进行部署。它支持直接返回打包后的代码或将代码上传到 Google Cloud Storage,为代码部署提供了灵活的解决方案。
🚀 快速开始
使用以下命令快速启动服务:
# 安装依赖
pnpm install
# 启动开发服务器
pnpm run dev
# 访问 API 文档
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": "<打包后的代码作为字符串>"
}
- 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": "<打包后的代码作为字符串>"
}
☁️ GCP 集成(可选)
V2 打包程序可以将打包后的代码上传到 Google Cloud Storage 以供其他服务使用,或者直接返回打包后的代码。
- 禁用 GCP 上载 如果你想禁用 GCP 上载并直接在 API 响应中获取打包后的代码,设置:
DISABLE_GCP_INTEGRATION=true
在你的环境或 .env 文件中。当 GCP 集成被禁用时:
1. 打包后的代码直接在 API 响应中返回
2. 打包后的代码存档副本保存到项目根目录的 bundled 目录
3. 存档文件名格式为 bundle-[提交哈希].tar.gz
- 设置 GCP 凭据
如果你想使用 GCP 上传,你需要提供你的 Google Cloud Platform 凭证:
将你的服务账户密钥 JSON 直接添加到
.env文件中:
GOOGLE_CLOUD_KEY=your-service-account-key.json
- 注意事项
- 如果你禁用了 GCP 集成,则需要自行处理打包后的文件存储。
- 确保你的服务账户具有足够的权限以上传文件到 Google Cloud Storage。
🚢 部署说明
- 依赖项 在开始之前,请确保安装以下依赖项:
npm install @mcp/bundler
- 环境变量 设置以下环境变量:
SENTRY_INGEST_URL=your-sentry-ingest-url
⚠️ 注意事项
- 打包程序支持以下格式:
tar.gz,zip,tgz。 - 支持的平台包括:Linux, Windows, macOS。
- 确保你的 GitHub 令牌具有读取仓库内容的权限。
👥 贡献
欢迎贡献!请随时提交 Pull Request。
微信扫一扫