🚀 OmniFocus MCP增强版
](https://www.npmjs.com/package/omnifocus-mcp-enhanced)  ](https://nodejs.org/) 
🌟 新功能:具有分层显示的本地自定义透视访问!
通过自定义视角支持,将OmniFocus转变为人工智能驱动的生产力强国
OmniFocus增强型模型上下文协议(MCP)服务器 本机自定义透视图访问分层任务显示、AI优化工具选择和全面的任务管理。
简单地说:这可以让你的人工智能助手读取你的OmniFocus数据,创建任务/项目,组织子任务,查看视角,并帮助你计划工作,而无需在应用程序之间手动跳转。
🌠 为什么这个项目存在
OmniFocus已经很强大了,但它仍然主要是一个手动驱动的工具。
这个项目背后的更大想法很简单:
- 点击更少,对话更多
- 减少人工清理,增加人工智能辅助规划
- 更少的工具记忆,更自然的任务管理
目标不仅仅是公开更多的OmniFocus命令。 我们的目标是让你像这样使用OmniFocus:
Plan my day.
Clean up my Inbox.
Turn these notes into a project.
Show me what is blocked.
Reorganize these tasks safely.如果这感觉很自然,那么这个MCP服务器正在做它的工作。
想看看项目下一步的发展方向吗?看 路线图.
🆕 最新发布
- v1.6.10 -通过修复收件箱任务完成问题
edit_item,修复了AppleScript对撇号/反斜杠的特殊字符处理,修复了特殊字符的JSON结果转义,并澄清了batch_add_items/mcporter使用示例。 - v1.6.9 -添加了任务附件支持:
get_task_by_id现在列出附件元数据,dump_database导出附件/链接元数据,并新增read_task_attachment在可能的情况下,将图像附件作为MCP图像内容返回。 - v1.6.8 -通过添加稳定的任务移动支持
move_task和edit_item(newProjectId/newProjectName/newParentTaskId/newParentTaskName/moveToInbox)具有重复名称保护和循环防止检查。 - v1.6.6 -添加了完整的计划日期支持(创建/编辑/读取/过滤/排序/导出),包括
plannedDate/newPlannedDate并显示更新的任务。
✨ 主要特点
🌟 新增:本地自定义透视访问
- 🎯 直接集成 -通过以下方式本地访问您的OmniFocus自定义视角
Perspective.CustomAPI - 🌳 分层显示 -具有父子关系的树形任务可视化
- 🧠 AI优化 -增强的工具描述可防止AI混淆视角和标签
- ⚡ 零设置 -立即使用现有的自定义透视图
🏗️ 完成任务管理
- 🏗️ 完整的子任务支持 -创建具有父子关系的分层任务
- 🔍 内置视角 -访问收件箱、标记、预测和基于标记的视图
- 🚀 终极任务筛选器 -超越OmniFocus原生功能的高级过滤
- 🎯 批量操作 -高效地添加/删除多个任务
- 📊 智能查询 -按ID、名称或复杂条件查找任务
- 🔄 完整的CRUD操作 -创建、读取、更新、删除任务和项目
- 📅 时间管理 -到期、延期、计划日期、估计和日程安排
- 🏷️ 高级标记 -基于标签的精确/部分匹配过滤
- 🤖 人工智能集成 -无缝集成Claude AI,实现智能工作流程
- 🖼️ 附件感知阅读 -在决定人工智能是否应该检查之前,先查看笔记附件和链接文件
📦 安装
快速安装(推荐)
# One-line installation
claude mcp add omnifocus-enhanced -- npx -y omnifocus-mcp-enhanced替代安装方法
# Upgrade to latest
npm install -g omnifocus-mcp-enhanced@latest
# Global installation
npm install -g omnifocus-mcp-enhanced
claude mcp add omnifocus-enhanced -- omnifocus-mcp-enhanced
# Local project installation
git clone https://github.com/jqlts1/omnifocus-mcp-enhanced.git
cd omnifocus-mcp-enhanced
npm install && npm run build
claude mcp add omnifocus-enhanced -- node "/path/to/omnifocus-mcp-enhanced/dist/server.js"📋 需求
- macOS 10.15+ -OmniFocus仅适用于macOS
- OmniFocus 3+ -必须安装并运行应用程序
- OmniFocus Pro -自定义透视图所需(v1.6.0中的新功能)
- Node.js 18+ -用于运行MCP服务器
- 任何支持MCP的客户端 -克劳德代码,
mcporter,或另一台MCP主机
🚦 从这里开始
如果你只想以最快的方式理解这个项目,请记住这一点:
- 将MCP服务器连接到您的AI客户端。
- 与AI自然对话。
- 让它为您阅读、计划、创建、移动或更新您的OmniFocus任务。
您不需要先记住所有工具名称。
🙋 这有什么好处
- 日计划问你的人工智能今天要交什么,标记了什么,以及你能在30分钟内完成什么。
- 项目设置:给人工智能一个粗略的目标,然后让它创建一个项目并将其分解为子任务。
- 收件箱清理:让它查看收件箱任务,并将其分类到下一个操作、项目或某一天/以后的桶中。
- 观点回顾:让它打开你的一个自定义视角,总结重要的事情。
- 批量捕获:粘贴会议笔记或头脑风暴列表,让人工智能一次创建多个任务。
- 附件意识审查:让AI仅在需要时检查任务附件。
💬 AI对话示例
这些工具在Claude Code或任何可以调用相同工具的MCP客户端中都能很好地工作。
1.日常计划
试着说:
Check my Forecast and flagged tasks, then tell me the 3 most important things to do today.
Prefer tasks that take under 60 minutes first.2.收件箱清理
试着说:
Review my Inbox and group the tasks into:
1. do today
2. schedule later
3. turn into projects
Then help me clean up the obvious ones.3.把一个想法变成一个项目
试着说:
Create a project called "Launch spring newsletter".
Add the main subtasks, estimated minutes, and mark the most important step as flagged.4.使用自定义视角
试着说:
Open my custom perspective "今日工作安排" and summarize:
- what is due soon
- what looks blocked
- what I can finish quickly5.从注释批量添加
试着说:
Turn these meeting notes into OmniFocus tasks under the project "Website Refresh".
Use subtasks where it makes sense and keep the task names short.6.仅在需要时审查附件
试着说:
Find the task called "Review design draft".
Show me what attachments it has first.
Only open the image attachment if there is one.🧭 实用使用技巧
- 要求AI 先看,再改变 如果你想要更安全的工作流程。
- 使用 任务ID 当任务名称重复时。
- 对于 子任务,让父任务决定项目。也不要通过
projectName. - 对于
mcporter,复杂阵列的可靠性要高得多--args '{...}'.
🎯 核心能力
1.🏗️ 子任务管理
轻松创建复杂的任务层次结构:
// Create subtask by parent task name
{
"name": "Analyze competitor keywords",
"parentTaskName": "SEO Strategy",
"note": "Focus on top 10 competitors",
"dueDate": "2025-01-15",
"estimatedMinutes": 120,
"tags": ["SEO", "Research"]
}
// Create subtask by parent task ID
{
"name": "Write content outline",
"parentTaskId": "loK2xEAY4H1",
"flagged": true,
"estimatedMinutes": 60
}2.🔍 透视图
以编程方式访问所有主要的OmniFocus视角:
# Inbox perspective
get_inbox_tasks {"hideCompleted": true}
# Flagged tasks
get_flagged_tasks {"projectFilter": "SEO Project"}
# Forecast (next 7 days)
get_forecast_tasks {"days": 7, "hideCompleted": true}
# Tasks by tag
get_tasks_by_tag {"tagName": "AI", "exactMatch": false}3.🚀 终极任务筛选器
使用高级过滤创建任何可以想象的视角:
# Time management view (30min tasks due this week)
filter_tasks {
"taskStatus": ["Available", "Next"],
"estimateMax": 30,
"dueThisWeek": true
}
# Deep work view (60+ minute tasks with notes)
filter_tasks {
"estimateMin": 60,
"hasNote": true,
"taskStatus": ["Available"]
}
# Planned work view (tasks planned for today)
filter_tasks {
"plannedToday": true,
"sortBy": "plannedDate"
}
# Project overdue tasks
filter_tasks {
"projectFilter": "Website Redesign",
"taskStatus": ["Overdue", "DueSoon"]
}4. 🌟 新增:本地自定义透视访问
使用分层任务显示访问OmniFocus自定义透视图:
# 🌟 NEW: List all your custom perspectives
list_custom_perspectives {"format": "detailed"}
# 🌳 NEW: Project tree view (default)
get_custom_perspective_tasks {
"perspectiveName": "今日工作安排", # Your custom perspective name
"displayMode": "project_tree", # project_tree | task_tree | flat
"hideCompleted": true
}
# Global task tree (legacy showHierarchy=true equivalent)
get_custom_perspective_tasks {
"perspectiveName": "Today Review",
"displayMode": "task_tree"
}
# Flat list (legacy groupByProject=false equivalent)
get_custom_perspective_tasks {
"perspectiveName": "Weekly Planning",
"displayMode": "flat"
}为什么这很强大:
- ✅ 原生集成 -使用OmniFocus
Perspective.CustomAPI直接 - ✅ 树形结构 -可视化父子任务关系├─, └─ 符号
- ✅ 项目第一组 -首先是项目标题,然后是嵌套子任务
- ✅ 可读元数据 -完整笔记和
#tags树内输出 - ✅ AI友好 -增强的描述可防止工具选择混淆
- ✅ 专业输出 -清晰易读的任务层次结构
5.🎯 批量操作
高效管理多个任务:
{
"items": [
{
"type": "task",
"name": "Website Technical SEO",
"projectName": "SEO Project",
"note": "Optimize technical aspects"
},
{
"type": "task",
"name": "Page Speed Optimization",
"parentTaskName": "Website Technical SEO",
"estimatedMinutes": 180,
"flagged": true
},
{
"type": "task",
"name": "Mobile Responsiveness",
"parentTaskName": "Website Technical SEO",
"estimatedMinutes": 90
}
]
}CLI提示 mcporter:
# Prefer explicit JSON args for complex arrays / nested objects
mcporter call omnifocus.batch_add_items --args '{
"items": [
{
"type": "task",
"name": "Website Technical SEO",
"projectName": "SEO Project"
}
]
}'如果您通过以下方式传递子任务 parentTaskId 或 parentTaskName,也不要通过 projectName子任务从其父任务继承项目。
工作 mcporter 示例:
# 1) Batch-create top-level tasks in a project
mcporter call omnifocus.batch_add_items --args '{
"items": [
{
"type": "task",
"name": "Parent: Category A",
"projectName": "OmniFocus MCP Batch Test"
},
{
"type": "task",
"name": "Parent: Category B",
"projectName": "OmniFocus MCP Batch Test"
}
]
}'# 2) Create parent + child in one batch
mcporter call omnifocus.batch_add_items --args '{
"items": [
{
"type": "task",
"name": "Parent: Category A",
"projectName": "OmniFocus MCP Batch Test"
},
{
"type": "task",
"name": "Child: A1",
"parentTaskName": "Parent: Category A"
}
]
}'# 3) Safer two-step flow when adding many subtasks to existing parents
mcporter call omnifocus.batch_add_items --args '{
"items": [
{
"type": "task",
"name": "Child: A1",
"parentTaskName": "Parent: Category A"
},
{
"type": "task",
"name": "Child: A2",
"parentTaskName": "Parent: Category A"
},
{
"type": "task",
"name": "Child: B1",
"parentTaskName": "Parent: Category B"
}
]
}'根据设计,这将失败:
mcporter call omnifocus.batch_add_items --args '{
"items": [
{
"type": "task",
"name": "Child: A1",
"projectName": "OmniFocus MCP Batch Test",
"parentTaskName": "Parent: Category A"
}
]
}'因为子任务必须从父任务继承其项目。
6.🖼️ 附件检查
首先发现任务中的图像和链接文件,然后只阅读所需的附件:
# List task details plus attachment metadata
get_task_by_id {
"taskId": "abc123"
}
# Open an attachment returned by get_task_by_id
read_task_attachment {
"taskId": "abc123",
"attachmentId": "embedded-1"
}get_task_by_id 现在报告附件ID、名称、MIME猜测、来源(embedded 对比 linked),以及可用的尺寸。 read_task_attachment 尽可能将图像作为MCP图像内容返回,因此AI客户端可以直接检查图像,而不是从纯文本解析base64。
🛠️ 完整的工具参考
📊 数据库和任务管理
- 转储数据库 -获取OmniFocus数据库状态
- add_omnifocus_task -创建任务(通过子任务支持增强)
- add_项目 -创建项目
- remove_item -删除任务或项目
- 编辑项 -编辑任务或项目(现在支持任务移动:项目/父级/收件箱)
- 移动任务 -将现有任务移动到项目/父任务/收件箱
- batch_add_items -批量添加(通过子任务支持增强)
- 批处理_移动_项目 -批量删除
- get_task_by_id -查询任务信息,包括附件元数据
- 阅读任务附件 -阅读由以下人员报告的附件
get_task_by_id
🔍 内置透视工具
- get_box_tasks -收件箱透视图
- get_flagged_tasks -标记的视角
- 获取预测任务 -预测视角(包括到期/延期/计划任务数据)
- get_tasks_by_tag -基于标签的过滤
- filter_tasks -终极过滤,无限组合
🌟 自定义透视工具(新)
- 列表_自定义_视角 - 🌟 新:列出所有自定义透视图及其详细信息
- get_custom_perspective_tasks - 🌟 新:使用分层显示访问自定义透视图
📊 分析和跟踪
- get_today_completed_tasks -查看今天完成的任务
批量移动功能路线图(未来): docs/路线图/2026-02-25批次移动任务计划.md
🚀 快速入门示例
基本任务创建
# Simple task
add_omnifocus_task {
"name": "Review quarterly goals",
"projectName": "Planning",
"dueDate": "2025-01-31",
"plannedDate": "2025-01-28"
}高级任务管理
# Create parent task
add_omnifocus_task {
"name": "Launch Product Campaign",
"projectName": "Marketing",
"dueDate": "2025-02-15",
"tags": ["Campaign", "Priority"]
}
# Add subtasks
add_omnifocus_task {
"name": "Design landing page",
"parentTaskName": "Launch Product Campaign",
"estimatedMinutes": 240,
"flagged": true
}任务移动操作
# Move task to a project
move_task {
"id": "task-id-123",
"targetProjectName": "Planning"
}
# Move task under another task
move_task {
"id": "task-id-123",
"targetParentTaskId": "parent-task-id-456"
}
# Move task back to inbox
move_task {
"id": "task-id-123",
"targetInbox": true
}任务移动安全规则:
- 名称查找在重复时会很快失败,并要求您使用ID。
- 目标必须是一种类型:项目、父任务或收件箱。
- 将任务移动到其自身/其后代中会被阻止,以防止循环。
您也可以随 edit_item 并结合移动+字段更新:
edit_item {
"itemType": "task",
"id": "task-id-123",
"newProjectName": "Planning",
"newName": "Review tmux workflow",
"newFlagged": true
}智能任务发现
# Find high-priority work
filter_tasks {
"flagged": true,
"taskStatus": ["Available"],
"estimateMax": 120,
"hasEstimate": true
}
# Today's completed work
filter_tasks {
"completedToday": true,
"taskStatus": ["Completed"],
"sortBy": "project"
}🌟 自定义透视用法
# List your custom perspectives
list_custom_perspectives {"format": "detailed"}
# Access a custom perspective with project tree
get_custom_perspective_tasks {
"perspectiveName": "Today Review",
"displayMode": "project_tree",
"hideCompleted": true
}
# Quick flat view of weekly planning
get_custom_perspective_tasks {
"perspectiveName": "Weekly Planning",
"displayMode": "flat"
}🔧 配置
验证安装
# Check MCP status
claude mcp list
# Test basic connection
get_inbox_tasks
# Test new custom perspective features
list_custom_perspectives故障排除
- 确保OmniFocus 3+已安装并正在运行
- 验证是否安装了Node.js 18+
- 检查克劳德代码MCP配置
- 如果需要,为终端应用程序启用可访问权限
🎯 用例
- 项目管理 -使用子任务创建详细的项目层次结构
- GTD工作流程 -利用完成任务方法论的视角
- 时间块 -按进度计划的估计时间筛选
- 审查流程 -使用自定义视角进行每周/每月审查
- 团队协调 -团队任务分配的批处理操作
- 人工智能驱动的规划 -让克劳德分析和组织你的任务
📈 演出
- 快速过滤 -本机AppleScript性能
- 批量效率 -多任务的单次操作
- 内存优化 -资源使用率最低
- 可扩展的 -高效处理大型任务数据库
🤝 贡献
欢迎投稿!请随时提交拉取请求。
- 分叉存储库
- 创建要素分支
- 进行更改
- 如果适用,添加测试
- 提交拉取请求
📄 许可证
MIT许可证-请参阅 许可证 文件以获取详细信息。
🔗 链接
- NPM包: https://www.npmjs.com/package/omnifocus-mcp-enhanced
- GitHub 仓库: https://github.com/jqlts1/omnifocus-mcp-enhanced
- GTD 软件: https://www.omnigroup.com/omnifocus/
- 模型上下文协议: https://modelcontextprotocol.io/
- 克劳德代码: https://docs.anthropic.com/en/docs/claude-code
🙏 致谢
基于原始的OmniFocus MCP服务器 运动机械。增强了透视图、高级过滤和完整的子任务支持。
______________________________________________________________________
⭐ 如果这个仓库有助于提高你的生产力,请将其标记为星号!
