Skip to main content
Glama
README.md
# MCP OmniFocus

[![npm version](https://img.shields.io/npm/v/mcp-omnifocus.svg)](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

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 issues