Skip to main content

🎯 OmniFocus Operator

The last OmniFocus MCP Server you'll ever need.

Python 3.12+ PyPI Tests 2561 Coverage 97% macOS only

Production-grade MCP server exposing OmniFocus as structured task infrastructure for AI agents. Agent-first design, SQLite-cached performance, 2,561 tests.

→ See the full landing page — features, architecture, benchmarks, and comparison


🚀 Quick Start

Prerequisites: macOS, OmniFocus 4, Python 3.12+

🪄 Not sure where this config goes? The setup wizard on the landing page walks you through it step-by-step — including auto-merging with your existing config.

For Claude Desktop

Paste this into ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "omnifocus-operator": {
      "command": "uvx",
      "args": ["omnifocus-operator"]
    }
  }
}

uvx downloads, isolates, and runs the server automatically. No install step.

First run: OmniFocus shows a one-time permission dialog. Tick the box, click Run Script. You won't see it again.

OmniFocus first-run permission dialog showing OmniFocus Operator's welcome banner with two steps: tick the 'Automatically run' checkbox, then click Run Script

For Claude Code, OpenCode, Cursor…

Ask your agent — copy this prompt:

Add this MCP server to my client config. Just edit the config file — don't install anything, don't run any scripts.

"omnifocus-operator": {
  "command": "uvx",
  "args": ["omnifocus-operator"]
}

⚠️ This doesn't work with Claude Desktop — Desktop has no config-editing tools. Use the manual paste above.

Development install (contributors)
git clone https://github.com/HelloThisIsFlo/omnifocus-operator.git
cd omnifocus-operator
uv sync

See CONTRIBUTING.md for dev workflow details.


✨ Features

  • 46ms reads — SQLite caching gives 30–60x faster reads than bridge-only servers
  • 🛠️ 11 MCP tools — lookups, filtered lists, task creation & editing
  • 🤖 Agent-first design — warnings that teach, errors that educate, guidance in every response
  • 🧪 2,561 tests, 97% coverage — strict mypy, no corners cut
  • 🛡️ Graceful degradation — server stays alive no matter what, always recoverable
  • 🔄 Automatic fallback — SQLite → OmniJS bridge when needed

See the full documentation for architecture details, examples, and deep dives.


🛠️ Available Tools

Lookups

Tool Description
get_all Full OmniFocus database as structured data (last-resort debugging)
get_task Single task by ID — urgency, availability, dates, tags, parent, project
get_project Single project by ID — status, review interval, next task
get_tag Single tag by ID — availability, parent hierarchy

List & Filter

Tool Description
list_tasks Filter by date, availability, flags, tags, project, parent subtree, search — with pagination, field selection, and presence-flag derivation
list_projects Filter by status, folder, review schedule, flags
list_tags List tags with parent hierarchy
list_folders List folders with parent hierarchy
list_perspectives List custom perspectives

Write

Tool Description
add_tasks Create tasks with full field control — parent, tags, dates, flags, notes, repetition rules, parallel/sequential, completes-with-children
edit_tasks Patch semantics — update fields, move tasks, complete/drop, manage tags, repetition rules, and hierarchy properties

All read tools are idempotent. Write tools reference projects and tags by name or ID.


🔍 Tool Examples

Filter tasks (list_tasks):

{
  "query": {
    "flagged": true,
    "due": "soon",
    "availability": "remaining",
    "include": ["notes"],
    "limit": 10
  }
}

Create a task (add_tasks):

{
  "items": [{
    "name": "Review Q3 roadmap",
    "parent": "Work Projects",
    "tags": ["Planning"],
    "dueDate": "2026-03-15T17:00:00",
    "flagged": true,
    "estimatedMinutes": 30,
    "note": "Focus on v1.3-v1.5 milestones"
  }]
}

Edit with patch semantics (edit_tasks):

{
  "items": [{
    "id": "oRx3bL_UYq7",
    "dueDate": null,
    "actions": {
      "tags": {"add": ["Urgent"]},
      "move": {"ending": "Work Projects"}
    }
  }]
}

Patch semantics cheat sheet:

Input Meaning
Field omitted No change
Field set to null Clear the value
Field set to a value Update

🗺️ Roadmap

Version Focus
v1.0 Foundation — read tools, three-layer arch, test suite ✅
v1.1 Performance — SQLite caching, 30–60x speedup ✅
v1.2 Writes & Lookups — add/edit tasks, get-by-ID ✅
v1.2.1 Architectural Cleanup — contracts, service refactor, golden master tests ✅
v1.2.2 FastMCP v3 Migration ✅
v1.2.3 Repetition Rule Write Support ✅
v1.3 Read Tools — SQL filtering, list/count, 5 new tools ✅
v1.3.1 First-Class References — name resolution, $inbox, rich refs ✅
v1.3.2 Date Filtering — 7 dimensions, shortcuts, calendar math ✅
v1.3.3 Task Ordering — dotted notation, outline order ✅
v1.4 Response Shaping & Batch Processing ✅
v1.4.1 Task Properties & Subtree — presence flags, auto-complete, parallel/sequential, parent filter ✅
v1.4.2 UNTIL Format Hotfix — parser accepts RFC 5545 DATE form; builder aligns with OmniFocus UI ✅
v1.4.3 First-Run UX — welcome banners in bridge.js that frame OmniFocus's permission dialog with two-click instructions; startup log line ✅
v1.4.4 Batch Limit Increase — add_tasks / edit_tasks accept up to 150 items per call ✅
v1.5 Project Writes — add/edit projects, review marking
v1.6 UI & Perspectives — perspective switching, deep links
v1.7 Smart Perspective Content — perspective-aware response shapes
v1.8 Production Hardening — retry, crash recovery, serial execution

🔗 Links


📄 License

Proprietary — all rights reserved. Free to use, not to redistribute. License under review.

🤝 Contributing

See CONTRIBUTING.md for guidelines. In short: fork, branch, test, PR.

Release files for omnifocus-operator 1.4.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for omnifocus-operator 1.4.4
File Size Uploaded
omnifocus_operator-1.4.4.tar.gz 233.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for omnifocus-operator 1.4.4
File Interpreter ABI Platform
omnifocus_operator-1.4.4-py3-none-any.whl Python 3 none any Details

Total release size: 404.2 kB

Release files / omnifocus_operator-1.4.4.tar.gz

Download URL omnifocus_operator-1.4.4.tar.gz
Size 233.1 kB
Tags Source
SHA-256 checksum
How to use checksums
753b337bc462a3a4030270551cc1ae1308925c28a5ab9d453f23bf164976f855
BLAKE2b-256 checksum
How to use checksums
3d762c3e89ee071b6dc528162d1dedfb0021e973acc553e9fa439dca7c8fec19
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 28, 2026.

Transparency log

Release files / omnifocus_operator-1.4.4-py3-none-any.whl

Download URL omnifocus_operator-1.4.4-py3-none-any.whl
Size 171.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
117581b3cd84d486315a3cb45f9fe105358cdd225057d2095a3679c7d57e9134
BLAKE2b-256 checksum
How to use checksums
2af256d3a671ed6273f746034afc9056930daef2f7f533ceb42babab295500e5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 28, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.4.4 This release

2 release files

1.4.3

2 release files

1.4.2

2 release files

1.4.1

2 release files

1.4

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page