MCP OmniFocus
# MCP OmniFocus
[](https://www.npmjs.com/package/mcp-omnifocus)
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.
## Installation
### Via npm (recommended)
```bash
npx mcp-omnifocus
```
### From source
```bash
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`:
```json
{
"mcpServers": {
"omnifocus": {
"command": "npx",
"args": ["mcp-omnifocus"]
}
}
}
```
Or if installed from source:
```json
{
"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.
TDQS
Scored across 7 tools
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.
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.
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.
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.