MCP捆绑包工具

MCP捆绑包(.mcpb)是包含本地MCP服务器和描述其功能的清单文件的压缩存档,旨在简化本地MCP服务器的分发和安装。

  • by modelcontextprotocol
  • TypeScript
  • 本地部署
  • 2157 星标
  • 更新于
在 GitHub 查看 anthropics/dxt

使用说明

MCP捆绑包(MCPB)

⚠️ 重要提示:此项目将从DXT(桌面扩展)重命名为MCPB(MCP捆绑包)

如果您正在寻找DXT工具,它们已被重命名为MCPB。请更新您的依赖关系和工具:

  • dxt CLI现在 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
  1. 在包含本地MCP服务器的文件夹中,运行 mcpb init。此命令将指导您创建 manifest.json.
  2. 跑 mcpb pack 创造 mcpb 文件。
  3. 现在,任何支持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”示例
  2. 创建适当的捆绑包结构:
    • 根据manifest.md规范生成有效的manifest.json
    • 使用带有适当工具定义的@modelcontextprotocol/sdk实现MCP服务器
    • 包括适当的错误处理、安全措施和超时管理
  3. 遵循最佳开发实践:
    • 通过stdio传输实现正确的MCP协议通信
    • 具有清晰模式、验证和一致JSON响应的结构工具
    • 利用此捆绑包将在本地运行的事实
    • 添加适当的日志记录和调试功能
    • 包括适当的文档和设置说明
  4. 测试注意事项:
    • 验证所有工具调用是否返回结构正确的响应
    • 验证清单加载是否正确,主机集成是否正常工作

生成可立即测试的完整、生产就绪的代码。专注于防御性编程,清除错误消息,并遵循确切的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

发布过程

  1. 更新版本 package.json
  2. 创建带有版本冲突的拉取请求
  3. 合并后,创建GitHub版本
  4. 包将自动发布到npm

许可证

该项目在Apache License 2.0下获得了新贡献的许可,现有代码在MIT下-请参阅 许可证 文件以获取详细信息。