Claude 桌面扩展:Claude 桌面一键安装 MCP 服务器 \ Anthropic
来源: https://www.anthropic.com/engineering/desktop-extensions 抓取时间: 2026-07-21 16:25:33
- 文件扩展名更新
2025年9月11日
Claude 桌面扩展现在使用
.mcpb(MCP 包)文件扩展名,而不是.dxt。现有的.dxt扩展将继续工作,但我们建议开发者未来使用.mcpb进行新扩展。所有功能保持不变——这纯粹是命名约定更新。
当我们去年发布模型上下文协议(MCP)时,我们看到开发者构建了令人惊叹的本地服务器,让 Claude 可以访问从文件系统到数据库的所有内容。但我们不断听到相同的反馈:安装太复杂。用户需要开发工具,必须手动编辑配置文件,并且经常陷入依赖问题。
今天,我们推出了桌面扩展——一种新的打包格式,使安装 MCP 服务器就像点击按钮一样简单。
解决 MCP 安装问题
本地 MCP 服务器为 Claude 桌面用户解锁了强大的功能。它们可以与本地应用程序交互、访问私有数据,并与开发工具集成——所有这些都保持数据在用户的机器上。然而,当前的安装过程造成了重大障碍:
- 需要开发工具:用户需要安装 Node.js、Python 或其他运行时
- 手动配置:每个服务器都需要编辑 JSON 配置文件
- 依赖管理:用户必须解决包冲突和版本不匹配
- 没有发现机制:找到有用的 MCP 服务器需要搜索 GitHub
- 更新复杂:保持服务器最新意味着手动重新安装
这些摩擦点意味着,尽管 MCP 服务器功能强大,但对于非技术用户来说仍然基本上无法访问。
桌面扩展介绍
桌面扩展(.mcpb 文件)通过将整个 MCP 服务器——包括所有依赖项——打包成单个可安装包来解决这些问题。以下是用户的变化:
之前:
# 首先安装 Node.js
npm install -g @example/mcp-server
# 手动编辑 ~/.claude/claude_desktop_config.json
# 重启 Claude Desktop
# 希望它能工作
之后:
- 下载
.mcpb文件 - 双击用 Claude Desktop 打开
- 点击"安装"
就是这样。没有终端,没有配置文件,没有依赖冲突。
架构概述
桌面扩展是一个 ZIP 归档文件,包含本地 MCP 服务器以及 manifest.json,该文件描述了 Claude Desktop 和其他支持桌面扩展的应用程序需要知道的所有内容。
extension.mcpb (ZIP 归档)
├── manifest.json # 扩展元数据和配置
├── server/ # MCP 服务器实现
│ └── [服务器文件]
├── dependencies/ # 所有需要的包/库
└── icon.png # 可选:扩展图标
# 示例:Node.js 扩展
extension.mcpb
├── manifest.json # 必需:扩展元数据和配置
├── server/ # 服务器文件
│ └── index.js # 主入口点
├── node_modules/ # 打包的依赖项
├── package.json # 可选:NPM 包定义
└── icon.png # 可选:扩展图标
# 示例:Python 扩展
extension.mcpb (ZIP 文件)
├── manifest.json # 必需:扩展元数据和配置
├── server/ # 服务器文件
│ ├── main.py # 主入口点
│ └── utils.py # 额外模块
├── lib/ # 打包的 Python 包
├── requirements.txt # 可选:Python 依赖列表
└── icon.png # 可选:扩展图标
桌面扩展中唯一需要的文件是 manifest.json。Claude Desktop 处理所有复杂性:
- 内置运行时:我们随 Claude Desktop 一起提供 Node.js,消除了外部依赖
- 自动更新:新版本可用时扩展会自动更新
- 安全密钥:敏感配置(如 API 密钥)存储在操作系统密钥链中
清单包含人类可读的信息(如名称、描述或作者)、功能声明(工具、提示)、用户配置和运行时要求。大多数字段都是可选的,因此最小版本非常短,尽管实际上,我们期望所有三种支持的扩展类型(Node.js、Python 和经典二进制/可执行文件)都包含文件:
{
"mcpb_version": "0.1", // 此清单遵循的 MCPB 规范版本
"name": "my-extension", // 机器可读名称(用于 CLI、API)
"version": "1.0.0", // 扩展的语义版本
"description": "A simple MCP extension", // 扩展功能的简要描述
"author": { // 作者信息(必需)
"name": "Extension Author" // 作者姓名(必填字段)
},
"server": { // 服务器配置(必需)
"type": "node", // 服务器类型:"node"、"python" 或 "binary"
"entry_point": "server/index.js", // 主服务器文件的路径
"mcp_config": { // MCP 服务器配置
"command": "node", // 运行服务器的命令
"args": [ // 传递给命令的参数
"${__dirname}/server/index.js" // ${__dirname} 会被替换为扩展的目录
]
}
}
}
清单规范中 有许多便利选项,旨在使本地 MCP 服务器的安装和配置更容易。服务器配置对象可以定义为既能容纳使用模板文字的用户定义配置,也能容纳特定于平台的覆盖。扩展开发者可以详细定义他们想要从用户收集什么样的配置。
让我们看一个具体的例子,说明清单如何帮助配置。在下面的清单中,开发者声明用户需要提供 api_key。Claude 在用户提供该值之前不会启用扩展,自动将其保存在操作系统的秘密保险库中,并在启动服务器时透明地将 ${user_config.api_key} 替换为用户提供的值。同样,${__dirname} 将被替换为扩展解压目录的完整路径。
{
"mcpb_version": "0.1",
"name": "my-extension",
"version": "1.0.0",
"description": "A simple MCP extension",
"author": {
"name": "Extension Author"
},
"server": {
"type": "node",
"entry_point": "server/index.js",
"mcp_config": {
"command": "node",
"args": ["${__dirname}/server/index.js"],
"env": {
"API_KEY": "${user_config.api_key}"
}
}
},
"user_config": {
"api_key": {
"type": "string",
"title": "API Key",
"description": "Your API key for authentication",
"sensitive": true,
"required": true
}
}
}
带有大多数字段的完整 manifest.json 可能如下所示:
{
"mcpb_version": "0.1",
"name": "My MCP Extension",
"display_name": "My Awesome MCP Extension",
"version": "1.0.0",
"description": "A brief description of what this extension does",
"long_description": "A detailed description that can include multiple paragraphs explaining the extension's functionality, use cases, and features. It supports basic markdown.",
"author": {
"name": "Your Name",
"email": "yourname@example.com",
"url": "https://your-website.com"
},
"repository": {
"type": "git",
"url": "https://github.com/your-username/my-mcp-extension"
},
"homepage": "https://example.com/my-extension",
"documentation": "https://docs.example.com/my-extension",
"support": "https://github.com/your-username/my-extension/issues",
"icon": "icon.png",
"screenshots": [
"assets/screenshots/screenshot1.png",
"assets/screenshots/screenshot2.png"
],
"server": {
"type": "node",
"entry_point": "server/index.js",
"mcp_config": {
"command": "node",
"args": ["${__dirname}/server/index.js"],
"env": {
"ALLOWED_DIRECTORIES": "${user_config.allowed_directories}"
}
}
},
"tools": [
{
"name": "search_files",
"description": "Search for files in a directory"
}
],
"prompts": [
{
"name": "poetry",
"description": "Have the LLM write poetry",
"arguments": ["topic"],
"text": "Write a creative poem about the following topic: ${arguments.topic}"
}
],
"tools_generated": true,
"keywords": ["API", "automation", "productivity"],
"license": "MIT",
"compatibility": {
"claude_desktop": ">=1.0.0",
"platforms": ["darwin", "win32", "linux"],
"runtimes": {
"node": ">=16.0.0"
}
},
"user_config": {
"allowed_directories": {
"type": "directory",
"title": "Allowed Directories",
"description": "Directories the server can access",
"multiple": true,
"required": true,
"default": ["${HOME}/Desktop"]
},
"api_key": {
"type": "string",
"title": "API Key",
"description": "Your API key for authentication",
"sensitive": true,
"required": false
},
"max_file_size": {
"type": "number",
"title": "Maximum File Size (MB)",
"description": "Maximum file size to process",
"default": 10,
"min": 1,
"max": 100
}
}
}
要查看扩展和清单,请参考 MCPB 仓库中的示例。
manifest.json 中所有必需和可选字段的完整规范可以在我们的 开源工具链 中找到。
构建您的第一个扩展
让我们逐步介绍将现有 MCP 服务器打包为桌面扩展的过程。我们将使用一个简单的文件系统服务器作为示例。
步骤 1:创建清单
首先,为您的服务器初始化清单:
npx @anthropic-ai/mcpb init
这个交互式工具会询问您的服务器信息并生成完整的 manifest.json。如果您想快速生成最基本的 manifest.json,可以使用 --yes 参数运行命令。
步骤 2:处理用户配置
如果您的服务器需要用户输入(如 API 密钥或允许的目录),在清单中声明:
"user_config": {
"allowed_directories": {
"type": "directory",
"title": "Allowed Directories",
"description": "Directories the server can access",
"multiple": true,
"required": true,
"default": ["${HOME}/Documents"]
}
}
Claude Desktop 将会:
- 显示用户友好的配置 UI
- 在启用扩展之前验证输入
- 安全存储敏感值
- 根据开发者配置,将配置作为参数或环境变量传递给您的服务器
在下面的示例中,我们将用户配置作为环境变量传递,但它也可以是参数。
"server": {
"type": "node",
"entry_point": "server/index.js",
"mcp_config": {
"command": "node",
"args": ["${__dirname}/server/index.js"],
"env": {
"ALLOWED_DIRECTORIES": "${user_config.allowed_directories}"
}
}
}
步骤 3:打包扩展
将所有内容打包成 .mcpb 文件:
npx @anthropic-ai/mcpb pack
此命令:
- 验证您的清单
- 生成
.mcpb归档
步骤 4:本地测试
将您的 .mcpb 文件拖入 Claude Desktop 的设置窗口。您会看到:
- 关于您的扩展的人类可读信息
- 所需的权限和配置
- 一个简单的"安装"按钮
高级功能
跨平台支持
扩展可以适应不同的操作系统:
"server": {
"type": "node",
"entry_point": "server/index.js",
"mcp_config": {
"command": "node",
"args": ["${__dirname}/server/index.js"],
"platforms": {
"win32": {
"command": "node.exe",
"env": {
"TEMP_DIR": "${TEMP}"
}
},
"darwin": {
"env": {
"TEMP_DIR": "${TMPDIR}"
}
}
}
}
}
动态配置
使用模板文字获取运行时值:
${__dirname}:扩展的安装目录${user_config.key}:用户提供的配置${HOME}, ${TEMP}:系统环境变量
功能声明
帮助用户提前了解功能:
"tools": [
{
"name": "read_file",
"description": "Read contents of a file"
}
],
"prompts": [
{
"name": "code_review",
"description": "Review code for best practices",
"arguments": ["file_path"]
}
]
扩展目录
我们正在推出一个精选的扩展目录,内置于 Claude Desktop 中。用户可以浏览、搜索和一键安装——无需搜索 GitHub 或审查代码。
虽然我们期望桌面扩展规范以及 Claude for macOS 和 Windows 中的实现在未来会不断发展,但我们期待看到扩展可以通过多种方式创造性地扩展 Claude 的功能。
提交您的扩展:
- 确保它遵循提交表单中的指南
- 在 Windows 和 macOS 上测试
- 提交您的扩展
- 我们的团队审查质量和安全性
构建开放生态系统
我们致力于围绕 MCP 服务器的开放生态系统,并相信其被多个应用程序和服务普遍采用的能力使社区受益。为了兑现这一承诺,我们正在开源桌面扩展规范、工具链,以及 Claude for macOS 和 Windows 用于实现其自己的桌面扩展支持的模式和关键功能。我们希望 MCPB 格式不仅使本地 MCP 服务器对于 Claude 更加可移植,也适用于其他 AI 桌面应用程序。
我们正在开源:
- 完整的 MCPB 规范
- 打包和验证工具
- 参考实现代码
- TypeScript 类型和模式
这意味着:
- 对于 MCP 服务器开发者:打包一次,在支持 MCPB 的任何地方运行
- 对于应用开发者:无需从零开始即可添加扩展支持
- 对于用户:所有支持 MCP 的应用程序都有一致的体验
该规范和工具链特意版本化为 0.1,因为我们期待与更大的社区合作,发展和改变这种格式。我们期待收到您的来信。
安全性和企业考虑事项
我们理解扩展引入了新的安全考虑因素,特别是对于企业。我们在桌面扩展的预览版本中内置了几个保障措施:
对于用户
- 敏感数据保留在操作系统密钥链中
- 自动更新
- 能够审计已安装的扩展
对于企业
- 组策略(Windows)和 MDM(macOS)支持
- 预安装批准扩展的能力
- 阻止特定扩展或发布者的黑名单
- 完全禁用扩展目录
- 部署私有扩展目录
有关如何在组织内管理扩展的更多信息,请参阅我们的 文档。
开始使用
准备好构建自己的扩展了吗?以下是开始方法:
对于 MCP 服务器开发者:查看我们的 开发者文档——或者直接在本地 MCP 服务器目录中运行以下命令开始:
npm install -g @anthropic-ai/mcpb
mcpb init
mcpb pack
对于 Claude Desktop 用户:更新到最新版本,并在设置中查找扩展部分
对于企业:查看我们的企业文档以了解部署选项
使用 Claude Code 构建
在 Anthropic 内部,我们发现 Claude 非常擅长在最少干预下构建扩展。如果您也想使用 Claude Code,我们建议您简要解释您希望扩展做什么,然后将以下上下文添加到提示中:
我希望将其构建为桌面扩展,缩写为"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 规范,以确保与生态系统的兼容性。
结论
桌面扩展代表了用户与本地 AI 工具交互方式的根本性转变。通过消除安装摩擦,我们正在使强大的 MCP 服务器对每个人都可访问——而不仅仅是开发者。
在内部,我们正在使用桌面扩展来共享高度实验性的 MCP 服务器——有些有趣,有些有用。一个团队进行了实验,看看我们的模型在直接连接到 GameBoy 时能走多远,类似于我们的 "Claude 玩 Pokémon" 研究。我们使用桌面扩展打包了一个单独的扩展,它打开了流行的 PyBoy GameBoy 模拟器并让 Claude 控制。我们相信存在无数的机会,可以将模型的功能连接到用户本地机器上已经拥有的工具、数据和应用程序。

我们迫不及待地想看到您构建的内容。带来我们数千个 MCP 服务器的同样创造力,现在只需点击一下即可到达数百万用户。准备好分享您的 MCP 服务器了吗?提交您的扩展进行审查。