Drafts AI 交互服务

通过AI助手(如Claude)与Drafts应用进行交互,实现创建、搜索、编辑笔记和执行Drafts动作的功能。

  • by Automaat
  • TypeScript
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 Automaat/drafts-mcp

使用说明

起草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
  1. 从下载正确的文件 最新版本:

    • Mac(苹果硅,M1/M2/M3/M4): drafts-mcp-darwin-arm64
    • Mac(英特尔): drafts-mcp-darwin-x64
  2. 使其可运行并绕过Gatekeeper(二进制文件未签名):

    chmod +x ~/Downloads/drafts-mcp-darwin-arm64
    xattr -d com.apple.quarantine ~/Downloads/drafts-mcp-darwin-arm64
    
  3. 将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"]
    }
  }
}

有什么不起作用的吗?

  1. 创建/附加/打开草稿什么都不做? 确保 草稿应用程序正在运行 --写入操作通过Drafts的URL方案进行。即使草稿关闭,阅读和搜索也能工作。
  2. 第一封信似乎挂了? macOS可能会显示一个提示,要求让您的AI工具打开草稿——批准并重试。
  3. 读取失败? 确认草稿已安装,您可以打开 ~/Library/Group Containers/GTFQ98J4YG.com.agiletortoise.Drafts/.
  4. 还在卡住吗?看 故障排除 在......下面

工具

工具 它做什么
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)手a drafts://x-callback-url 到macOS open 命令 发射后不管 --没有 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 到macOS open 指挥即发即弃。没有回调服务器,也没有开放的网络端口;什么也不听回应。
  • 没有身份验证令牌,没有遥测,没有远程端点——你的草稿永远不会离开你的机器。

需求

  • macOS --服务器向 open 用于URL方案,并读取macOS Drafts组容器。
  • 草稿应用程序 已安装(并正在运行写入操作)。
  • Node.js 18+ --除非你使用独立的二进制文件。节点22.5+(mise引脚24)在进程中读取数据库;节点18/20回落到 sqlite3 CLI,必须打开 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 加上它的实现——让它们保持同步:

  1. 定义a zod 参数的模式。
  2. 添加工具条目(名称、描述、手写JSON模式 inputSchema)到 ListToolsRequestSchema handler——保持它与zod形状相同。
  3. 添加一个 case 到 CallToolRequestSchema switch,它使用zod模式进行解析并调用实现。
  4. 实施操作 DraftsDatabase (阅读)或 DraftsClient (写入)--永远不要内联SQLite/URL逻辑 index.ts.
  5. 在下面添加规范 src/__tests__/ (读取工具针对一次性SQLite数据库运行)。
  6. 向中添加一行 工具 上表。

故障排除

“查询草稿数据库失败”

  • 确保已安装草稿应用程序。
  • 检查数据库路径: ~/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配置中的命令/路径。

许可证

麻省理工学院