Production-grade infrastructure for AI agents. 46ms reads. 2,086 tests. Your tasks deserve a bridge that won't break under pressure.
The first one took 3 seconds to return your tasks. The second crashed silently when OmniFocus wasn't running. The third worked fine — until your agent tried to edit a task and got back nothing. No error. No feedback. Just silence and a broken conversation.
These projects are thin AppleScript wrappers. Flat scripts with no test coverage, no error handling, no awareness that an AI agent is on the other end. They work for demos. They break when you depend on them.
OmniFocus is where your work lives. The bridge to it deserves the same care.
Paste the config JSON into Claude Desktop. uvx downloads, isolates, and runs the server automatically — no install step.
OmniFocus will ask you to allow automation access on first launch. One click, never again.
"Show me my OmniFocus tasks." That's it. Full read/write access to your OmniFocus database.
Your agent shouldn't wait. At 46ms for a full database snapshot, it won't. We read OmniFocus's local SQLite database directly — no AppleScript, no OmniJS round-trips.
| Operation | Latency |
|---|---|
| Full task read | 38–40ms |
| Full snapshot (all tables) | 45–49ms |
| Filtered queries | 5.8–6.0ms |
| Task + tag joins | 5.1–6.0ms |
Benchmarked on a real database: 2,800+ tasks, 368 projects, 65 tags.
Most MCP servers return data. OmniFocus Operator returns data and teaches your agent to be better. Every response carries context that makes the next interaction smarter.
When an agent tries to add a tag that's already present, it learns to check first.
Edits to completed tasks go through — but the agent learns to pause before modifying finished work.
When an edit would change nothing, the agent learns patch semantics in context.
If startup fails, the server stays alive. Every tool call returns the error — visible to the agent, actionable by the user.
A task can be both overdue AND blocked. No information loss from a single-winner enum.
Four position modes give your agent pixel-perfect control over task order. No other OmniFocus MCP server can do this.
One sentence. Four position modes. Seven API calls.
MCP servers that crash silently leave your agent stranded. This one doesn't crash.
If startup fails, every tool call returns the error. No silent crashes. No mysterious timeouts. The agent sees what went wrong.
SQLite cache unavailable? The server falls back to the OmniJS bridge. Slower, but functional. Your agent never gets a dead connection.
If test code tries to access the live OmniFocus database, the factory raises a RuntimeError. Not a warning — a hard stop.
All read tools are idempotent. Write tools support tags, dates, flags, notes, estimated duration, task movement, repetition rules, and hierarchy properties (parallel/sequential, completes-with-children). List tools support filtering by parent subtree.
{
"items": [{
"name": "Review Q3 roadmap",
"parent": "pJKx9xL5beb",
"tags": ["Work", "Planning"],
"dueDate": "2026-03-15T17:00:00Z",
"flagged": true,
"estimatedMinutes": 30
}]
}
{
"items": [{
"id": "oRx3bL_UYq7",
"addTags": ["Urgent"],
"dueDate": null, // ← clears the date
"moveTo": {
"ending": "pJKx9xL5beb"
}
}]
}
| Input | Meaning |
|---|---|
| Field omitted | No change |
| null | Clear the value |
| A value | Update |
You don't need to understand the architecture to use it. But it's why the server is fast, reliable, and maintainable.
Other great projects exist. Here are the facts.
| Feature | OmniFocus Operator | themotionmachine | jqlts1 | deverman |
|---|---|---|---|---|
| Language | Python 3.12+ | TypeScript | TypeScript | Swift |
| Tools | 11 | 10 | 17 | 13 |
| Automated Tests | 2,086 | 0 | 12 | ~4 suites |
| Code Coverage | 97% | — | — | — |
| Read Latency | ~46ms | 1–3s | 1–3s | ~1s |
| Architecture | 3-layer | Flat | Flat | Multi-layer |
| Graceful Degradation | ✓ | — | — | — |
| Agent-First UX | ✓ | — | — | — |
2,558 tests across Python and JavaScript. Strict mypy with Pydantic plugin. Ruff linting across 9 rule categories. The build fails below 80% coverage.