https://github.com/hellothisisflo/omnifocus-operator
An MCP server that exposes OmniFocus to AI agents via the Model Context Protocol (MCP).
https://github.com/hellothisisflo/omnifocus-operator
ai-agent anthropic automation claude llm mcp model-context-protocol omnifocus task-management
Last synced: about 1 month ago
JSON representation
An MCP server that exposes OmniFocus to AI agents via the Model Context Protocol (MCP).
- Host: GitHub
- URL: https://github.com/hellothisisflo/omnifocus-operator
- Owner: HelloThisIsFlo
- Created: 2026-02-21T14:18:27.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2026-04-24T00:16:36.000Z (about 1 month ago)
- Last Synced: 2026-04-24T02:25:21.055Z (about 1 month ago)
- Topics: ai-agent, anthropic, automation, claude, llm, mcp, model-context-protocol, omnifocus, task-management
- Language: Python
- Size: 10.5 MB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
Awesome Lists containing this project
README
# π― OmniFocus Operator
**The last OmniFocus MCP Server you'll ever need.**

[](https://pypi.org/project/omnifocus-operator/)



Production-grade MCP server exposing OmniFocus as structured task infrastructure for AI agents. Agent-first design, SQLite-cached performance, 2,558 tests.
### [**β See the full landing page**](https://hellothisisflo.github.io/omnifocus-operator) β features, architecture, benchmarks, and comparison
---
## π Quick Start
**Prerequisites:** macOS, OmniFocus 4, Python 3.12+
**Claude Desktop config** (`~/Library/Application Support/Claude/claude_desktop_config.json`):
```json
{
"mcpServers": {
"omnifocus-operator": {
"command": "uvx",
"args": ["omnifocus-operator"]
}
}
}
```
That's it. No install step β `uvx` downloads, isolates, and runs the server automatically.
**Or just ask your agent:**
> Set up the OmniFocus Operator MCP server for me β uvx omnifocus-operator
Development install (contributors)
```bash
git clone https://github.com/HelloThisIsFlo/omnifocus-operator.git
cd omnifocus-operator
uv sync
```
See [CONTRIBUTING.md](https://github.com/HelloThisIsFlo/omnifocus-operator/blob/main/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,558 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](https://hellothisisflo.github.io/omnifocus-operator) 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`):
```json
{
"query": {
"flagged": true,
"due": "soon",
"availability": "remaining",
"include": ["notes"],
"limit": 10
}
}
```
**Create a task** (`add_tasks`):
```json
{
"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`):
```json
{
"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.5** | Project Writes β add/edit projects, review marking |
| **v1.6** | UI & Perspectives β perspective switching, deep links |
| **v1.7** | Production Hardening β retry, crash recovery, serial execution |
---
## π Links
- π [Full Documentation](https://hellothisisflo.github.io/omnifocus-operator) β features, architecture, examples
- π¦ [PyPI](https://pypi.org/project/omnifocus-operator/) β package page
- π [Issues](https://github.com/HelloThisIsFlo/omnifocus-operator/issues)
- π¬ [Discussions](https://github.com/HelloThisIsFlo/omnifocus-operator/discussions)
---
## π License
Proprietary β all rights reserved. Free to use, not to redistribute. License under review.
## π€ Contributing
See [CONTRIBUTING.md](https://github.com/HelloThisIsFlo/omnifocus-operator/blob/main/CONTRIBUTING.md) for guidelines. In short: fork, branch, test, PR.