Connect AI tools to OmniFocus on macOS to find, review, and safely update tasks and projects.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent — or use 1-click editor setup below.
💡 Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
FocusRelay is a fast, native Swift MCP server and CLI that helps AI assistants read and safely update OmniFocus using documented OmniFocus APIs.
Install with Homebrew · See what it can do · Star FocusRelay · Contribute

Ask about the work already in OmniFocus, review the answer, and make approved changes without clicking through long task lists.
FocusRelay is designed for targeted questions and compact answers, so the assistant does not need your entire OmniFocus database for routine requests.
Try prompts like:
In clients that expose MCP server prompts, select process_inbox. In OpenCode,
run /focusrelay:process_inbox to start the guided workflow.
CLI-based agents can retrieve the exact same instructions with
focusrelay workflow get process_inbox; use focusrelay workflow list to
discover available workflows without loading their full text.
These workflows were tested with multiple MCP-capable models in OpenCode. Updates target stable OmniFocus IDs and can verify the saved result. If names are duplicated, ask to see the candidates before changing anything.
The current release can:
The current release updates existing tasks and projects. Creating or deleting items is not supported; creation is tracked in #82 and #83.
FocusRelay exposes nine model-facing tools: seven read tools plus edit_tasks
and edit_projects for supported changes. Combining seven editing tools into
two reduced the full catalog from 14 tools to 9 and cut context usage by
7–13% in controlled model tests, leaving more room for the user's actual work.
Internal diagnostics stay in the CLI, count commands avoid returning long item
lists, and field selection keeps responses compact.
FocusRelay is compiled as native Swift and installed with Homebrew, with no Node.js or Python runtime in the request path. Single-pass filtering and early-stop pagination keep focused inbox reads near one second in testing at thousands-of-tasks scale. The same core powers a CLI for precise, low-context queries.
The Swift server dispatches work to a lightweight bridge plug-in that runs inside OmniFocus’s Omni Automation context. It uses documented APIs and native statuses, keeping results aligned with OmniFocus without reading its private database.
Edit tools target stable IDs and support previews, per-item results, compact return fields, and optional verification. A failed save, update, or verification is reported as a failure—not success.
FocusRelay handles OmniFocus work in order, tells assistants to wait for each update, and reports overload clearly instead of letting requests collide. When an MCP client disconnects, its FocusRelay process exits cleanly rather than remaining in the background.
See the latest release notes for the user-facing changes and upgrade requirements.
FocusRelay runs locally on your Mac. Its Swift server communicates on-device with a bridge plug-in that accesses OmniFocus through documented APIs. FocusRelay has no hosted cloud service and does not send your OmniFocus data to a FocusRelay-operated service.
Your MCP client and chosen AI model may transmit tool inputs and results under their own privacy terms. Review those settings before using FocusRelay with sensitive data.
Requirements:
Homebrew 6 requires explicit trust for formulae from non-official taps. Trust only the FocusRelay formula, then install it:
Formula-specific trust authorizes FocusRelay without trusting every current or future formula in the tap. See Homebrew’s Tap Trust documentation for details.
Run the installed setup command:
It finds the Homebrew-bundled plug-in, verifies that its version matches the binary, detects every supported OmniFocus plug-in folder, and previews the source and destinations before asking permission to copy anything. Existing plug-ins remain in place until their replacement has been copied successfully. Rerunning setup reports copies that are already current.
Setup also prints the client-neutral MCP command and arguments. Add
--client claude-code, --client codex, or --client opencode for a known
client example; FocusRelay prints the configuration but does not edit it.
For automation, review the same plan first and then opt in explicitly:
Building from source? Continue using ./scripts/install-plugin.sh; it is a
thin development entry point for this same Swift setup implementation.
Quit OmniFocus completely and reopen it so the updated plugin is loaded:
FocusRelay currently supports terminal-based MCP clients: Claude Code, OpenCode, Codex CLI, and other clients launched from a terminal. Desktop applications such as Claude Desktop and ChatGPT's desktop app are not yet supported: macOS restricts their access to the OmniFocus data FocusRelay relies on. Desktop-app support is tracked in #196.
Configure a local stdio MCP server with:
/opt/homebrew/bin/focusrelayserveClaude Code registers MCP servers from the command line, so no file editing is required:
--scope user makes FocusRelay available in every project on your Mac. Use
--scope project instead to share the server with collaborators through a
checked-in .mcp.json, or omit the flag to enable it only in the current
directory.
Confirm the server is registered and reachable:
FocusRelay should report ✔ Connected. Remove it later with
claude mcp remove --scope user focusrelay.
On the first query, OmniFocus asks whether to allow the automation. Choose Run Script. If the prompt is hidden, bring OmniFocus to the front.
After restarting OmniFocus, verify that its loaded plug-in matches the binary:
Then ask:
How many flagged items do I have in OmniFocus?
Download the latest binary and FocusRelayBridge.omnijs from
GitHub Releases, or build
on macOS 26 or later with the Swift 6.3.3 toolchain selected by the checked-in
.swift-version:
After installing the plugin, restart OmniFocus completely and run
focusrelay setup --check-readiness.
MCP lets compatible assistants discover FocusRelay and choose the right action. The CLI is useful for scripts, debugging, and agents that already have shell access.
The examples below target the current Homebrew release and source build.
No reviews yet — be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/focusrelay)<a href="https://allmcps.com/mcp/focusrelay"><img src="https://allmcps.com/api/badge/focusrelay?style=directory" alt="FocusRelay on AllMCPs" /></a>