add_taskLABSCO SUMMARY
Grant the two macOS permissions first, then it just works.
The task tools are the ordinary part; the reason to install this is the second half of the list — bulk tag standardisation, duplicate detection and weekly review generation over a Things database that has drifted for years. Everything routes through AppleScript, so the client needs Accessibility and Automation rights before a single call succeeds.
What it is
A Ruby MCP server that talks to Things 3 over AppleScript. Your assistant asks in words, the server generates the AppleScript, Things 3 does the work. It is macOS-only, because Things 3 is.
What you get
- Everyday task work:
add_task,list_tasks,update_task,complete_task,move_task,search_tasks,list_projects - Dates written the way you say them — "next Friday", "in 3 days" — parsed by the Chronic gem, with
parse_dateto check what a phrase resolves to before you commit - Bulk operations across many tasks at once:
bulk_create_tasks,bulk_update_tasks,bulk_move_tasks,bulk_tag_operations,bulk_import_tasks - Reviews and reporting:
weekly_review,project_status_report,productivity_insights,next_week_planning - Database hygiene:
find_duplicate_tasks,standardize_tags,cleanup_orphaned_tasks,cleanup_stale_tasks,analyze_project_health,organization_score - The README counts 33 tools in total, grouped into those categories
Requirements
macOS with Things 3 installed and running, Ruby 3.0.0 or higher, and bundle install in the cloned repo. Point your client at the things3-mcp-server executable by absolute path. macOS will ask for two permissions the first time: add your MCP client under Security & Privacy → Privacy → Accessibility, and enable Things3 for it under Privacy → Automation. Restart the client after granting them or calls come back as permission denied. AppleScript operations time out at 30 seconds, so keep bulk batches modest.
Setup effort
Build from source — git clone https://github.com/mattsafaii/things3-mcp-ruby.git
USE CASES
Capturing a task the way you would say it out loud
"Finish the quarterly report, Work project, due next Friday, tag urgent" becomes one call with the date parsed for you.
Running a weekly review without opening the app
Generate the review across completed, overdue, upcoming and projects, then plan the coming week against it.
Cleaning up years of inconsistent tags and stray tasks
Find duplicates, merge near-identical tags to one spelling, and file tasks that never got a project or area.
34 tools
Listed in project docs. Your client may show a different list.
list_taskslist_projectsupdate_taskcomplete_taskdelete_taskmove_tasksearch_tasksadd_task_with_planning_noteslist_tasks_by_date_rangesnooze_taskparse_datefilter_tasksquick_filterssaved_filtersweekly_reviewproject_status_reportproductivity_insightsnext_week_planningreview_templatesbulk_create_tasksbulk_update_tasksbulk_move_tasksbulk_tag_operationsbulk_complete_tasksbulk_import_taskscleanup_orphaned_tasksfind_duplicate_tasksstandardize_tagscleanup_stale_tasksanalyze_project_healthfix_broken_referencesorganization_scoretask_templatesBEFORE YOU INSTALL
What to know first
Tools you get
34 tools named in the project's documentation. The documentation's heading says 33 tools and another passage says 30+, but the list itself names 34.
Requires
Ruby 3.0.0 or later
Where it runs
All 4 documented clients run the server on your machine.
INSTALLATION
Connect your client
You clone this one yourself.
Server setup
Clone the repository
git clone https://github.com/mattsafaii/things3-mcp-ruby.git
cd things3-mcp-rubyInstall dependencies
bundle installRun the MCP server
./things3-mcp-serverMCP Clients
Claude Desktop, Continue
{
"mcpServers": {
"things3": {
"command": "<YOUR_PATH_TO_THINGS3_MCP_RUBY_THINGS3>",
"args": []
}
}
}Cursor
{
"mcpServers": {
"Things3": {
"command": "<YOUR_PATH_TO_THINGS3_MCP_RUBY_THINGS3>",
"args": []
}
}
}Any MCP client
{
"mcpServers": {
"things3": {
"command": "<YOUR_PATH_TO_THINGS3_MCP_RUBY_THINGS3>",
"args": [],
"env": {
"PATH": "/usr/local/bin:/usr/bin:/bin"
}
}
}
}