OmniFocus MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_database_summaryA | Get a summary of the OmniFocus database including counts of inbox items, projects, tags, folders, available/due-soon/overdue/flagged tasks |
| searchB | Search across all OmniFocus items (tasks, projects, folders, tags) by name or note content |
| dump_databaseA | Dump the entire OmniFocus database including inbox, projects, folders, tags, and perspectives in a single call. Essential for getting full context. |
| save_databaseA | Explicitly save the OmniFocus database to disk |
| sync_databaseA | Trigger an OmniFocus sync to push local changes to OmniSync and pull updates from other devices. CALL THIS ONCE at the end of any session that mutated data — especially after batch_create_tasks, batch_complete_tasks, batch_delete_tasks, or any sequence of multiple create/update/delete/move operations. Do NOT call after every individual mutation; sync once at the end of the chain. Returns immediately while sync runs in the background. |
| list_tasksA | List tasks from OmniFocus with optional filters for status, flags, tags, projects, date ranges, and text search |
| get_taskA | Get detailed information about a specific task by its ID, optionally including subtask hierarchy |
| create_taskA | Create a new task in OmniFocus. By default creates in inbox; specify projectId or projectName to add to a project. |
| update_taskB | Update properties of an existing task |
| complete_taskB | Mark a task as completed |
| uncomplete_taskA | Mark a completed task as incomplete (re-open it) |
| drop_taskA | Mark a task as dropped (cancelled) |
| delete_taskA | Permanently delete a task from OmniFocus |
| move_tasksA | Move one or more tasks to a different project or parent task. Omit destination to move to inbox. |
| duplicate_tasksA | Duplicate one or more tasks, optionally into a different project |
| set_task_tagsB | Set, add, or remove tags on a task |
| add_task_notificationC | Add a notification/reminder to a task |
| get_inbox_tasksA | Get all tasks currently in the OmniFocus inbox (not yet assigned to a project) |
| get_flagged_tasksC | Get all available flagged tasks |
| get_today_completed_tasksB | Get all tasks completed today |
| append_task_noteB | Append text to an existing task's note |
| batch_create_tasksB | Create multiple tasks at once, with support for subtask hierarchies. Much more efficient than creating tasks one by one. |
| list_task_notificationsB | List all notifications/reminders on a task |
| remove_task_notificationB | Remove a specific notification from a task |
| convert_task_to_projectB | Convert an existing task into a new project, preserving subtasks |
| batch_delete_tasksA | Delete multiple tasks at once. More efficient than deleting one by one. |
| batch_complete_tasksB | Complete multiple tasks at once. More efficient than completing one by one. |
| get_task_countA | Get count of tasks matching filters without fetching full data. Faster than list_tasks when you only need the count. |
| list_projectsB | List projects from OmniFocus with optional filters for status, folder, and text search |
| get_projectA | Get detailed information about a specific project by ID or name |
| create_projectB | Create a new project in OmniFocus |
| update_projectB | Update properties of an existing project |
| complete_projectC | Mark a project as completed (done) |
| drop_projectC | Mark a project as dropped (cancelled) |
| move_projectB | Move a project to a different folder |
| delete_projectB | Permanently delete a project from OmniFocus |
| get_review_queueA | Get projects that are due for review |
| mark_reviewedB | Mark a project as reviewed, advancing its next review date |
| get_project_tasksB | Get all tasks belonging to a specific project |
| list_foldersB | List all folders in OmniFocus |
| get_folderA | Get detailed information about a folder including its child folders and projects |
| create_folderB | Create a new folder in OmniFocus |
| update_folderB | Update a folder's properties |
| delete_folderB | Permanently delete a folder from OmniFocus |
| list_tagsA | List all tags in OmniFocus |
| get_tagB | Get detailed information about a tag including its child tags |
| create_tagB | Create a new tag in OmniFocus |
| update_tagB | Update a tag's properties |
| delete_tagB | Permanently delete a tag from OmniFocus |
| list_perspectivesA | List custom perspectives in OmniFocus. Built-in perspectives (Inbox, Projects, Tags, Forecast, Flagged, Review, Nearby) are not enumerable via the API — use dedicated tools instead (get_inbox_tasks, get_flagged_tasks, get_review_queue, list_projects, list_tags, or list_tasks with date filters for Forecast). |
| get_perspective_tasksA | Get tasks shown in a specific custom perspective. Built-in perspectives (Inbox, Forecast, etc.) are not supported — use dedicated tools instead. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| weekly-review | Guided weekly review of OmniFocus projects and tasks |
| inbox-processing | Process OmniFocus inbox using GTD methodology |
| daily-planning | Plan today's tasks using OmniFocus data |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| database-summary | OmniFocus database summary with counts |
| perspectives | List of all OmniFocus perspectives |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/IllyaStarikov/omnifocus-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server