|
| 1 | ++++ |
| 2 | +date = '2025-11-21T00:00:00+00:00' |
| 3 | +publishDate = '2025-11-21T00:00:00+00:00' |
| 4 | +draft = false |
| 5 | +title = 'Adopting the MCP Bundle format (.mcpb) for portable local servers' |
| 6 | +author = 'David Soria Parra (MCP Lead Maintainer), Joan Xie (MCPB Maintainer)' |
| 7 | +tags = ['mcp', 'mcpb', 'bundles'] |
| 8 | ++++ |
| 9 | + |
| 10 | +The [MCP Bundle format (.mcpb)](https://github.com/modelcontextprotocol/mcpb) is now part of the Model Context Protocol. This makes it easier for developers to distribute local MCP servers across any compatible client, including Claude desktop app, Claude Code, and MCP for Windows. |
| 11 | + |
| 12 | +## What are MCP Bundles? |
| 13 | + |
| 14 | +MCP Bundles are zip archives containing a local MCP server and a `manifest.json` that describes the server and its capabilities. The format is similar to Chrome extensions (.crx) or VS Code extensions (.vsix), enabling end users to install local MCP servers with a single click. |
| 15 | + |
| 16 | +A basic bundle structure looks like: |
| 17 | + |
| 18 | +``` |
| 19 | +bundle.mcpb (ZIP file) |
| 20 | +├── manifest.json # Required: Bundle metadata and configuration |
| 21 | +├── server/ # Server implementation |
| 22 | +│ └── index.js |
| 23 | +├── node_modules/ # Bundled dependencies |
| 24 | +└── icon.png # Optional: Bundle icon |
| 25 | +``` |
| 26 | + |
| 27 | +The format supports servers written in Node.js, Python, or compiled binaries—giving developers flexibility in how they build while maintaining a consistent distribution mechanism for users. |
| 28 | + |
| 29 | +## Why move MCPB to the specification? |
| 30 | + |
| 31 | +Anthropic originally developed this format (previously called DXT) for Claude's desktop applications. However, we believe the local MCP server ecosystem benefits when portability extends beyond any single client. By moving the bundle specification, CLI tooling, and reference implementation to the MCP project, we're enabling: |
| 32 | + |
| 33 | +**Cross-client compatibility:** A bundle created for one MCP-compatible application should work in any other that implements the specification. Developers can distribute their work once and reach users across the ecosystem. |
| 34 | + |
| 35 | +**Ecosystem-wide tooling:** The `mcpb` CLI and associated libraries are now open for the community to extend, improve, and build upon. Client developers can adopt standardized code for loading and verifying bundles. |
| 36 | + |
| 37 | +**User-friendly installation:** End users benefit from a consistent installation experience regardless of which AI application they prefer. Configuration variables, permissions, and updates can be handled uniformly. |
| 38 | + |
| 39 | +## What this means for developers |
| 40 | + |
| 41 | +**Servers:** You can now package your local MCP servers for distribution across multiple clients. The `mcpb` CLI helps you create a `manifest.json` and package your server into a `.mcpb` file. Once packaged, users can install your server with a single click in any client that supports MCP Bundles. |
| 42 | + |
| 43 | +**Clients:** You can add support for MCP Bundles to your application using the open-source toolchain. The repository includes the schemas and key functions used by Claude for macOS and Windows to implement bundle support, which you can adapt for your own client. |
| 44 | + |
| 45 | +## Getting started |
| 46 | + |
| 47 | +Check out the repo to get started: [modelcontextprotocol/mcpb](https://github.com/modelcontextprotocol/mcpb). We encourage feedback and contributions. |
| 48 | + |
| 49 | +## Acknowledgements |
| 50 | + |
| 51 | +Thanks to the MCP contributors and maintainers involved in making this happen, including: |
| 52 | + |
| 53 | +* David Soria Parra (MCP Lead Maintainer) |
| 54 | +* Adam Jones (MCP Maintainer) |
| 55 | +* Joan Xie (MCPB Maintainer) |
| 56 | +* Felix Rieseberg (MCPB Maintainer) |
| 57 | +* Alex Sklar (MCPB Maintainer) |
0 commit comments