A microservice for bundling MCP servers from GitHub repositories and preparing it for deployment.
Details
Author
highlight-ing
GitHub stars
32
Downloads
318
Categories
Other, Infrastructure
Jump to
- Bundle code directly from any public GitHub repository
- Support for ESM (mjs) and CommonJS (cjs) output formats
- Pin commits for reproducible builds with optional commit hash
- Optional upload of bundled code to Google Cloud Storage
- Interactive Swagger documentation at /docs
- Comprehensive error handling with HTTP status codes (400, 500, 504)
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
Install dependencies with pnpm install, start the server with pnpm run dev, and access the interactive API documentation at /docs on localhost:8080. Use the /bundler or /v2/bundler endpoints with a GitHub repository URL; optionally specify a commit hash, output format (v1), or an MCP ID (v2). For GCP uploads, set the GCP_SERVICE_ACCOUNT_KEY environment variable; set DISABLE_GCP_INTEGRATION=true to return the bundle directly.
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
# 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
```bash
# 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:**
```json
{
"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:**
```json
{
"success": true,
"gcp_upload": {
"bucket": "your-bucket-name",
"path": "your-mcp-id/commit-hash/",
"files": [
"bundle-commit-hash.tar.gz"
]
}
}
```
**GCP Upload Disabled Response:**
```json
{
"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:
```bash
# 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
| Variable | Description | Default |
|----------|-------------|---------|
| `GCP_SERVICE_ACCOUNT_KEY` | GCP service account credentials JSON | - |
| `DISABLE_GCP_INTEGRATION` | Set to "true" to disable GCP uploads | - |
| `SENTRY_INGEST_URL` | Sentry ingest URL | - |
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
```
No reviews yet — be the first
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
Social sign-in isn’t configured yet. You can still create an account with email below, or ask an admin to add Google/GitHub/Discord OAuth credentials.
Sequential Thinking is an MCP server that provides a tool for dynamic and reflective problem-solving through a structured, step-by-step thinking process. It is…
Filesystem is a Node.js server that implements the Model Context Protocol (MCP) for filesystem operations. It enables AI assistants to read, write, and manage…
A one-of-a-kind resume builder that keeps your privacy in mind. Completely secure, customizable, portable, open-source and free forever. Try it out today!
A collection of reference implementations for the Model Context Protocol (MCP), demonstrating secure and controlled access to tools and data sources for Large…