项目简介
OmniFocus MCP 服务器是一个基于 Model Context Protocol (MCP) 构建的后端应用,专为大型语言模型 (LLM) 客户端设计。它将 macOS 上的 OmniFocus 任务管理应用封装成一系列可供 LLM 调用的工具,使 LLM 能够以自然语言理解并执行 OmniFocus 中的任务、项目、文件夹、标签和视角管理操作。
主要功能点
- 项目管理: 提供获取、创建、更新、批量更新和删除 OmniFocus 项目的功能,支持按 ID、查询、状态、笔记、文件夹位置和审核周期等进行灵活操作。
- 任务管理: 实现对 OmniFocus 任务的全面控制,包括获取、创建、更新、批量更新和删除任务。支持按 ID、项目、父任务、标签、状态、日期、优先级、文本内容以及收件箱状态进行精细过滤和管理,甚至可以调整任务在列表中的顺序。
- 组织管理: 能够获取所有文件夹的层级结构,并支持创建新文件夹(包括嵌套在现有文件夹中)。
- 标签管理: 提供获取所有可用标签列表的功能。
- 视角管理 (OmniFocus Pro): 允许列出所有自定义视角,并支持根据名称切换到不同的视角视图。
安装步骤
-
前提条件:
- macOS 操作系统
- 已安装并运行 OmniFocus 应用
- Python 3.10 或更高版本
- 推荐使用 'uv' 包管理器,或使用 'pip'。
-
克隆仓库: 打开您的终端,执行以下命令克隆项目仓库并进入其目录:
git clone https://github.com/s-morgan-jeffries/omnifocus-mcp.git cd omnifocus-mcp为了确保稳定性,建议切换到最新的稳定版本标签,例如 'v0.6.4':
git checkout v0.6.4 -
安装依赖 (推荐使用 UV): 如果您的系统尚未安装 'uv',可以通过以下命令安装:
curl -LsSf https://astral.sh/uv/install.sh | sh然后,安装项目所需的所有依赖:
uv pip install -e . -
或者使用 Pip 安装: 如果您更喜欢使用 'pip',可以先创建一个 Python 虚拟环境,然后安装依赖:
python3 -m venv venv source venv/bin/activate pip install -e .(注意:'pip install -e ".[dev]"' 包含开发和测试依赖,对于普通使用,'pip install -e .' 即可。)
服务器配置 (适用于 MCP 客户端)
本 OmniFocus MCP 服务器通过标准输入/输出 (stdin/stdout) 使用 MCP 协议与客户端通信。要将此服务器集成到 MCP 客户端(例如 Claude Desktop),您需要将其启动命令添加到客户端的配置文件中。
以下是 Claude Desktop 的配置示例,您通常可以在 '~/Library/Application Support/Claude/claude_desktop_config.json' 文件中找到或创建它:
{ "mcpServers": { "omnifocus": { // "omnifocus" 是此 MCP 服务器在客户端中显示的名称,您可以自定义。 "command": "uv", // 启动服务器的可执行文件或命令。如果您使用 uv,通常就是 "uv"。 // 如果您直接使用 Python 虚拟环境,这里应是 Python 解释器的绝对路径, // 例如:"/absolute/path/to/omnifocus-mcp/venv/bin/python"。 "args": [ "--directory", "/absolute/path/to/omnifocus-mcp", // 请 **务必** 替换为 'omnifocus-mcp' 仓库在您系统中的 **绝对路径**。 // 例如:"/Users/YourUser/Projects/omnifocus-mcp"。 "run", "omnifocus-mcp" // 这是 'uv' 命令用于启动 MCP 服务器的入口点。 ] } } }
或者,如果您直接使用 Python 虚拟环境启动服务器:
{ "mcpServers": { "omnifocus": { "command": "/absolute/path/to/omnifocus-mcp/venv/bin/python", // 替换为虚拟环境中 Python 解释器的绝对路径。 "args": [ "-m", "omnifocus_mcp.server_fastmcp" // 指定要作为模块运行的 MCP 服务器文件。 ] } } }
配置完成后,请务必重启您的 MCP 客户端 (例如 Claude Desktop) 以加载新的服务器配置。
基本使用方法
一旦服务器配置并被 MCP 客户端成功识别,您就可以通过自然语言向 LLM 发出指令,让它与 OmniFocus 交互:
-
项目管理:
- "展示我所有的 OmniFocus 项目。"
- "在我的 '工作' 文件夹中创建一个名为 'Q1 规划' 的新项目。"
- "这个项目有哪些任务待审核?"
-
任务管理:
- "添加一个任务 '发送客户报告',截止日期是下周三,并标记为重要。"
- "显示我所有逾期未完成的任务。"
- "将任务 task-001 标记为已完成。"
- "将任务 task-002 移动到我的 '个人' 项目下。"
- "为任务 task-003 设置预估时间为 60 分钟。"
-
收件箱与快速捕获:
- "将 '打电话给医生' 添加到我的收件箱。"
- "我的收件箱里有什么任务?"
-
组织与标签:
- "为任务 task-001 添加 '紧急' 标签。"
- "创建一个名为 '个人目标' 的新文件夹,放在 '生活' 文件夹内。"
-
视角切换:
- "切换到我的 '每日工作清单' 视角。"
- "我有哪些自定义视角可用?"
信息
分类
桌面与硬件