codex-omnifocus-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CODEX_OMNIFOCUS_AUDIT_DIR | No | Override the audit log directory. Defaults to ~/.codex/codex-omnifocus-mcp/audit/ |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| resources | {
"listChanged": true
} |
| completions | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| dump_databaseA | Gets the current state of your OmniFocus database. Prefer query_omnifocus or filter_tasks for targeted lookups. |
| add_omnifocus_taskA | Create a NEW task in OmniFocus. Search first when a matching task may already exist; move/edit existing tasks instead of duplicating them. |
| add_projectC | Add a new project to OmniFocus |
| remove_itemA | Remove a task or project from OmniFocus. Prefer ID over name for destructive operations. |
| edit_itemB | Edit an existing task or project in OmniFocus. Also supports moving tasks via project, parent task, or inbox move fields. |
| move_taskA | Move an existing task to a project, parent task, or inbox. Prefer task ID and destination IDs when available. |
| batch_add_itemsA | Add multiple tasks or projects to OmniFocus in a single operation |
| batch_remove_itemsA | Remove multiple tasks or projects from OmniFocus in a single operation. Prefer IDs for destructive batch operations. |
| get_task_by_idA | Get information about a specific task by ID or name, including attachment metadata when available. |
| read_task_attachmentA | Read a task attachment reported by get_task_by_id. Images are returned as MCP image content when possible. |
| get_today_completed_tasksB | Get tasks completed today - view today's accomplishments |
| get_inbox_tasksC | Get tasks from OmniFocus inbox perspective |
| get_flagged_tasksA | Get flagged tasks from OmniFocus with optional project filtering |
| get_forecast_tasksA | Get tasks from OmniFocus forecast perspective (due/deferred tasks in date range) |
| get_tasks_by_tagA | Get tasks filtered by OmniFocus tags. Use this for tag names, not custom perspective names. |
| filter_tasksB | Advanced task filtering with unlimited perspective combinations - status, dates, projects, tags, search, and more |
| list_custom_perspectivesB | List all custom perspectives defined in OmniFocus |
| get_custom_perspective_tasksA | Get tasks from a specific OmniFocus custom perspective by name. Use when the user refers to a custom view, not a tag. |
| query_omnifocusA | Efficiently query OmniFocus database with filters, fields, sorting, limits, and summaries. Prefer this over dump_database for targeted lookups. |
| list_tagsA | List all tags in OmniFocus with their hierarchy. Useful before creating or editing tagged tasks. |
| create_tagA | Create a new tag in OmniFocus, optionally nested under an existing parent tag. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| inbox | Current OmniFocus inbox items |
| today | Today's agenda — tasks due today, planned for today, and overdue items |
| flagged | All flagged OmniFocus items |
| stats | Quick OmniFocus database statistics overview |
TDQS
Scored across 21 tools
Most tools have distinct purposes, with clear descriptions that guide selection (e.g., get_custom_perspective_tasks vs get_tasks_by_tag). However, the large number of retrieval tools (filter_tasks, query_omnifocus, dump_database, multiple get_*) may cause occasional confusion despite differentiating texts.
Predominantly verb_noun snake_case pattern is used (e.g., add_project, filter_tasks, list_tags). Minor inconsistencies exist: 'add_omnifocus_task' vs 'add_project' (one includes product name), 'create_tag' vs 'add_project' (different verbs), and 'edit_item'/'move_task' are slightly vague but acceptable.
21 tools is well-scoped for an OmniFocus integration, covering creation, retrieval, modification, and deletion across tasks, projects, tags, and perspectives. Each tool serves a clear purpose without feeling excessive.
Tool surface covers most core workflows: CRUD for tasks/projects, batch operations, diverse retrieval, and attachment reading. However, tag management is incomplete – only create_tag and list_tags exist, lacking update or delete operations, which is a notable gap.