BjoernSchotte/mcp-omnifocus
If you are the rightful owner of mcp-omnifocus and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The OmniFocus MCP Server is a Model Context Protocol server that allows AI assistants to interact with OmniFocus task management application on macOS using natural language commands.
get_tasks
Retrieve tasks based on specified criteria.
create_task
Create a new task with specified attributes.
update_task
Modify an existing task.
complete_task
Mark a task as complete.
delete_task
Delete a specified task.
get_projects
Retrieve projects and their structure.
create_project
Create a new project.
update_project
Modify an existing project.
get_tags
Retrieve available tags.
create_tag
Create a new tag.
check_omnifocus_status
Check if OmniFocus is running.
get_forecast
Get tasks due in the coming days.
OmniFocus MCP Server
An MCP (Model Context Protocol) server implementation that provides programmatic access to the OmniFocus task management application on macOS. This server enables AI assistants to interact with a user's OmniFocus data through natural language commands.
Features
- Retrieve tasks based on various criteria (project, tag, due date, etc.)
- Create, modify, and complete tasks
- Manage projects and tags
- Support for TaskPaper format import/export
- Daily overviews and summaries
- Advanced filtering and querying capabilities
- Locale-independent date handling for international users
- Docker containerization for flexible deployment
- Claude Desktop integration for natural language task management
Requirements
- macOS (latest version recommended)
- Node.js (v18 or later)
- OmniFocus for Mac (latest version recommended)
- MCP SDK
Installation
-
Clone the repository:
git clone https://github.com/yourusername/omnifocus-mcp-server.git cd omnifocus-mcp-server
-
Install dependencies:
npm install
-
Build the project:
npm run build
Configuration
Standard Configuration
Add the following to your MCP settings file:
{
"mcpServers": {
"omnifocus": {
"command": "node",
"args": ["/path/to/omnifocus-mcp-server/build/index.js"],
"env": {},
"disabled": false,
"autoApprove": []
}
}
}
Claude Desktop Configuration
For Claude Desktop integration, use:
{
"mcpServers": {
"omnifocus": {
"command": "node",
"args": ["/path/to/omnifocus-mcp-server/scripts/real-mcp-server.js"],
"env": {},
"disabled": false,
"autoApprove": []
}
}
}
You can use the provided installation script for automatic setup:
./scripts/install-claude-desktop.sh
Docker Configuration
For Docker deployment, use:
{
"mcpServers": {
"omnifocus": {
"command": "docker",
"args": ["exec", "-i", "omnifocus-mcp", "node", "/app/build/index.js"],
"env": {},
"disabled": false,
"autoApprove": []
}
}
}
Usage
The OmniFocus MCP Server provides the following tools and resources:
Tools
get_tasks
: Retrieve tasks based on specified criteriacreate_task
: Create a new task with specified attributesupdate_task
: Modify an existing taskcomplete_task
: Mark a task as completedelete_task
: Delete a specified taskget_projects
: Retrieve projects and their structurecreate_project
: Create a new projectupdate_project
: Modify an existing projectget_tags
: Retrieve available tagscreate_tag
: Create a new tagcheck_omnifocus_status
: Check if OmniFocus is runningget_forecast
: Get tasks due in the coming days
Resources
omnifocus://tasks/{id}
: Access specific task detailsomnifocus://projects/{id}
: Access specific project detailsomnifocus://tags/{id}
: Access specific tag detailsomnifocus://perspectives/{id}
: Access specific perspective detailsomnifocus://daily
: Access daily task summaryomnifocus://forecast
: Access forecast view dataomnifocus://flagged
: Access flagged itemsomnifocus://search?q={query}
: Search tasks with a query stringomnifocus://due/{date}
: Access tasks due on a specific date
Date Handling
The OmniFocus MCP Server includes robust locale-independent date handling:
- All dates use ISO format (YYYY-MM-DD) in the API
- Dates are correctly interpreted regardless of system locale
- Reliable date handling for due dates and defer dates
- Comprehensive error handling for date parsing failures
For more details, see the .
Development
Project Structure
omnifocus-mcp-server/
βββ src/ # Source code
β βββ index.ts # Entry point
β βββ server.ts # Server implementation
β βββ tools/ # Tool implementations
β βββ resources/ # Resource implementations
β βββ applescript/ # AppleScript utilities
β βββ utils/ # Utility functions
β β βββ dateUtils.js # Date handling utilities
β βββ types/ # TypeScript type definitions
βββ build/ # Compiled JavaScript
βββ tests/ # Test files
βββ scripts/ # Utility scripts
β βββ real-mcp-server.js # Claude Desktop integration
β βββ test-date-utils.js # Date utilities testing
β βββ ... # Other utility scripts
βββ docs/ # Documentation
βββ docker/ # Docker configuration
βββ tsconfig.json # TypeScript configuration
βββ package.json # Project metadata and dependencies
βββ README.md # Project documentation
Development Workflow
- Code in TypeScript
- Compile with
npm run build
- Run with
npm start
- Test with
npm test
- Lint with
npm run lint
Docker Support
Docker support is fully implemented. See for detailed instructions on running the OmniFocus MCP Server in a Docker container.
Claude Desktop Integration
The OmniFocus MCP Server includes special integration with Claude Desktop. See for detailed instructions.
License
This project is licensed under the MIT License - see the file for details.
Copyright (c) 2025 BjΓΆrn Schotte