桌面扩展 (DXT)
桌面扩展( E).dxt包含一个本地 MCP 服务器和一个 manifest.json 描述服务器及其能力。 格式在精神上与Chrome扩展(.crx)或VS代码扩展(.vsix),使终端用户能够用一击就安装本地的MCP服务器.
该储存库提供三个组成部分: 扩展规格 MANIFEST.md (英语),用于创建扩展的 CLI 工具(见 CLI.m.d (中文(简体) )),以及克洛德用于macOS和Windows的代码来加载和验证DXT扩展(英语:标准/指数.ts) (中文(简体) ).
- 对于本地MCP服务器的开发者,我们的目标是方便上述服务器的分发和安装
- 对于支持本地 MCP 服务器的应用软件开发者,我们的目标是方便添加对 DXT 扩展的支持
Claude for macOS和Windows使用这个寄存器中的代码来实现对本地MCP服务器的单击安装,包括一些端端用户友好的功能——如自动更新,MCP服务器的简单配置以及它们所需要的变量和参数,以及一个被整理的目录. 我们致力于MCP服务器周围的开放生态系统,并相信其被多应用程序和服务普遍采用的能力使开发者受益,旨在将AI工具与其他应用程序和服务连接起来. 因此,我们正在开放桌面扩展规格、工具链、以及克劳德用于macOS和Windows的策略和关键功能,以落实其对桌面扩展的支持。 我们希望 dxt 不仅让本地的MCP服务器更适合克劳德.
用于扩展开发者
在核心,DXT是简单的zip文件,包含您所有的MCP服务器和一个 manifest.json因此,将本地的 MCP 服务器变成扩展是直截了当的: 您只需要将所有所需的文件放入文件夹, 创建 manifest.json,然后创建一个归档.
为了方便这一过程,这个软件包提供了一个CLI, 帮助您创建两个 manifest.json 和最后决定 .dxt 文档。 要安装, 请运行 :
npm install -g @anthropic-ai/dxt
- 在包含您本地 MCP 服务器的文件夹中运行
dxt init。此命令将引导您创建manifest.json。 。 。 . - 运行
dxt pack创建dxt文档. - 现在,任何用于DXT的应用程序执行支持都可以运行您本地的MCP服务器. 例如,用克洛德打开文件让macOS和Windows显示安装对话框.
您可以找到全部的光谱 manifest.json 及其所有强制性和任择性领域 MANIFEST.md (英语)。扩展示例可见于 实例。 。 。 .
AI 工具的提示模板
Claude Code等AI工具在得知光谱后特别擅长创建桌面扩展. 当提示一个 AI 编码工具来构建扩展时, 请简要解释您的扩展要做什么 - 然后在您的指令中加入以下上下文 .
我想把这个建为桌面扩展,缩写为"DXT". 请遵循这些步骤:
- 详细阅读规格:
- https://github.com/ 人类学/dxt/blob/main/README.md - DXT结构概述、能力和整合 模式
- https://github.com/ 人类学/dxt/blob/main/MNIFEST.md - 完整的扩展显示结构和实地定义
- https://github.com/ 人类学/dxt/tree/main/examples. 中国植物物种信息数据库 - 参考执行,包括“你好世界”实例
- 创建合适的扩展结构 :
- 生成一个有效的列表
- 使用 @ modelcontextprotocol/ sdk 安装 MCP 服务器, 并有适当的工具定义
- 包括适当的错误处理、安全措施和超时管理
- 遵循最佳发展做法:
- 通过 stdio 运输执行适当的 MCP 协议通信
- 具有明确计划、验证和一致的JSON反应的结构工具
- 利用这个扩展将在当地运行这一事实
- 添加适当的记录和调试能力
- 包含适当的文档和设置指令
- 测试考虑:
- 验证所有工具调用返回结构合理的响应
- 正确验证显示的负载和主机集成工程
生成完整的,生产准备的代码,可以立即测试. 注重防御编程,明确出错信息,并遵循精确的DXT规格,以确保与生态系统相容.
目录结构
最小扩展
A 类 manifest.json 是唯一需要的文件.
示例:节点.js扩展
extension.dxt (ZIP file)
├── manifest.json # Required: Extension metadata and configuration
├── server/ # Server files
│ └── index.js # Main entry point
├── node_modules/ # Bundled dependencies
├── package.json # Optional: NPM package definition
├── icon.png # Optional: Extension icon
└── assets/ # Optional: Additional assets
示例: Python 扩展
extension.dxt (ZIP file)
├── manifest.json # Required: Extension 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: Extension icon
示例: 二进制扩展
extension.dxt (ZIP file)
├── manifest.json # Required: Extension metadata and configuration
├── server/ # Server files
│ ├── my-server # Unix executable
│ ├── my-server.exe # Windows executable
└── icon.png # Optional: Extension icon
附属物
Python 扩展 :
- 装入所有需要的软件包
server/lib/目录 - OR 捆绑完整的虚拟环境
server/venv/ - 使用工具,如
pip-tools, (中文(简体) ),poetry,或pipenv以创建可复制的捆绑 - 设定
PYTHONPATH以通过mcp_config.env
节点.js 扩展:
- 运行
npm install --production创建node_modules - 包起来
node_modules带有扩展名的目录 - 使用
npm ci或者说yarn install --frozen-lockfile可复制建筑 - 在 Express.json 中指定的服务器入口
server.entry_point
二进制扩展名 :
- 为最大兼容性选择的静态链接
- 如果使用动态链接, 包含所有需要共享的库
- 没有发展工具的清洁系统测试