← 返回目录
O

OmniFocus MCP Server

社区
让 AI 助手通过自然语言管理你的 OmniFocus 任务与项目
GitHub 源仓库 ↗
★ 241 Stars 分类 · 其他 非常热门
66FMRS · C

这是一个成熟度较高的第三方 OmniFocus MCP 服务器,工具覆盖面广,含 12 个工具和多种资源,支持批量操作、透视与标签管理,以及把自然语言重复规则编译成 ICS 规则。共享守护进程设计解决了多客户端并发调用 AppleEvent 超时的问题,并带有回退机制。主要限制是仅适用于 macOS 并需要 OmniFocus 与自动化权限,且由第三方维护。使用前应了解删除操作与重复任务历史行的风险。

可靠性
11/20
安全与权限
12/20
维护活跃度
13/20
文档质量
16/20
安装易用性
14/20
查看 FMRS 评分方法 →

OmniFocus MCP Server 是一个 Model Context Protocol 服务器,用于把 OmniFocus 数据库连接到 Claude 及其他兼容 MCP 的 AI 助手。它是第三方开源项目(MIT 许可),并非 Omni Group 官方产品。服务器通过 osascript、JXA 以及 Omni Automation 与 OmniFocus 通信,基于官方 MCP TypeScript SDK 构建,并通过 stdio 与客户端通信。它提供 12 个工具,可以查询、创建、编辑和删除任务与项目,支持批量操作、透视(perspective)查看、标签管理,以及用自然语言描述重复规则(服务器会编译成 ICS 重复规则)。还提供资源(如 omnifocus://inbox、omnifocus://today、omnifocus://flagged、omnifocus://stats)供客户端作为上下文附加。服务器启动时使用共享后台守护进程(Unix 域套接字,位于 0700 权限目录),以统一限制并发 osascript 调用数量。要求 macOS 上安装 OmniFocus 以及 Node.js 20 或更高版本。

工具能力

query_omnifocus
使用精确筛选条件查询任务、项目或文件夹,比导出整个数据库更快更轻量。
dump_database
获取数据库的完整状态,适合全面分析。
add_omnifocus_task
创建一个新任务,可指定项目、父任务、备注、日期、标签、预估时间和重复规则。
add_project
创建一个新项目,可指定文件夹、是否顺序执行、日期、标签、预估时间和重复规则。
edit_item
编辑已有任务或项目,也是移动条目的方式(可移动到项目或收件箱)。
remove_item
删除一个任务或项目。
batch_add_items
在一次操作中创建多个任务和项目,支持临时 ID 引用实现层级嵌套。
batch_remove_items
在一次操作中删除多个任务或项目。
list_perspectives
列出可用的透视,包括内置透视和自定义透视。
get_perspective_view
获取指定透视中可见的条目。
list_tags
列出所有标签及其层级、启用状态和任务数量。
create_tag
创建一个标签,可选择嵌套在已有父标签下。

安装接入

  1. 确认使用 macOS 并已安装 OmniFocus,同时安装 Node.js 20 或更高版本。2. 在 Claude Desktop 的 ~/Library/Application Support/Claude/claude_desktop_config.json 中加入 mcpServers 配置:command 为 npx,args 为 ["-y", "omnifocus-mcp"]。3. 重启 Claude Desktop。使用 Claude Code 时运行:claude mcp add omnifocus -- npx -y omnifocus-mcp。其他 MCP 客户端同样通过 stdio 启动 npx -y omnifocus-mcp。4. 服务器首次访问 OmniFocus 时,macOS 会请求自动化权限,允许一次即可。
claude_desktop_config.json
{
  "mcpServers": {
    "omnifocus": {
      "command": "npx",
      "args": ["-y", "omnifocus-mcp"]
    }
  }
}

选型与风险

适合谁

  • 使用 macOS 和 OmniFocus、希望用自然语言操作任务数据库的用户
  • 需要让 AI 助手批量整理和重排任务的 OmniFocus 用户
  • 愿意授予 macOS 自动化权限、并能排查 AppleEvent 超时问题的进阶用户

不适合谁

  • Windows 或 Linux 用户(服务器依赖 macOS 上的 OmniFocus)
  • 希望在无 macOS 自动化权限的沙箱环境中运行的用户
  • 期待 Omni Group 官方支持的用户(本项目为第三方开源项目)

所需权限

  • 需要 macOS 自动化(AppleEvents)权限来控制 OmniFocus
  • 需要通过 osascript 读写本机 OmniFocus 数据库
  • 共享守护进程在 ~/.omnifocus-mcp/ 下的 0700 权限 Unix 域套接字上监听,访问由文件系统权限控制,不使用网络端口或令牌

风险与副作用

  • 授予自动化权限后,服务器可以读取和修改本机 OmniFocus 数据库,包括删除任务和项目;删除操作可能需要谨慎确认。
  • 对重复任务的已完成历史行(过去发生实例)执行编辑或删除会级联影响当前重复链,默认会被拒绝,除非显式允许。
  • 共享守护进程崩溃或被手动终止时,客户端连接可能受影响;新版本会重连并重放初始化握手。
  • 升级后可能短暂同时存在新旧两个守护进程,已连接旧守护进程的客户端会在工具结果中收到升级提示。
  • 并发 osascript 调用过多可能导致 AppleEvent 超时。

常见排障

  1. 怀疑守护进程有问题时,设置环境变量 OMNIFOCUS_MCP_NO_DAEMON=1,跳过守护进程并为每个客户端运行独立服务器。
  2. 仍遇到 AppleEvent 超时,可调低 OMNIFOCUS_MCP_MAX_CONCURRENT_OSASCRIPT(默认 4)。
  3. 需要隔离实例时,用 OMNIFOCUS_MCP_SOCKET 覆盖套接字路径。
  4. 连接空闲过久守护进程会自行退出,可通过 OMNIFOCUS_MCP_IDLE_TIMEOUT_MINUTES(默认 30,0 表示禁用)调整。
  5. 升级后若出现两个守护进程,等待旧守护进程在最后一个客户端断开后退出即可。
  6. 若守护进程无法启动(特殊沙箱、只读主目录),服务器会回退为在进程内运行独立服务器。
  7. 首次使用若未弹出授权提示,检查 macOS 的自动化权限设置,必要时撤销后重新授予。

使用场景

把课程大纲 PDF 转成包含任务、标签、延迟日期和截止日期的完整项目
把会议记录转成行动项清单并写入指定项目
以对话方式审查和重组标签、项目与文件夹
查询标记任务、本周到期任务或某项目中的下一步行动
批量创建或删除数十个条目
查看收件箱、今日日程、标记条目或某个透视的内容

支持客户端

Claude Desktop完整支持
Claude Code完整支持