Skip to main content
Glama

MCP OmniFocus

npm version

MCP server for OmniFocus with auto-detection of Pro/Standard version.

Features

  • Auto-detection: Automatically detects OmniFocus Pro or Standard

  • Full Pro support: AppleScript for read/write with sync

  • Standard fallback: SQLite read + URL scheme for create

Capabilities by Version

Feature

Pro (AppleScript)

Standard

Read tasks

✓

✓ (SQLite)

Create task

✓

✓ (URL scheme, syncs)

Update task

✓

⚠️ (SQLite, no sync)

Complete task

✓

⚠️ (SQLite, no sync)

Get projects

✓

✓ (SQLite)

⚠️ Standard SQLite write: Changes don't sync until OmniFocus restart.

Related MCP server: OmniFocus MCP Server

Installation

npx mcp-omnifocus

From source

git clone https://github.com/avlihachev/mcp-omnifocus.git
cd mcp-omnifocus
npm install
npm run build

Claude Desktop Configuration

Add to ~/.claude/claude_desktop_config.json:

{
  "mcpServers": {
    "omnifocus": {
      "command": "npx",
      "args": ["mcp-omnifocus"]
    }
  }
}

Or if installed from source:

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

Tools

omnifocus_get_tasks

Get tasks filtered by flagged, due today, or all.

omnifocus_create_task

Create a new task with name, note, project, flagged, dueDate.

omnifocus_update_task

Update existing task (Pro: syncs, Standard: SQLite only).

omnifocus_complete_task

Mark task as complete (Pro: syncs, Standard: SQLite only).

omnifocus_get_projects

Get list of active projects.

Available Tools

7 tools
omnifocus_complete_taskB

Mark a task as complete. (Standard version: changes via SQLite won't sync until OmniFocus restart)

Inputs: taskId (required).

omnifocus_create_taskB

Create a new task in OmniFocus. Detected version: standard

Inputs: name (required), note, dueDate, flagged, +1 more.

omnifocus_get_configB

Get current configuration settings

Inputs: no named parameters.

omnifocus_get_projectsA

Get list of active projects from OmniFocus. Detected version: standard

Inputs: no named parameters.

omnifocus_get_tasksB

Get tasks from OmniFocus. Filter by flagged, due today, or all. Detected version: standard

Inputs: filter.

omnifocus_set_configA

Update configuration settings. For Standard version: directSqlAccess controls whether to use direct SQLite access for update/complete operations (faster but requires OmniFocus restart to sync)

Inputs: taskLimit, directSqlAccess.

omnifocus_update_taskA

Update an existing task in OmniFocus. (Standard version: changes via SQLite won't sync until OmniFocus restart)

Inputs: taskId (required), name, note, dueDate, +1 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.8/5.0

    Scored across 7 tools

    Disambiguation5/5

    Each tool targets a distinct resource and action: tasks have get/create/update/complete, projects have get, and configuration has get/set. There is no meaningful overlap between the tools, so an agent should be able to select the right one without confusion.

    Naming Consistency5/5

    All tools follow the consistent omnifocus_<verb>_<noun> snake_case pattern using clear verbs like get, create, update, complete, and set. The naming conventions are uniform and predictable across the entire set.

    Tool Count5/5

    Seven tools is a well-scoped size for an OmniFocus server, covering task operations, project retrieval, and configuration without unnecessary bulk. Each tool serves a clear purpose and the count feels appropriate for the domain.

    Completeness4/5

    The core task lifecycle is covered well with get, create, update, and complete operations, and config get/set supports the server itself. Minor gaps exist such as no task deletion or project mutation capabilities, but agents can likely work around these for most workflows.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers