使用说明
起草MCP服务器
让克劳德(和其他人工智能助手)与 草稿 Mac上的应用程序。创建草稿、搜索和阅读笔记、添加或预置文本以及运行草稿操作——所有这些都是通过聊天完成的。
适用于: 克劳德桌面、克劳德代码、Codex CLI、游标、Windsurf、VS代码。 需要: Drafts应用程序 macOS。没有别的——不需要编程。
安装(Claude Desktop-最简单,2步)
这是推荐的路径。大约需要2分钟,不需要终端。
1.下载安装程序
去 最新发布页面 并下载以结尾的文件 .mcpb (它靠近顶部,被称为 drafts-mcp-<version>.mcpb).
2.双击下载的文件
Claude Desktop会自动打开并询问: “是否安装草稿扩展?”。单击 安装,然后启用它。
还没有克劳德桌面?免费获取 claude.com/download.
试试看
打开克劳德桌面,键入:
用牛奶、鸡蛋和面包创建一个名为“购物清单”的草稿。
还有一些事情要尝试:
- “显示收件箱中的所有草稿。”
- “在我的草稿中搜索任何提及‘发票’的内容。”
- “在草稿后加上一行,注明今天的日期。”
注: 为了 写 动作(创建/附加/预置/打开/运行动作)草稿应用程序必须 跑步 --他们通过Drafts的URL方案。即使草稿已关闭,读取和搜索也可以直接从本地数据库进行。
安装(其他AI工具)
已经在使用Claude Code、Codex、Cursor、Windsurf或VS Code了吗?选择下面的工具。所有路径都需要 Node.js 18+ (底部的独立二进制选项除外)。
Claude Code
相同 .mcpb 文件如上面的Claude Desktop——Claude Code也接受它。或者通过CLI安装:
claude mcp add drafts -- npx -y @mskalski/drafts-mcp
Codex CLI
codex mcp add drafts -- npx -y @mskalski/drafts-mcp
Cursor / Windsurf / VS Code (Continue, Cline, Roo, ...)
打开客户的MCP设置并添加:
{
"mcpServers": {
"drafts": {
"command": "npx",
"args": ["-y", "@mskalski/drafts-mcp"]
}
}
}
No Node.js installed? Use the standalone binary
-
从下载正确的文件 最新版本:
- Mac(苹果硅,M1/M2/M3/M4):
drafts-mcp-darwin-arm64 - Mac(英特尔):
drafts-mcp-darwin-x64
- Mac(苹果硅,M1/M2/M3/M4):
-
使其可运行并绕过Gatekeeper(二进制文件未签名):
chmod +x ~/Downloads/drafts-mcp-darwin-arm64 xattr -d com.apple.quarantine ~/Downloads/drafts-mcp-darwin-arm64 -
将AI工具指向二进制文件的完整路径。Codex示例:
codex mcp add drafts -- /Users/you/Downloads/drafts-mcp-darwin-arm64
Run from source
git clone https://github.com/Automaat/drafts-mcp.git
cd drafts-mcp
npm install
npm run build
然后将您的客户指向构建的入口点:
{
"mcpServers": {
"drafts": {
"command": "node",
"args": ["/absolute/path/to/drafts-mcp/build/index.js"]
}
}
}
有什么不起作用的吗?
- 创建/附加/打开草稿什么都不做? 确保 草稿应用程序正在运行 --写入操作通过Drafts的URL方案进行。即使草稿关闭,阅读和搜索也能工作。
- 第一封信似乎挂了? macOS可能会显示一个提示,要求让您的AI工具打开草稿——批准并重试。
- 读取失败? 确认草稿已安装,您可以打开
~/Library/Group Containers/GTFQ98J4YG.com.agiletortoise.Drafts/. - 还在卡住吗?看 故障排除 在......下面
工具
| 工具 | 它做什么 |
|---|---|
create_draft |
创建一个包含内容、标签和可选操作的新草稿。返回新草稿的UUID。 |
get_draft |
通过UUID获取草稿的完整内容(读取本地数据库)。 |
get_all_drafts |
列出所有带有元数据的草稿,按文件夹或标志过滤。 |
search_drafts_db |
在本地数据库中全文搜索您的草稿。 |
append_to_draft |
将文本添加到现有草稿中。 |
prepend_to_draft |
将文本放在现有草案之前。 |
open_draft |
在草稿应用程序中按UUID或标题打开草稿。 |
run_action |
对某些文本运行命名的“草稿”操作。 |
search_drafts |
使用查询/标记/文件夹过滤器打开草稿搜索UI。 |
资源
draft://uuid/{uuid}--检索特定草稿的内容。
运作原理
┌─────────────┐ stdio ┌──────────────────┐ reads ┌────────────────────┐
│ AI client │ ◄────────► │ MCP server │ ─────────► │ DraftStore.sqlite │
│ (Claude/ │ │ (Node, stdio) │ │ (local database) │
│ Codex/...) │ └──────────────────┘ └────────────────────┘
└─────────────┘ │ writes via x-callback-url
▼
┌──────────────────┐
│ Drafts app │
└──────────────────┘
- 阅读 (
get_*,search_drafts_db)正在查询本地Drafts SQLite数据库(node:sqlite,或bun:sqlite在独立二进制文件中)通过持久只读连接进行传输——即使在Drafts关闭时也能正常工作。退回系统sqlite3旧节点上的CLI。 - 写入 (
create,append,prepend,open,run_action,search_drafts)手adrafts://x-callback-url到macOSopen命令 发射后不管 --没有x-success/x-error/x-cancel回调,没有本地主机服务器,因此草稿不会打开任何内容。create_draft从本地数据库中读取新草案的UUID。每次写入都会以固定的延迟重试3次。
CLI 参考
drafts-mcp [stdio] Run the MCP server over stdio (default)
drafts-mcp --help Show help
drafts-mcp --version Print version
安全
所有内容都在Mac上本地运行:
- 阅读 直接查询本地Drafts SQLite数据库,不涉及应用程序、网络或云。
- 写入 手a
drafts://x-callback-url到macOSopen指挥即发即弃。没有回调服务器,也没有开放的网络端口;什么也不听回应。 - 没有身份验证令牌,没有遥测,没有远程端点——你的草稿永远不会离开你的机器。
需求
- macOS --服务器向
open用于URL方案,并读取macOS Drafts组容器。 - 草稿应用程序 已安装(并正在运行写入操作)。
- Node.js 18+ --除非你使用独立的二进制文件。节点22.5+(mise引脚24)在进程中读取数据库;节点18/20回落到
sqlite3CLI,必须打开PATH.
开发
mise install # tools (node, bun)
mise run install # npm install
mise run build # tsc
mise run test # jest
mise run check # lint + format + test + version check
mise run mcpb # build the .mcpb bundle
mise run binary # build standalone macOS binaries via Bun
回购布局:
src/--TypeScript MCP服务器(ESM,Node16)。mcpb/manifest.json—.mcpb捆绑清单。scripts/build-mcpb.mjs--打包.mcpb.scripts/build-binary.mjs--Bun--compile每个目标二进制文件。scripts/bump-version.mjs--发布版本的唯一真相来源。
释放
跑吧 发布 工作流程(.github/workflows/release.yml)via 行动→ 发布→ 运行工作流它对每个版本的源代码进行碰撞、标记和构建 .mcpb +二进制文件+npm tarball,发布到npm(OIDC可信发布),并创建GitHub版本。
添加一个新工具
工具就在里面 三 手工保存的地方 src/index.ts 加上它的实现——让它们保持同步:
- 定义a
zod参数的模式。 - 添加工具条目(名称、描述、手写JSON模式
inputSchema)到ListToolsRequestSchemahandler——保持它与zod形状相同。 - 添加一个
case到CallToolRequestSchemaswitch,它使用zod模式进行解析并调用实现。 - 实施操作
DraftsDatabase(阅读)或DraftsClient(写入)--永远不要内联SQLite/URL逻辑index.ts. - 在下面添加规范
src/__tests__/(读取工具针对一次性SQLite数据库运行)。 - 向中添加一行 工具 上表。
故障排除
“查询草稿数据库失败”
- 确保已安装草稿应用程序。
- 检查数据库路径:
~/Library/Group Containers/GTFQ98J4YG.com.agiletortoise.Drafts/DraftStore.sqlite. - 验证您是否具有组容器的读取权限。
“请求超时”(写入操作)
- 确保Drafts应用程序 跑步.
- 确认草稿可以接收URL方案。
macOS“无法打开,因为无法验证开发人员”(二进制)
xattr -d com.apple.quarantine /path/to/drafts-mcp-darwin-arm64,或单击鼠标右键→ 第一次打开。
客户端中的“连接失败”
- 重启AI客户端。
- 仔细检查MCP配置中的命令/路径。
许可证
麻省理工学院
