add_area
Create a new Area in Things 3
Areas are top-level containers in Things 3 (e.g. "Work", "Personal", "Backlog"). The Things URL scheme cannot create Areas, so this uses AppleScript.
Read every Things 3 list, search across them, and create or reschedule to-dos, projects and areas without leaving the conversation.
LABSCO SUMMARY
The combination that earns its place is search_advanced plus bulk_update_todos: find every stale inbox item by tag, area or creation window, then move, reschedule or complete the whole set in one call. Two things to plan around — the writes go through the Things URL scheme, so bulk changes need the auth token enabled first, and everything reads and writes the local database, which means the Mac running Things is the only place this works.
A read-and-write surface over the Things 3 database on your Mac. Reads come straight from the local database; writes go through the Things URL scheme, with Areas handled over AppleScript because the URL scheme has no command for them.
macOS with Things 3 installed and opened at least once, and Enable Things URLs switched on under Things → Settings → General. It runs as uvx things-mcp, which needs uv (brew install uv). bulk_update_todos additionally needs the Things auth token that the same Enable Things URLs panel manages; the server reads it itself. Default transport is stdio; setting THINGS_MCP_TRANSPORT=http switches it to HTTP, with THINGS_MCP_HOST and THINGS_MCP_PORT defaulting to 127.0.0.1 and 8000.
One command — uvx things-mcp
USE CASES
Pull the lists that matter, find the items that have not moved in weeks, then apply one change — new list, new date, or completed — across all of them at once.
Create the to-do with notes, tags, a deadline and the checklist items in a single call, scheduled with a keyword, a date, or a date and time for a reminder.
Get the usage count per tag, ask for only the unused ones, and look at what still carries the tags you want gone before you strip them.
Create the area if it does not exist, then the project with its to-dos, notes and deadline underneath it.
Read the Logbook over a look-back window and the recently created items next to it, so completions and new arrivals are visible in the same view.
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
add_areaCreate a new Area in Things 3
Areas are top-level containers in Things 3 (e.g. "Work", "Personal", "Backlog"). The Things URL scheme cannot create Areas, so this uses AppleScript.
add_projectCreate a new project in Things
add_todoCreate a new todo in Things
bulk_update_todosApply the same change to many to-dos in a single Things round-trip.
Use for weekly-review style operations — e.g. "move every grocery item in my inbox to Shopping List", "tag this batch with 'next-quarter'", "complete all of these". One URL invocation replaces N sequential update_todo calls, which makes 20-task moves feel instant instead of taking minutes.
All non-None parameters apply to every id in 'ids'. For per-item changes use update_todo individually.
get_anytimeGet todos from Anytime list
get_areasGet all areas from Things
get_headingsGet headings from Things
get_inboxGet todos from Inbox
get_logbookGet completed todos from Logbook, defaults to last 7 days
get_projectsGet all projects from Things
get_recentGet recently created items
get_somedayGet todos from Someday list, including tasks in Someday projects
get_tag_usageReport how many items use each tag, sorted by usage (highest first).
Useful for cleaning up tags that accumulate over time. Identify rarely-used or unused tags first; then either remove them from any remaining items (via update_todo's tags parameter) or delete the tag manually in Things — the URL scheme does not support tag deletion or renaming.
get_tagged_itemsGet items with a specific tag
get_tagsGet all tags
get_todayGet todos due today
get_todosGet todos from Things, optionally filtered by project
Returns both human-readable text and structured JSON (the raw todo dicts plus pagination metadata) so MCP clients can consume either form.
get_trashGet trashed todos
get_upcomingGet upcoming todos
search_advancedAdvanced todo search with multiple filters
search_itemsSearch for items in Things
search_todosSearch todos by title or notes
show_itemShow a specific item or list in Things
update_areaUpdate an existing Area in Things 3 (rename and/or set tags)
The Things URL scheme has no area operations, so this uses AppleScript. Only the fields you provide are changed.
Note: there is no delete_area tool by design — deleting an Area in Things also deletes every project it contains, which is destructive and cannot be undone. Areas can be created, read, and updated here, but not deleted.
update_projectUpdate an existing project in Things
update_todoUpdate an existing todo in Things
BEFORE YOU INSTALL
26 tools when we connected. The documentation's tool list omits get-headings, which it mentions only in the pagination notes. Tools are called with underscores, such as get_tagged_items, not the documented hyphenated names, and there is no tool to delete an area.
CONTEXT COST
Rated by the size of the 26 tool definitions that ride along on every turn, not by how many there are
INSTALLATION
uvx things-mcp{
"mcpServers": {
"things": {
"command": "uvx",
"args": [
"things-mcp"
]
}
}
}claude mcp add-json things '{"command":"uvx","args":["things-mcp"]}'