A Model Context Protocol (MCP) server that integrates with OmniFocus to enable Claude (or other MCP-compatible AI assistants) to interact with your tasks and projects.
This MCP server creates a bridge between AI assistants (like Claude) and your OmniFocus task management system. It gives AI models the ability to view, create, edit, and remove tasks and projects in your OmniFocus database through natural language conversations. Some ways you could use it:
- Translate the PDF of a syllabus into a fully specificed project with tasks, tags, defer dates, and due dates.
- Turn a meeting transcript into a list of actions
- Create visualizations of your tasks, projects, and tags
- Process multiple tasks or projects in a single operation
- Bulk manage your OmniFocus items efficiently
- macOS with OmniFocus installed
- In Claude Desktop, add this MCP server to your configuration file at:
~/Library/Application Support/Claude/claude_desktop_config.json
- Add the following configuration:
{
"mcpServers": {
"omnifocus": {
"command": "npx",
"args": ["-y", "omnifocus-mcp"]
}
}
}
- Restart Claude Desktop
"I want every task to have an energy level tag. show me a list of all the tasks that don't have an energy level tag and your suggestions for what tag to add. I'll make any changes I think are appropriate. Then make the changes in OmniFocus."
"Ok, thanks for the detailed explanation of why the rule of law is important. Add a recurring task to my activism project that reminds me to call my representative weekly. Include a summary of this conversation in the notes field."
Get a summary of your current tasks and manage them conversationally:
"Show me all my flagged tasks due this week that don't mention "fish".
Extract action items from meeting transcripts, academic research articles, or notes:
"I'm pasting in the transcript from today's product meeting. Please analyze it and create tasks in OmniFocus for any action items assigned to me. Put them in my 'Product Development' project."
Manage multiple items efficiently:
"I have a list of 20 tasks from this meeting transcript. Please add them all to my 'Q2 Planning' project with appropriate tags and due dates."
The server currently provides these tools:
Gets the current state of your OmniFocus database.
Add a new task to OmniFocus.
Parameters:
-
name
: The name of the task -
projectName
: (Optional) The name of the project to add the task to -
note
: (Optional) Additional notes for the task -
dueDate
: (Optional) The due date of the task in ISO format -
deferDate
: (Optional) The defer date of the task in ISO format -
flagged
: (Optional) Whether the task is flagged or not -
estimatedMinutes
: (Optional) Estimated time to complete the task -
tags
: (Optional) Tags to assign to the task
Add a new project to OmniFocus.
Parameters:
-
name
: The name of the project -
folderName
: (Optional) The name of the folder to add the project to -
note
: (Optional) Additional notes for the project -
dueDate
: (Optional) The due date of the project in ISO format -
deferDate
: (Optional) The defer date of the project in ISO format -
flagged
: (Optional) Whether the project is flagged or not -
estimatedMinutes
: (Optional) Estimated time to complete the project -
tags
: (Optional) Tags to assign to the project -
sequential
: (Optional) Whether tasks in the project should be sequential
Remove a task or project from OmniFocus.
Parameters:
-
id
: (Optional) The ID of the task or project to remove -
name
: (Optional) The name of the task or project to remove -
itemType
: The type of item to remove ('task' or 'project')
Edit a task or project in OmniFocus.
Parameters:
-
id
: (Optional) The ID of the task or project to edit -
name
: (Optional) The name of the task or project to edit -
itemType
: The type of item to edit ('task' or 'project') - Various parameters for editing properties
Add multiple tasks or projects to OmniFocus in a single operation.
Parameters:
-
items
: Array of items to add, where each item can be:-
type
: The type of item ('task' or 'project') -
name
: The name of the item -
note
: (Optional) Additional notes -
dueDate
: (Optional) Due date in ISO format -
deferDate
: (Optional) Defer date in ISO format -
flagged
: (Optional) Whether the item is flagged -
estimatedMinutes
: (Optional) Estimated completion time -
tags
: (Optional) Array of tags -
projectName
: (Optional) For tasks: the project to add to -
folderName
: (Optional) For projects: the folder to add to -
sequential
: (Optional) For projects: whether tasks are sequential
-
Remove multiple tasks or projects from OmniFocus in a single operation.
Parameters:
-
items
: Array of items to remove, where each item can be:-
id
: (Optional) The ID of the item to remove -
name
: (Optional) The name of the item to remove -
itemType
: The type of item ('task' or 'project')
-
Documentation to follow.
This server uses AppleScript to communicate with OmniFocus, allowing it to interact with the application's native functionality. The server is built using the Model Context Protocol SDK, which provides a standardized way for AI models to interact with external tools and systems.
MIT
Contributions are welcome! Please feel free to submit a Pull Request.