omnifocus-claude-extension
Health Warn
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 7 GitHub stars
Code Fail
- child_process — Shell command execution capability in build.js
- execSync — Synchronous shell command execution in build.js
- fs.rmSync — Destructive file system operation in build.js
- fs module — File system access in build.js
- rm -rf — Recursive force deletion command in package.json
- child_process — Shell command execution capability in src/server/index.js
- fs module — File system access in src/server/index.js
- fs module — File system access in test-manifests.js
- child_process — Shell command execution capability in test-server.js
- process.env — Environment variable access in test-server.js
- fs module — File system access in test-server.js
Permissions Pass
- Permissions — No dangerous permissions requested
This MCP server integrates OmniFocus with Claude Desktop on macOS, enabling AI-assisted task management, project tracking, and GTD workflows.
Security Assessment
Risk: Medium. The server inherently requires access to your OmniFocus tasks to function properly. However, the static analysis flags multiple code execution and file system warnings. The tool executes shell commands (child_process, execSync) and performs destructive file system operations (rm -rf) primarily within the build script and test files. This is standard behavior for a Node.js build process that compiles and cleans up a distribution package, rather than a malicious payload. No dangerous permissions are requested by the core application itself. There are no hardcoded secrets or outbound network requests to worry about.
Quality Assessment
Quality: Good. The repository is licensed under the permissive MIT standard and is actively maintained. The project has clear documentation, straightforward installation instructions, and detailed feature breakdowns. The primary concern is its low community visibility. With only 7 GitHub stars, the codebase has not been widely reviewed by external developers, meaning you are largely trusting the original author's implementation.
Verdict
Use with caution — while the codebase appears to be a standard build setup for a legitimate productivity tool, its low community visibility means it lacks broad peer review for potential security edge cases.
Omnifocus integration in Desktop Extension Format suitable for Claude Desktop on Mac
OmniFocus Claude Extension
A powerful OmniFocus integration for Claude Desktop that enables advanced task management using GTD (Getting Things Done) methodology.
Features
Core
- Add Tasks: Create tasks with notes, projects, due dates, defer dates, and flags
- Inbox Management: View and process tasks in your OmniFocus inbox
- Today's Tasks: See all tasks due today at a glance
- Complete Tasks: Mark tasks as complete by name
- Weekly Review: Get a comprehensive summary for your GTD weekly review
Advanced
- Search Tasks: Search across all projects, contexts, and notes
- Edit Tasks: Modify any task property including defer dates and tags
- Batch Task Creation: Create multiple tasks with subtasks in one command
- Recurring Tasks: Create tasks with daily, weekly, monthly, or custom repeat patterns
Tags
- List Tags: View all tags with hierarchy
- Create Tags: Create tags, optionally nested under a parent
- Delete Tags: Remove tags from OmniFocus
- Tag Tasks: Add or remove tags on existing tasks
- Tags on Creation: Specify tags when adding tasks, batch-creating tasks, or editing tasks
Views
- List Projects: View all active projects with task counts
- Deferred Tasks: See tasks that aren't available yet
- Flagged Tasks: Quick access to all flagged items
- Overdue Tasks: Track tasks past their due date
Requirements
- macOS 10.15 (Catalina) or later
- OmniFocus 3 or later
- Claude Desktop app
- Node.js 14+ (for development only)
Installation
Quick Install
- Download the latest
omnifocus-gtd.mcpbfrom the Releases page - Open Claude Desktop
- Navigate to Extensions settings
- Drag and drop the
.mcpbfile onto the Claude Desktop window - Restart Claude Desktop
- The first time you use an OmniFocus tool, macOS will prompt you to grant
nodepermission to control OmniFocus - click Allow
Build from Source
# Clone the repository
git clone https://github.com/geoffdavis/omnifocus-claude-extension.git
cd omnifocus-claude-extension
# Install dependencies
npm install
# Build the extension
npm run build
# The extension will be created at dist/omnifocus-gtd.mcpb
Usage Examples
Task Management
"Add task 'Review Q3 reports' due Friday to Work project, defer until Wednesday"
"Search for all tasks about 'budget'"
"Edit 'Team meeting' to be due tomorrow at 2pm"
"Complete the task about reviewing reports"
Batch Operations
"Create project plan: Research phase|-Literature review|-Market analysis|Development|-Prototype|-Testing|Launch"
Note: Use | to separate tasks and - prefix for subtasks
Recurring Tasks
"Create weekly recurring task 'Process inbox' due every Sunday"
"Add monthly recurring 'Review finances' on the 15th"
Tags
"List all my tags"
"Create a tag called 'Urgent'"
"Create a 'Home' tag under 'Locations'"
"Add tag 'Priority' to my 'Review reports' task"
"Remove tag 'Waiting' from 'Follow up with client'"
"Add task 'Fix login bug' with tags Priority, Computer"
"Edit 'Fix login bug' and set tags to Urgent, Computer"
Views and Reviews
"Show me my flagged tasks"
"List all overdue tasks"
"What tasks are deferred?"
"Show all projects with task counts"
"Give me a weekly review"
Available Commands
| Command | Description | Example |
|---|---|---|
add_task |
Add a task with full properties | "Add task to buy milk due tomorrow, defer until morning" |
search_tasks |
Search across all tasks | "Search for budget tasks" |
edit_task |
Modify existing task | "Change due date of 'Report' to Friday" |
batch_add_tasks |
Create multiple tasks | "Add tasks: Task1|Task2|-Subtask" |
create_recurring_task |
Set up repeating task | "Create daily task 'Review email'" |
list_inbox |
Show inbox tasks | "Show my inbox" |
today_tasks |
List due today | "What's due today?" |
list_projects |
Show all projects | "List projects with counts" |
list_deferred_tasks |
Show deferred items | "What tasks are deferred?" |
list_flagged_tasks |
Show flagged items | "Show flagged tasks" |
list_overdue_tasks |
Show overdue items | "What's overdue?" |
complete_task |
Mark as complete | "Complete budget review" |
weekly_review |
GTD weekly review | "Show weekly review" |
list_tags |
Show all tags with hierarchy | "List my tags" |
create_tag |
Create a new tag | "Create tag 'Urgent'" |
delete_tag |
Delete a tag | "Delete the 'Old' tag" |
add_tag_to_task |
Add a tag to a task | "Tag 'Report' with 'Priority'" |
remove_tag_from_task |
Remove a tag from a task | "Remove 'Waiting' tag from 'Report'" |
Development
Project Structure
omnifocus-claude-extension/
├── src/
│ ├── server/
│ │ └── index.js # MCP server (JSON-RPC 2.0)
│ ├── scripts/
│ │ ├── enhanced/ # Advanced AppleScript implementations
│ │ │ ├── search_tasks.applescript
│ │ │ ├── edit_task.applescript
│ │ │ ├── batch_add_tasks.applescript
│ │ │ ├── create_recurring_task.applescript
│ │ │ ├── list_projects.applescript
│ │ │ ├── list_deferred_tasks.applescript
│ │ │ ├── list_flagged_tasks.applescript
│ │ │ ├── list_overdue_tasks.applescript
│ │ │ ├── list_tags.applescript
│ │ │ ├── create_tag.applescript
│ │ │ ├── delete_tag.applescript
│ │ │ ├── add_tag_to_task.applescript
│ │ │ └── remove_tag_from_task.applescript
│ │ ├── add_task.applescript
│ │ ├── complete_task.applescript
│ │ ├── list_inbox.applescript
│ │ ├── today_tasks.applescript
│ │ └── weekly_review.applescript
│ └── manifest-template.json # MCPB v0.3 manifest template
├── build.js # Build script
├── dist/
│ └── omnifocus-gtd.mcpb # Built extension
└── tests/
Building
# Build the MCPB extension
npm run build
# Clean and rebuild
npm run rebuild
# Build and validate
npm run dev
# Run tests
npm test
# Validate the built extension
npm run validate
Adding New Tools
- Create AppleScript in
src/scripts/enhanced/ - Add tool definition to
src/server/index.js - Implement handler in the server's tool execution logic
- Test with
node test-server.js - Rebuild and validate:
npm run dev
Architecture
The extension uses a Model Context Protocol (MCP) server that:
- Receives commands from Claude Desktop via JSON-RPC 2.0 over stdio
- Routes to the appropriate AppleScript file
- Executes AppleScript via
osascriptwith proper parameter handling - Returns formatted results to Claude
Troubleshooting
"Not authorized to send Apple events to OmniFocus" (error -1743)
This is the most common issue. Claude Desktop runs the extension via node, which needs macOS Automation permission for OmniFocus.
First install: macOS should show a permission dialog the first time you use an OmniFocus tool. Click Allow.
If the dialog doesn't appear or you accidentally denied it:
- Reset Apple Events permissions:
tccutil reset AppleEvents - Restart Claude Desktop
- Use any OmniFocus tool - the permission dialog should appear
- Click Allow
You can verify the permission in System Settings > Privacy & Security > Automation - look for node with OmniFocus enabled.
Extension Not Loading
- Check Claude Desktop logs:
~/Library/Logs/Claude/ - Ensure OmniFocus is installed and running
- Try reinstalling the extension
Tasks Not Appearing
- Ensure OmniFocus default document is open
- Check that you're not in a filtered view
Common Issues and Solutions
| Issue | Solution |
|---|---|
| "Not authorized" (-1743) | Run tccutil reset AppleEvents and restart Claude Desktop |
| "OmniFocus not found" | Ensure OmniFocus is in /Applications |
| "No tasks found" | Check search terms and task availability |
| "Multiple matches" | Be more specific in task names |
| "Cannot create recurring" | Ensure OmniFocus Pro features are available |
Security
This extension:
- Only reads and writes to OmniFocus via AppleScript
- Does not store or transmit personal data
- Runs entirely locally on your machine
- Requires explicit user permission for automation
- Open source for full transparency
License
MIT License - see LICENSE file for details
Acknowledgments
- OmniFocus by The Omni Group
- Claude Desktop by Anthropic
- GTD methodology by David Allen
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found