Omnifocus MCP Server

An MCP server that gives AI assistants full access to OmniFocus via Omni Automation. 41 tools for tasks, projects, folders, tags, subtask hierarchies, notifications, attachments, analytics, and data…

Local serverstdioMIT

What is the Omnifocus MCP Server?

Omnifocus is an MCP project maintained in the alexhannaonline/omnifocus-mcp repository. The maintainer describes its purpose as “An MCP server that gives AI assistants full access to OmniFocus via Omni Automation. 41 tools for tasks, projects, folders, tags, subtask hierarchies, notifications, attachments…”. Read the project documentation for the complete scope.

Local setup

The project provides a local client configuration using node. Follow the repository’s build and installation steps before copying it, and replace example paths with the paths on your own computer.

Configuration values

The example declares LOG_LEVEL. Secret-looking values have been replaced with placeholders. Required and optional labels are shown only when the documentation states them.

Source

Project documentation · Repository · Discovery listing. This profile records the public documentation checked on 2026-10-08.

Recorded tools

Check the linked publisher documentation and your connected client's tool list. Names and availability can vary with the server version and account permissions.

ToolWhat it does
list_tasksFilter by completion, flags, project, tags, dates, search, inbox, availability. Cached 30s.
get_task_countCount matching tasks without returning data.
todays_agendaTasks due today, overdue, or flagged.
create_taskCreate task with name, note, flags, dates, tags, project, estimated time.
update_taskModify any task property. Move between projects.
complete_taskMark task completed.
delete_taskRemove task.
list_projectsFilter by status, flags, folder. Cached 5min.
create_projectCreate with folder placement (auto-creates folder if needed).
update_projectChange properties, move between folders.
complete_projectMark project done (optionally complete all tasks).
delete_projectRemove project.
list_foldersList with nesting depth and status filter.
create_folderCreate folder, optionally nested.
update_folderRename, change status.
delete_folderDrop folder (optionally move contents first).
get_folder_contentsList projects and subfolders in a folder.
move_to_folderMove project or folder into a different folder.
get_task_hierarchyGet task with full subtask tree (configurable depth).
create_subtaskCreate child task with position control.
move_taskMove task to different parent or project root.
set_task_orderingSet sequential/parallel and completedByChildren.
list_subtasksList direct children of a task.
list_tagsList all tags. Optional (expensive) usage statistics.
manage_tagsCreate, rename, delete, merge tags. Supports nested tags via parentTag.
list_notificationsList all notifications on a task.
add_notificationAdd absolute (date) or relative (offset from due) notification.
remove_notificationRemove notification by index.
clear_notificationsRemove all notifications from a task.
list_attachmentsList attachment metadata and linked files on a task.
add_linked_fileLink a file:// path to a task.
remove_attachmentRemove embedded attachment by index.
remove_linked_fileUnlink a file reference.
get_productivity_statsCompletion rates, time distribution. Group by project/tag/day/week.
get_task_velocityTask throughput over day/week/month.
analyze_overdue_tasksOverdue patterns grouped by project/tag/age/priority.
analyze_recurring_tasksList recurring tasks with frequency and due dates.
get_recurring_patternsStatistics about recurring task frequencies.
export_tasksExport tasks as JSON or CSV with field selection.
export_projectsExport projects with optional statistics.
bulk_exportExport all data (tasks, projects, tags) to files.

How to install the Omnifocus MCP Server

{
  "mcpServers": {
    "omnifocus": {
      "command": "node",
      "args": [
        "/path/to/omnifocus-mcp/dist/index.js"
      ],
      "env": {
        "LOG_LEVEL": "info"
      }
    }
  }
}

From the project documentation. Replace placeholders and example paths before connecting.

Configuration

VariableDescriptionRequired
LOG_LEVELDeclared in the maintainer’s client configuration.Check documentation