OmniFocus MCP Enhanced
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 |
|---|---|
| dump_databaseB | Gets the current state of your OmniFocus database |
| add_omnifocus_taskC | Add a new task to OmniFocus |
| add_projectB | Add a new project to OmniFocus |
| remove_itemB | Remove a task or project from OmniFocus |
| edit_itemC | Edit a task or project in OmniFocus |
| move_taskB | Move an existing task to a project, parent task, or inbox |
| batch_move_tasksA | Move a confirmed set of tasks to projects, parent tasks, or Inbox. The complete batch is validated before any change and every destination is verified afterward. |
| batch_add_itemsA | Add multiple tasks or projects to OmniFocus in a single operation |
| batch_remove_itemsA | Remove a user-confirmed set of tasks or projects by stable ID. The complete batch is validated before deletion and every ID is verified absent afterward. |
| create_project_from_outlineA | Create one user-confirmed project tree with stable folder/tag IDs. The complete outline is preflighted, created in one OmniFocus request, and read back for verification. |
| get_task_by_idA | Get information about a specific task by ID or name |
| read_task_attachmentA | Read a task attachment reported by get_task_by_id. Images are returned as MCP image content when possible. |
| get_today_completed_tasksA | Get tasks completed today - view today's accomplishments |
| set_repetition_ruleA | Set, update, or clear the repeat rule on a task. Supports ICS rule strings, schedule type, anchor date, catch-up, end date, and repetition count. |
| get_inbox_tasksA | Get inbox tasks with direct subtask counts and optional subtask-tree expansion |
| get_flagged_tasksA | Get flagged tasks with direct subtask counts, optional project filtering, and optional tree expansion |
| get_forecast_tasksA | Get forecast tasks with direct subtask counts and optional subtask-tree expansion |
| get_tasks_by_tagA | Get tasks filtered by OmniFocus tags, with direct subtask counts and optional tree expansion. Use this for tags, not custom perspective names. |
| list_tagsA | List OmniFocus tags with IDs, parent relationships, and active status without loading tasks |
| filter_tasksB | Advanced task filtering by status, dates, projects, tags, search, and more, with optional subtask-tree expansion |
| get_projectsA | List OmniFocus projects with optional status/folder filtering. Returns project metadata including review dates (nextReviewDate, lastReviewDate, reviewInterval). Lighter than dump_database — returns only projects, no tasks/folders/tags. |
| get_projects_due_for_reviewA | Get OmniFocus projects that are due for review (nextReviewDate <= now). Returns projects sorted by most overdue first. Use for weekly review project health checks. |
| mark_projects_reviewedA | Mark a user-confirmed set of active or on-hold projects reviewed. The complete batch is validated first and review dates are verified afterward. |
| list_custom_perspectivesA | List all custom perspectives defined in OmniFocus |
| get_custom_perspective_tasksA | Get tasks from a specific OmniFocus custom perspective by name. Use this when user refers to perspective names like '今日工作安排', '今日复盘', '本周项目' etc. - these are custom views created in OmniFocus, NOT tags. Supports hierarchical tree display of task relationships. |
| add_folderA | Create a new folder in OmniFocus, optionally nested under a parent folder. Folders organize projects into a hierarchy. |
| edit_folderA | Rename a folder or move it under a different parent folder (use an empty string for newParentFolderName to move it to the root level). |
| remove_folderA | Remove a folder from OmniFocus. WARNING: this also permanently deletes all projects and tasks contained in the folder. |
| list_foldersA | List all OmniFocus folders with IDs, parent relationships, status, and project counts without loading tasks. |
| get_folderA | Get a single OmniFocus folder by ID or name, including its child projects and subfolders. |
| append_to_noteA | Append text to a task or project note without overwriting the existing note. Useful for logging progress or adding context. |
| count_tasksA | Count tasks matching filters without returning the full list. Fast 'how many' queries that return a total plus a breakdown by status. Uses the same filters as filter_tasks. |
| duplicate_taskA | Duplicate an existing task, optionally with its subtasks, and optionally with a new name. Useful for template-based workflows. |
| add_tagA | Create a new tag in OmniFocus, optionally nested under a parent tag. |
| edit_tagA | Rename a tag, change its status (active/onHold/dropped), or move it under a different parent tag (empty string moves to root). |
| remove_tagA | Delete a tag from OmniFocus. Tasks are not deleted; they simply lose the tag. Child tags are deleted with the parent. |
| search_tagsA | Search OmniFocus tags by name with fuzzy or exact matching. |
| list_task_notificationsA | List all notifications (reminders) set on a task, with their kind and fire time. |
| add_task_notificationA | Add a notification (reminder) to a task. Use absoluteDate for a fixed time, or relativeMinutes for an offset from the task's due date (negative = before due). |
| remove_task_notificationA | Remove a notification from a task by 0-based index, or remove all notifications with removeAll. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| daily_review | count-first daily planning with priorities, next actions, blockers, and capacity risks. |
| weekly_review | gtd-style weekly review with active projects and next-action coverage. |
| inbox_processing | gtd inbox processing session with one-by-one clarification decisions. |
| project_planning | turn a project into clear, sequenced, executable next actions. |
| project_shaping | turn meeting notes, brainstorming, or a task list into one confirmed, verified OmniFocus project tree. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| inbox | Current OmniFocus inbox tasks (uncompleted, unprocessed items). |
| today | Today's OmniFocus focus: overdue tasks, tasks due today, and flagged tasks. |
| projects | Active OmniFocus projects with task counts and stalled-project detection. |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/jqlts1/omnifocus-mcp-enhanced'
If you have feedback or need assistance with the MCP directory API, please join our Discord server