What is an MCP Bundle?
If you’ve tried to share an MCP server with someone, you know the pain: clone the repo, install the right Python or Node version, run dependency installation, configure paths, hope nothing breaks. MCPB solves this.
The Problem with MCP Servers Today
Section titled “The Problem with MCP Servers Today”MCP (Model Context Protocol) is powerful. It lets AI assistants like Claude interact with external tools and data. But distributing MCP servers is a mess:
# The typical "installation" experiencegit clone https://github.com/someone/cool-mcp-servercd cool-mcp-serverpython -m venv .venvsource .venv/bin/activatepip install -r requirements.txt# Now figure out how to configure Claude Desktop...# Hope the Python version is compatible...# Debug why it's not working...This friction kills adoption. Great tools sit unused because installation is too hard.
What MCPB Does
Section titled “What MCPB Does”MCPB (MCP Bundle) is a packaging format that bundles an MCP server with everything it needs to run:
my-server.mcpb (a zip file)├── manifest.json # Metadata + how to run it├── src/ # Your server code└── deps/ # ALL dependencies, vendoredOne file. Everything included. No installation steps.
One Command
Section titled “One Command”With MCPB + mpak:
# That's it. That's the whole installation.mpak bundle run @nimblebraininc/postgres-mcpThe CLI:
- Downloads the
.mcpbfile from the registry - Extracts it locally
- Runs the server with the bundled dependencies
No Python version conflicts. No missing dependencies. No path configuration. It just works.
How It Works
Section titled “How It Works”1. Dependencies Are Vendored
Section titled “1. Dependencies Are Vendored”When you build a bundle, all dependencies are copied into the bundle itself:
| Server Type | Dependencies Location |
|---|---|
| Python | deps/ directory (via pip install --target) |
| Node.js | node_modules/ (via npm install) |
| Binary | The compiled executable itself |
The server runs using these bundled dependencies, not whatever’s installed on the user’s system.
2. The Manifest Describes Everything
Section titled “2. The Manifest Describes Everything”The manifest.json tells mpak how to run the server:
{ "name": "@yourorg/postgres-mcp", "version": "1.0.0", "description": "Query PostgreSQL databases", "server": { "type": "python", "mcp_config": { "command": "python", "args": ["-m", "postgres_mcp.server"], "env": { "PYTHONPATH": "${__dirname}/deps" } } }}The ${__dirname} variable resolves to wherever the bundle is extracted, so paths always work.
3. Platform-Specific When Needed
Section titled “3. Platform-Specific When Needed”Pure Python and Node.js bundles work everywhere. But if your server has native dependencies (C extensions, Rust bindings), you can build platform-specific bundles:
@yourorg/postgres-mcp@1.0.0├── darwin-arm64.mcpb # macOS Apple Silicon├── darwin-x64.mcpb # macOS Intel├── linux-x64.mcpb # Linux x64└── linux-arm64.mcpb # Linux ARMmpak automatically downloads the right one for the user’s system.
Why This Matters
Section titled “Why This Matters”For Users
Section titled “For Users”- Zero friction -
mpak bundle run @org/serverand you’re done - Reproducible - Same bundle, same behavior, every time
- No conflicts - Bundled dependencies don’t interfere with your system
For Authors
Section titled “For Authors”- Ship once, run everywhere - Build it, publish it, forget about “works on my machine”
- No support burden - Users don’t file issues about installation problems
- Version control - Users can pin to specific versions
For the Ecosystem
Section titled “For the Ecosystem”- Discoverability - Search mpak.dev to find servers
- Trust - Provenance tracking shows exactly where bundles came from
- Standards - One format means tools can build on top of it
MCPB vs. Other Approaches
Section titled “MCPB vs. Other Approaches”| Approach | Pros | Cons |
|---|---|---|
| Git clone + install | Familiar | Dependency hell, version conflicts |
| Docker | Isolated | Heavy, requires Docker, overkill for CLI tools |
| System packages | Native | Platform-specific, complex publishing |
| MCPB | Lightweight, portable, bundled deps | Requires mpak CLI |
MCPB hits the sweet spot: lightweight like a script, reliable like a container.
The Specification
Section titled “The Specification”MCPB is an open specification maintained at github.com/modelcontextprotocol/mcpb.
Key points:
.mcpbfiles are zip archivesmanifest.jsonis required at the root- Dependencies are vendored (not referenced)
- Platform metadata enables multi-platform distribution
mpak is one implementation of the MCPB spec. Others can build compatible tools.
Try It
Section titled “Try It”See MCPB in action:
# Install the CLInpm install -g @nimblebrain/mpak
# Search for a servermpak bundle search echo
# Run it instantlympak bundle run @nimblebraininc/echoNo setup. No configuration. Just works.