使用说明
OmniFocus MCP
✔️ 将提示转化为项目。
功能完成 模型上下文协议 服务器用于 GTD 软件.对任务、项目、文件夹、标签和透视图的完全读/写访问权限--51个工具、2个资源和3个提示。
用途 Omni自动化 (OmniJS)底层,通过JXA和 osascript这就是为什么需要macOS。
目录
示例
在我的“工作”文件夹中创建一个名为“Q3启动”的项目,其中包含设计审查、文案撰写和质量保证的子任务——所有这些任务都将于下周五按顺序分配
“什么逾期了?标记本周到期但尚未标记的任何内容。”
将“网站重新设计”项目中标记为“等待”的所有任务移动到新的“已阻止”项目中
“运行我的每周回顾——浏览过时的项目,处理收件箱,总结需要注意的事项。”
“我标记了多少个‘差事’任务?列出可用的任务。”
安装
克劳德桌面版
添加 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"omnifocus": {
"command": "npx",
"args": ["-y", "omnifocus-mcp-server"]
}
}
}
克劳德代码
claude mcp add omnifocus -- npx -y omnifocus-mcp-server
或添加到 .claude/settings.json:
{
"mcpServers": {
"omnifocus": {
"command": "npx",
"args": ["-y", "omnifocus-mcp-server"]
}
}
}
Cursor
添加 .cursor/mcp.json 在您的项目或 ~/.cursor/mcp.json 全球地:
{
"mcpServers": {
"omnifocus": {
"command": "npx",
"args": ["-y", "omnifocus-mcp-server"]
}
}
}
Windsurf
添加 ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"omnifocus": {
"command": "npx",
"args": ["-y", "omnifocus-mcp-server"]
}
}
}
Codex CLI
添加 ~/.codex/config.toml:
[mcp_servers.omnifocus]
command = "npx"
args = ["-y", "omnifocus-mcp-server"]
Gemini CLI
添加 ~/.gemini/settings.json:
{
"mcpServers": {
"omnifocus": {
"command": "npx",
"args": ["-y", "omnifocus-mcp-server"]
}
}
}
需求
- macOS(OmniFocus仅适用于macOS)
- OmniFocus 4(或支持Omni Automation的OmniFocus 3)
- Node.js>=18
- 在“系统设置”>“隐私和安全”>“自动化”中授予自动化权限
安全
此服务器具有 完全读/写访问 到您的OmniFocus数据库。它可以创建、修改和删除任务、项目、文件夹和标记。只将其连接到您信任的AI客户端和模型。
没有数据离开你的机器——所有的通信都是在本地通过 osascript.
工具
任务(23)
| 工具 | 说明 |
|---|---|
list_tasks |
列出带有状态、标志、标签、项目、日期范围和文本搜索筛选器的任务 |
get_task |
按ID获取任务详细信息,可选地包括子任务层次结构 |
create_task |
在收件箱或项目中创建带有标签、日期和重复的任务 |
update_task |
更新任务属性(名称、注释、日期、标志、重复) |
complete_task |
将任务标记为已完成 |
uncomplete_task |
重新打开已完成的任务 |
drop_task |
将任务标记为已删除(已取消) |
delete_task |
永久删除任务 |
move_tasks |
将任务移动到其他项目、父任务或收件箱 |
duplicate_tasks |
重复任务,可选地放入不同的项目中 |
set_task_tags |
设置、添加或删除任务上的标记 |
add_task_notification |
添加绝对或适当的相对通知 |
remove_task_notification |
从任务中删除通知 |
list_task_notifications |
列出任务的所有通知 |
append_task_note |
在任务注释中添加文本 |
get_inbox_tasks |
获取所有收件箱任务 |
get_flagged_tasks |
获取所有可用的标记任务 |
get_today_completed_tasks |
今天完成任务 |
get_task_count |
计算与筛选器匹配的任务数——使用而不是 list_tasks 当你只需要一个数字,而不需要完整的任务数据时 |
convert_task_to_project |
将任务转换为项目,保留子任务 |
batch_create_tasks |
使用子任务层次结构一次创建多个任务 |
batch_complete_tasks |
同时完成多项任务 |
batch_delete_tasks |
一次删除多个任务 |
项目(11)
| 工具 | 说明 |
|---|---|
list_projects |
列出带有状态、文件夹和文本搜索筛选器的项目 |
get_project |
按ID或名称获取项目详细信息 |
create_project |
使用文件夹、顺序、SAL、标签和审阅选项创建项目 |
update_project |
更新项目属性 |
complete_project |
将项目标记为已完成 |
drop_project |
将项目标记为已删除(已取消) |
move_project |
将项目移动到其他文件夹 |
delete_project |
永久删除项目 |
get_project_tasks |
获取项目中的所有任务 |
get_review_queue |
让项目接受审查 |
mark_reviewed |
将项目标记为已审核 |
文件夹(5)
| 工具 | 说明 |
|---|---|
list_folders |
列出所有文件夹 |
get_folder |
获取文件夹详细信息,包括子文件夹和项目 |
create_folder |
创建文件夹(支持嵌套) |
update_folder |
更新文件夹名称或状态 |
delete_folder |
永久删除文件夹 |
标签(5)
| 工具 | 说明 |
|---|---|
list_tags |
列出所有标签 |
get_tag |
获取标签详细信息,包括子标签 |
create_tag |
创建标签(支持嵌套和allowNextAction) |
update_tag |
更新标记属性 |
delete_tag |
永久删除标签 |
观点(2)
| 工具 | 说明 |
|---|---|
list_perspectives |
列出透视图(内置和/或自定义) |
get_perspective_tasks |
以特定视角显示任务 |
数据库(5)
| 工具 | 说明 |
|---|---|
get_database_summary |
获取收件箱项目、标记、文件夹和任务统计信息的计数 |
search |
按名称或注释搜索所有项目(任务、项目、文件夹、标签) |
dump_database |
在一次调用中转储整个数据库 |
save_database |
显式地将数据库保存到磁盘 |
sync_database |
触发OmniFocus同步,将本地更改推送到OmniSync,并从其他设备获取更新。在一系列突变的末尾调用一次。这 batch_* 工具也接受 sync: true 在批处理完成后自动运行同步。 |
资源
| URI | 描述 |
|---|---|
omnifocus://database/summary |
包含计数的数据库摘要 |
omnifocus://perspectives |
所有视角列表 |
提示
| 提示 | 描述 |
|---|---|
weekly-review |
浏览GTD每周审查:检查应审查的项目,处理剩余的收件箱项目,重新评估标记的任务,并获得结构化的摘要。完成时将项目标记为已审查。 |
inbox-processing |
使用GTD方法逐一处理收件箱中的项目——删除不可操作的项目,在2分钟内完成任何事情,并将剩余的项目组织成带有标签和日期的项目。 |
daily-planning |
根据截止日期、标记的项目和你已经完成的工作,为今天制定一个优先计划。显示过期任务并估计您的工作量。 |
故障排除
“未授权”或OmniFocus没有回应
确保已授予自动化权限。首选 系统设置>隐私和安全>自动化 并确保您的终端应用程序(terminal、iTerm等)可以控制OmniFocus。
重建后未生效的更改
如果您在本地开发,则可能正在运行多个MCP服务器进程(来自Claude Desktop、Claude Code等)。将它们全部杀死并重新启动:
pkill -f "omnifocus-mcp-server"
# or if running from source:
pkill -f "omnifocus/mcp/dist/index.js"
陈旧的 npx 缓存
如果 npx 正在运行旧版本,请清除缓存:
npx clear-npx-cache
# then re-run your MCP client
OmniFocus 3兼容性
如果启用了Omni Automation,OmniFocus 3可以工作。首选 OmniFocus>首选项>常规 并检查“Omni Automation”。某些功能(如某些透视类型)的行为可能不同。
工具调用缓慢
每次工具调用都会运行一个 osascript 与OmniFocus沟通的过程。每次通话通常需要200-500ms。批处理工具(batch_create_tasks, batch_complete_tasks, batch_delete_tasks)对于批量操作来说,比在循环中调用单个工具要快得多。
发展
npm install
npm run build # Compile TypeScript
npm run dev # Run with tsx (hot reload)
npm test # Run unit tests
npm run test:watch # Watch mode
集成测试
对真实的OmniFocus实例进行测试(创建和清理测试项):
OMNIFOCUS_LIVE=1 npm run test:integration
贡献
PR欢迎。请快跑 npm test 在提交之前,包括新工具的测试。
许可证
麻省理工学院
