OmniFocus MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OMNIFOCUS_TIMEOUT_SECONDS | No | Optional: OMNIFOCUS_TIMEOUT_SECONDS (default 60) if a large database needs a longer OmniJS budget. | 60 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| omnifocus_statusA | Health check for OmniFocus: running state, Pro vs Standard, undo availability, and headline counts. Use this first when a session starts or a call fails. It never dumps tasks. |
| query_tasksA | Read tasks from Inbox, Flagged, Forecast, tags, projects, custom perspectives, or an ad-hoc filter. Results are paginated and compact by default. Use count_tasks when you only need totals. Custom perspectives (source=custom) are saved views, not tags. |
| count_tasksA | Count matching tasks with a status breakdown and known estimated minutes. Use this before listing when you need scale, daily capacity, or a review total. |
| query_projectsA | List projects, including review metadata and stalled detection. |
| query_foldersC | List OmniFocus folders. detailed includes child projects and subfolders. |
| query_tagsA | List or search tags, including hierarchy paths such as 'Work / Deep'. |
| query_perspectivesA | List built-in and custom perspectives, or read a custom perspective's filter rules. Custom perspectives require OmniFocus Pro. This does not return the tasks inside a perspective; use query_tasks with source=custom for that. |
| read_attachmentA | Read one attachment previously listed on a task. Images are returned as image content when possible. |
| add_taskB | Create one task, optionally with subtasks, tags, dates, and a repeat rule. |
| add_projectC | Create a project, optionally inside a folder and with an initial task list. |
| add_itemsA | Create many tasks or projects in one OmniJS call. Later items can parent to earlier names. |
| create_project_from_outlineA | Create one verified project tree from a user-confirmed outline. Rolls back with Undo on failure. |
| edit_itemC | Edit a task or project, including optional move, tags, dates, and status. |
| complete_itemsA | Mark tasks or projects complete, incomplete, or dropped. Repeating completes report the generated instance. |
| move_itemsA | Move tasks to a project, parent task, or the Inbox. Cycles are rejected before any move. |
| remove_itemsA | Delete tasks, projects, or folders. First call returns a cascade preview and confirmToken; second call executes. |
| duplicate_itemsB | Duplicate tasks or whole projects. Duplicating a project is useful as a template. |
| set_repetitionA | Set, update, or clear a task's OmniFocus 4.7+ repetition rule. Restores the previous rule on failure. |
| manage_folderB | Create, rename, move, or delete a folder. Deleting a folder also deletes its projects; that path requires confirmToken. |
| manage_tagA | Create, rename, nest, or delete a tag. On-hold tags block next actions. |
| manage_perspectiveA | Update a custom perspective's filter rules in place. OmniFocus cannot create or delete perspectives via automation. |
| manage_notificationsC | List, add, or remove task reminders (absolute or due-relative). |
| append_noteB | Append to a task or project note without overwriting it. |
| mark_reviewedA | Mark confirmed projects reviewed with one timestamp and return the OmniFocus-generated next review dates. |
| omnifocus_sessionB | Undo or redo the last OmniFocus change, run database clean-up, or reveal an item in the OmniFocus UI. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| daily_planning | Plan today from Forecast, flagged, and overdue work. Optionally pass available minutes. |
| weekly_review | GTD weekly review: inbox, projects due for review, and stalled projects. |
| inbox_processing | Clarify inbox items into delete, defer, delegate, file, or do. |
| project_planning | Break a named project into sequenced, estimated next actions. |
| project_shaping | Turn conversation notes into one confirmed OmniFocus project tree. |
| evening_shutdown | Close the day: what got done, what slipped, and what should be planned tomorrow. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| resource_status | Headline OmniFocus counts and connection health. |
| resource_inbox | Current inbox tasks (compact, max 50). |
| resource_today | Overdue, due today, and flagged remaining work. |
| resource_forecast | Forecast window for the next 7 days. |
| resource_projects | Active projects with stalled detection. |
| resource_review | Projects currently due for review. |
TDQS
Scored across 25 tools
Most query/add/manage tools have distinct scopes, but there is real overlap: edit_item can move items like move_items, add_task/add_items/create_project_from_outline all create items, and remove_items/manage_folder both delete folders. Descriptions help, but an agent could still pick the wrong tool in several cases.
The snake_case verb_noun pattern is largely consistent with query_*, add_*, and manage_* groups. Minor deviations like omnifocus_status, omnifocus_session, and the longer create_project_from_outline keep it from being perfectly uniform.
25 tools sits at the heavy end of the range for a single server. It is comprehensive for OmniFocus, but some overlapping creation/deletion paths and utility tools make the set feel larger than strictly necessary.
The surface covers task/project/folder/tag/notification lifecycles, repetition, review, undo, and status checks. The main gaps are attachment creation and perspective creation/deletion, which are largely platform limitations, so core workflows are still supported.