modelcontextprotocol/mcpb

GitHub: modelcontextprotocol/mcpb

MCPB 是一种标准化的打包格式与工具链,让本地 MCP 服务器能够像浏览器扩展一样在桌面应用中实现一键安装与分发。

Stars: 2057 | Forks: 203

# MCP Bundles (MCPB) MCP Bundles (`.mcpb`) 是一个 zip 归档文件,包含本地 MCP server 和一个描述该 server 及其功能的 `manifest.json`。该格式在理念上类似于 Chrome 扩展 (`.crx`) 或 VS Code 扩展 (`.vsix`)),使最终用户能够一键安装本地 MCP server。 本仓库提供了三个组件:[MANIFEST.md](MANIFEST.md) 中的 bundle 规范、用于创建 bundle 的 CLI 工具(参见 [CLI.md](CLI.md)),以及 Claude for macOS 和 Windows 用于加载和验证 MCPB bundle 的代码([src/index.ts](src/index.ts))。 - 对于本地 MCP server 的开发者,我们的目标是让此类 server 的分发和安装变得便捷 - 对于支持本地 MCP server 的应用开发者,我们的目标是让其对 MCPB bundle 的支持变得更加容易 Claude for macOS 和 Windows 使用此仓库中的代码来实现本地 MCP server 的一键安装,包括许多对最终用户友好的功能——例如自动更新、MCP server 及其所需变量和参数的简便配置,以及一个精选的目录。我们致力于围绕 MCP server 构建开放的生态系统,并相信其能够被多个应用程序和服务广泛采用,这将为旨在将 AI 工具连接到其他应用和服务的开发者带来益处。因此,我们将 MCP Bundle 规范、工具链,以及 Claude for macOS 和 Windows 用于实现其自身 MCP Bundles 支持的 schema 和核心功能进行了开源。我们希望 `mcpb` 格式不仅能让本地 MCP server 在 Claude 中更具可移植性,也能在其他 AI 桌面应用中实现同样目标。 # Bundle 开发者指南 本质上,MCPB 是简单的 zip 文件,包含您的整个 MCP server 和一个 `manifest.json`。因此,将本地 MCP server 转换为 bundle 非常简单:您只需将所有必需的文件放在一个文件夹中,创建一个 `manifest.json`,然后创建一个归档文件。 为了简化此过程,本包提供了一个 CLI,可帮助您创建 `manifest.json` 和最终的 `.mcpb` 文件。要安装它,请运行: ``` npm install -g @anthropic-ai/mcpb ``` 1. 在包含您的本地 MCP server 的文件夹中,运行 `mcpb init`。此命令将引导您完成 `manifest.json` 的创建。 2. 运行 `mcpb pack` 以创建 `mcpb` 文件。 3. 现在,任何实现了 MCPB 支持的应用都可以运行您的本地 MCP server。例如,在 Claude for macOS 和 Windows 中打开该文件,将会弹出一个安装对话框。 您可以在 [MANIFEST.md](MANIFEST.md) 中找到 `manifest.json` 的完整规范及其所有必填和可选字段。Bundle 的示例可在 [examples](./examples/) 中找到。 ## AI 工具的 Prompt 模板 像 Claude Code 这样的 AI 工具在了解了规范后,特别擅长创建 MCP bundle。在提示 AI 编码工具构建 bundle 时,请简要说明您的 bundle 想要实现的功能,然后将以下上下文添加到您的指令中。 ## 目录结构 ### 最小 Bundle `manifest.json` 是唯一必需的文件。 ### 示例:Node.js Bundle ``` 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 ``` 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 ``` ### 示例:Binary Bundle ``` 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 而不是 Python 来实现 MCP server**,以减少安装阻力。Node.js 随 Claude for macOS 和 Windows 一起提供,这意味着您的 bundle 对用户来说是开箱即用的,而无需他们安装额外的 Python runtime(或由您手动打包)。 ### 打包依赖 **UV Runtime (v0.4+):** - 在 manifest 中使用 `server.type = "uv"` - 包含带有依赖项的 `pyproject.toml`(无需打包依赖包) - 宿主应用程序自动管理 Python 和依赖项 - 无需用户安装 Python 即可跨平台工作 - 参见 `examples/hello-world-uv` **Python Bundles (传统方式):** - 在 manifest 中使用 `server.type = "python"` - 将所有必需的包打包到 `server/lib/` 目录中 - 或者在 `server/venv/` 中打包完整的虚拟环境 - 使用 `pip-tools`、`poetry` 或 `pipenv` 等工具创建可重现的 bundle - 通过 `mcp_config.env` 设置 `PYTHONPATH` 以包含打包的包 - **限制**:无法以可移植的方式打包编译型依赖项(例如,MCP Python SDK 所需的 pydantic) **Node.js Bundles:** - 运行 `npm install --production` 来创建 `node_modules` - 将整个 `node_modules` 目录与您的 bundle 一起打包 - 使用 `npm ci` 或 `yarn install --frozen-lockfile` 进行可重现的构建 - Server 的入口点在 manifest.json 的 `server.entry_point` 中指定 **Binary Bundles:** - 首选静态链接以获得最大的兼容性 - 如果使用动态链接,请包含所有必需的共享库 - 在没有开发工具的干净系统上进行测试 ## 开发环境设置 ``` # 克隆 repository git clone https://github.com/anthropics/mcpb.git cd mcpb # 安装 dependencies yarn # 构建 project yarn build # 运行 tests yarn test ``` ## 发布流程 1. 更新 `package.json` 中的版本号 2. 创建一个带有版本号升级的 pull request 3. 合并后,创建一个 GitHub release 4. 包将自动发布到 npm # 许可证 本项目的新贡献根据 Apache License 2.0 授权,现有代码基于 MIT 授权 - 详情请参见 [LICENSE](LICENSE) 文件。
标签:IPv6支持, MCP, MITM代理, SOC Prime, 人工智能, 开发工具, 打包工具, 暗色界面, 桌面应用, 用户模式Hook绕过, 自动化攻击