OmniFocus-MCP
一种模型上下文协议(MCP)服务器,它与OmniFocus集成,使克劳德(或其它与MCP兼容的AI助手)能够与您的任务和项目进行交互。
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"omnifocus": {
"args": [
"-y",
"omnifocus-mcp"
],
"command": "npx"
}
}
}
服务介绍
OmniFocus MCP 服务器
一个与 OmniFocus 集成的 Model Context Protocol (MCP) 服务器,使 Claude(或其他兼容 MCP 的 AI 助手)能够通过自然语言对话与您的任务和项目进行交互。

🌟 概述
此 MCP 服务器在 AI 助手(如 Claude)和您的 OmniFocus 任务管理系统之间创建了一个桥梁。它赋予 AI 模型通过自然语言对话查看、创建、编辑和删除您 OmniFocus 数据库中的任务和项目的能力。
您可以这样使用它:
- 将课程大纲的 PDF 转换为带有任务、标签、推迟日期和截止日期的完整指定项目。
- 将会议记录转换为行动列表
- 创建任务、项目和标签的可视化
- 在单个操作中处理多个任务或项目
- 高效地批量管理您的 OmniFocus 项目
🚀 快速开始
先决条件
- 安装了 OmniFocus 的 macOS
连接到 Claude
- 在 Claude Desktop 中,将此 MCP 服务器添加到配置文件中:
~/Library/Application Support/Claude/claude_desktop_config.json
- 添加以下配置:
{
"mcpServers": {
"omnifocus": {
"command": "npx",
"args": ["-y", "omnifocus-mcp"]
}
}
}
- 重启 Claude Desktop
🌈 使用案例
重新组织您的项目、任务和标签
"我希望每个任务都有一个能量等级标签。显示所有没有能量等级标签的任务,并给出建议添加哪个标签。我会根据需要做出适当的更改。然后在 OmniFocus 中进行这些更改。"
从任何对话中添加任务
"好的,感谢你详细解释为什么法治很重要。在我的活动项目中添加一个每周提醒我给代表打电话的重复任务。在备注字段中包含这次对话的摘要。"
快速虚拟视图
以对话方式获取当前任务的摘要并管理它们:
"显示本周到期且不包含'鱼'的所有标记任务。"
处理会议记录或 PDF
从会议记录、学术研究文章或笔记中提取行动项:
"我粘贴了今天产品会议的记录。请分析它并在 OmniFocus 中为分配给我的任何行动项创建任务。将它们放入我的‘产品开发’项目中。"
批量操作
高效地管理多个项目:
"我有来自这个会议记录的 20 个任务。请将它们全部添加到我的‘Q2 规划’项目中,并附上合适的标签和截止日期。"
🔧 可用工具
该服务器目前提供以下工具:
dump_database
获取您当前 OmniFocus 数据库的状态。
add_omnifocus_task
向 OmniFocus 添加新任务。
参数:
name: 任务的名称projectName: (可选) 要将任务添加到的项目的名称note: (可选) 任务的附加备注dueDate: (可选) 任务的截止日期,ISO 格式deferDate: (可选) 任务的延期日期,ISO 格式flagged: (可选) 任务是否被标记estimatedMinutes: (可选) 完成任务的预计时间tags: (可选) 分配给任务的标签
add_project
向 OmniFocus 添加一个新项目。
参数:
name: 项目的名称folderName: (可选) 要将项目添加到的文件夹的名称note: (可选) 项目的附加备注dueDate: (可选) 项目的截止日期,ISO 格式deferDate: (可选) 项目的延期日期,ISO 格式flagged: (可选) 项目是否被标记estimatedMinutes: (可选) 完成项目的预计时间tags: (可选) 分配给项目的标签sequential: (可选) 项目中的任务是否应按顺序执行
remove_item
从 OmniFocus 中移除一个任务或项目。
参数:
id: (可选) 要移除的任务或项目的 IDname: (可选) 要移除的任务或项目的名称itemType: 要移除的项目的类型 ('task' 或 'project')
edit_item
在 OmniFocus 中编辑一个任务或项目。
参数:
id: (可选) 要编辑的任务或项目的 IDname: (可选) 要编辑的任务或项目的名称itemType: 要编辑的项目的类型 ('task' 或 'project')- 各种用于编辑属性的参数
batch_add_items
通过单个操作向 OmniFocus 添加多个任务或项目。
参数:
items: 要添加的项目数组,每个项目可以包括:type: 项目的类型 ('task' 或 'project')name: 项目的名称note: (可选) 附加备注dueDate: (可选) 截止日期,ISO 格式deferDate: (可选) 延期日期,ISO 格式flagged: (可选) 项目是否被标记estimatedMinutes: (可选) 预计完成时间tags: (可选) 标签数组projectName: (可选) 对于任务:要添加到的项目folderName: (可选) 对于项目:要添加到的文件夹sequential: (可选) 对于项目:任务是否按顺序执行
batch_remove_items
通过单个操作从 OmniFocus 中移除多个任务或项目。
参数:
items: 要移除的项目数组,每个项目可以包括:id: (可选) 要移除的项目的 IDname: (可选) 要移除的项目的名称itemType: 项目的类型 ('task' 或 'project')
🛠 开发
文档待补充。
🧠 工作原理
文档待补充。
此服务器使用 AppleScript 与 OmniFocus 通信,使其能够与应用程序的原生功能进行交互。该服务器是使用 Model Context Protocol SDK 构建的,该 SDK 为 AI 模型提供了与外部工具和系统交互的标准方式。
📜 许可证
MIT
🤝 贡献
欢迎贡献!请随时提交 Pull Request。