mcpField
M
MCP Bundler Service

MCP Bundler Service

Local
github.com/highlight-ingDeveloper Tools32Updated 83w ago

About MCP Bundler Service

A microservice that bundles code from GitHub repositories into deployable packages for MCP servers. It can return the bundle directly or upload it to Google Cloud Storage, and suits teams automating MCP server deployment.

Key features

  1. 01Bundles public GitHub repository code
  2. 02ESM and CommonJS output formats
  3. 03Commit pinning for reproducible builds
  4. 04Optional upload to Google Cloud Storage
  5. 05Swagger API documentation

Use cases

  1. 01Producing deployable archives for MCP servers
  2. 02Building specific commits in CI/CD pipelines
  3. 03Storing bundles in a GCP bucket for later deployment

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"bundler": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"build"
]
}
}
}
Run commanddocker run -i --rm build

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
ocibuild

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

MCP Bundler Service

A microservice that bundles code from GitHub repositories and prepares it for deployment. It supports direct return of bundled code or uploading to Google Cloud Storage.

Quick Start

# Install dependencies
pnpm install

# Start the development server
pnpm run dev

# Access the API documentation
open http://localhost:8080/docs

API Documentation

Interactive API documentation is available at /docs when the server is running.

Core Endpoints

Index Route
GET /

Returns a static HTML page with information about the service.

Health Check
GET /health

Returns a simple status check to verify the service is running.

V1 Bundler (Legacy)
GET /bundler?url=<github_url>&commit=<commit_hash>&format=<mjs|cjs>

Parameters:

  • url (required): GitHub repository URL
  • commit (optional): Specific commit hash to use (defaults to latest)
  • format (optional): Output format - mjs (default) or cjs

Response:

{
  "data": "<bundled code as string>"
}
V2 Bundler (with optional GCP Upload)
GET /v2/bundler?url=<github_url>&commit=<commit_hash>&mcpId=<your_mcp_id>

Parameters:

  • url (required): GitHub repository URL
  • commit (optional): Specific commit hash to use (defaults to latest)
  • mcpId (optional): Unique identifier for your bundled server (auto-generated if not provided)

GCP Upload Enabled Response:

{
  "success": true,
  "gcp_upload": {
    "bucket": "your-bucket-name",
    "path": "your-mcp-id/commit-hash/",
    "files": [
      "bundle-commit-hash.tar.gz"
    ]
  }
}

GCP Upload Disabled Response:

{
  "success": true,
  "data": "<bundled code as string>"
}

GCP Integration (Optional)

The V2 bundler can upload bundled code to Google Cloud Storage for use with other services, or return it directly if GCP integration is disabled.

Disabling GCP Upload

If you want to disable GCP uploads and get the bundled code directly in the response, set:

DISABLE_GCP_INTEGRATION=true

in your environment or .env file. When GCP integration is disabled:

  1. The bundled code is returned directly in the API response
  2. A copy of the bundled code archive is saved to the bundled directory in the project root
  3. The archive filename follows the format bundle-[commit-hash].tar.gz
Setting Up GCP Credentials

If you want to use GCP uploads, you need to provide your Google Cloud Platform credentials:

Add your service account key JSON directly to the .env file:

GCP_SERVICE_ACCOUNT_KEY={"type": "service_account", "project_id": "your-project-id", ...}

This is the recommended option for development and CI/CD environments.

Required Permissions

Create a service account with Storage Admin permissions for the bucket you want to use.

Deployment

The service includes a Dockerfile for containerized deployment:

# 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 Deployment

For Google Cloud Run deployment, set the GCP_SERVICE_ACCOUNT_KEY environment variable with your service account credentials JSON.

Error Handling

All endpoints include comprehensive error responses with appropriate HTTP status codes:

  • 400: Invalid input parameters
  • 500: Server-side errors
  • 504: Timeout errors (typically for large repositories or complex dependencies)

Features

  • GitHub Integration: Bundle code directly from any public GitHub repository
  • Format Options: Output in either ESM (mjs) or CommonJS (cjs) format
  • Commit Pinning: Specify exact commit hashes for reproducible builds
  • GCP Storage: Optional upload of bundled code to Google Cloud Storage for further deployment
  • Swagger Documentation: Interactive API documentation with Swagger UI
  • Error Handling: Comprehensive error reporting with appropriate status codes

Limitations

  • Repository bundling has a 5-minute timeout
  • Large WASM files might exceed processing limits

Environment Variables

VariableDescriptionDefault
GCP_SERVICE_ACCOUNT_KEYGCP service account credentials JSON-
DISABLE_GCP_INTEGRATIONSet to "true" to disable GCP uploads-
SENTRY_INGEST_URLSentry ingest URL-

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.