MCP捆绑包(MCPB)
⚠️ 重要提示:此项目将从DXT(桌面扩展)重命名为MCPB(MCP捆绑包) 如果您正在寻找DXT工具,它们已被重命名为MCPB。请更新您的依赖关系和工具: -dxtCLI现在mcpb-.dxt文件现在.mcpb文件 -@anthropic-ai/dxt包裹将被移动到@anthropic-ai/mcpb
MCP捆绑包(.mcpb)是包含本地MCP服务器和 manifest.json 它描述了服务器及其功能。这种格式在精神上与Chrome扩展程序相似(.crx)或VS代码扩展(.vsix),使最终用户只需单击一下即可安装本地MCP服务器。
此存储库提供三个组件: MANIFEST.md,用于创建捆绑包的CLI工具(请参见 CLI.md),以及Claude用于macOS和Windows加载和验证MCPB捆绑包的代码(src/index.ts).
- 对于本地MCP服务器的开发人员,我们的目标是使所述服务器的分发和安装变得方便
- 对于支持本地MCP服务器的应用程序的开发人员,我们的目标是使添加对MCPB捆绑包的支持变得容易
Claude for macOS和Windows使用此存储库中的代码来实现本地MCP服务器的一键安装,包括许多最终用户友好的功能,如自动更新、MCP服务器及其所需的变量和参数的轻松配置,以及一个精心策划的目录。我们致力于围绕MCP服务器的开放生态系统,并相信其被多个应用程序和服务普遍采用的能力有利于旨在将AI工具连接到其他应用程序和服务器的开发人员。因此,我们正在开源MCP Bundle规范、工具链以及Claude用于macOS和Windows的模式和关键函数,以实现其对MCP Bundles的支持。我们希望 mcpb 这种格式不仅使本地MCP服务器对Claude来说更便携,而且使其他AI桌面应用程序也更便携。
面向捆绑包开发人员
MCPB的核心是简单的zip文件,其中包含整个MCP服务器和 manifest.json因此,将本地MCP服务器转换为捆绑包很简单:您只需将所有必需的文件放在一个文件夹中,创建一个 manifest.json,然后创建存档。
为了使此过程更容易,此软件包提供了一个CLI,可帮助您创建 manifest.json 最后 .mcpb 文件。要安装它,请运行:
npm install -g @anthropic-ai/mcpb- 在包含本地MCP服务器的文件夹中,运行
mcpb init。此命令将指导您创建manifest.json. - 跑
mcpb pack创造mcpb文件。 - 现在,任何支持MCPB的应用程序都可以运行您的本地MCP服务器。例如,使用Claude for macOS和Windows打开文件以显示安装对话框。
您可以找到该产品的完整规格 manifest.json 及其所有必填和可选字段 MANIFEST.md。捆绑包的示例可以在 例子.
AI工具提示模板
Claude Code等人工智能工具在了解规范时特别擅长创建MCP包。当提示人工智能编码工具构建包时,简要解释你的包的目的是什么,然后在你的说明中添加以下上下文。
我想将其构建为MCP Bundle,缩写为“MCPB”。请按照以下步骤操作: 1. 仔细阅读说明书: - https://github.com/anthropics/mcpb/blob/main/README.md-MCPB架构概述、功能和集成 模式 - https://github.com/anthropics/mcpb/blob/main/MANIFEST.md-完整的捆绑清单结构和字段定义 - https://github.com/anthropics/mcpb/tree/main/examples-参考实现,包括“Hello World”示例 1. 创建适当的捆绑包结构: - 根据manifest.md规范生成有效的manifest.json - 使用带有适当工具定义的@modelcontextprotocol/sdk实现MCP服务器 - 包括适当的错误处理、安全措施和超时管理 1. 遵循最佳开发实践: - 通过stdio传输实现正确的MCP协议通信 - 具有清晰模式、验证和一致JSON响应的结构工具 - 利用此捆绑包将在本地运行的事实 - 添加适当的日志记录和调试功能 - 包括适当的文档和设置说明 1. 测试注意事项: - 验证所有工具调用是否返回结构正确的响应 - 验证清单加载是否正确,主机集成是否正常工作 生成可立即测试的完整、生产就绪的代码。专注于防御性编程,清除错误消息,并遵循确切的MCPB规范,以确保与生态系统的兼容性。
目录结构
最小捆绑包
A. manifest.json 是唯一需要的文件。
示例:Node.js捆绑包
bundle.mcpb (ZIP file)
├── manifest.json # Required: Bundle metadata and configuration
├── server/ # Server files
│ └── index.js # Main entry point
├── node_modules/ # Bundled dependencies
├── package.json # Optional: NPM package definition
├── icon.png # Optional: Bundle icon
└── assets/ # Optional: Additional assets示例:Python捆绑包
bundle.mcpb (ZIP file)
├── manifest.json # Required: Bundle metadata and configuration
├── server/ # Server files
│ ├── main.py # Main entry point
│ └── utils.py # Additional modules
├── lib/ # Bundled Python packages
├── requirements.txt # Optional: Python dependencies list
└── icon.png # Optional: Bundle icon示例:二进制捆绑包
bundle.mcpb (ZIP file)
├── manifest.json # Required: Bundle metadata and configuration
├── server/ # Server files
│ ├── my-server # Unix executable
│ ├── my-server.exe # Windows executable
└── icon.png # Optional: Bundle icon语言选择建议
我们建议在Node.js中实现MCP服务器 而不是Python,以减少安装摩擦。Node.js附带了适用于macOS和Windows的Claude,这意味着您的捆绑包将开箱即用,无需用户安装额外的Python运行时(或者您手动打包它们)。
捆绑依赖关系
UV运行时(v0.4+):
- 使用
server.type = "uv"在舱单中 - 包含
pyproject.toml有依赖关系(不需要捆绑包) - 宿主应用程序自动管理Python和依赖关系
- 无需用户安装Python即可跨平台工作
- 看
examples/hello-world-uv
Python捆绑包(传统):
- 使用
server.type = "python"在舱单中 - 将所有必需的包捆绑在一起
server/lib/目录 - 或者将完整的虚拟环境捆绑在
server/venv/ - 使用以下工具
pip-tools,poetry,或pipenv创建可复制的捆绑包 - 集
PYTHONPATH通过以下方式包含捆绑包mcp_config.env - 限制:无法可移植地捆绑已编译的依赖项(例如MCP Python SDK所需的pydantic)
Node.js捆绑包:
- 跑
npm install --production创造node_modules - 捆绑整个
node_modules包含您的捆绑包的目录 - 使用
npm ci或yarn install --frozen-lockfile用于可重复构建 - manifest.json中指定的服务器入口点
server.entry_point
二进制捆绑包:
- 静态链接是实现最大兼容性的首选
- 如果使用动态链接,则包括所有必需的共享库
- 在没有开发工具的清洁系统上进行测试
贡献
我们欢迎捐款!请查看我们的 贡献指南 了解详情。
开发设置
# Clone the repository
git clone https://github.com/anthropics/mcpb.git
cd mcpb
# Install dependencies
yarn
# Build the project
yarn build
# Run tests
yarn test发布过程
- 更新版本
package.json - 创建带有版本冲突的拉取请求
- 合并后,创建GitHub版本
- 包将自动发布到npm
许可证
该项目在Apache License 2.0下获得了新贡献的许可,现有代码在MIT下-请参阅 许可证 文件以获取详细信息。
