things3-mcp-server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@things3-mcp-serverlist my inbox items"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
things3-mcp-server
MCP server for Things 3 on macOS. Read and write to-dos, lists, areas and projects — so an agent can drive the same task workflows a human does in Things (triage Today, log completed work, file new tasks, reschedule).
Built for the KI-OS workflow: it replaces the ad-hoc AppleScript snippets used
for /review, the purchase-decision framework and the loop↔Things sync with a
proper tool surface.
How it works
All access goes through AppleScript (osascript), invoked with an
on run argv handler so user-provided values (task titles, notes, tags) are
passed as real arguments — never interpolated into the script, so there is no
injection risk. No external Python dependency beyond the MCP SDK; nothing reads
the Things SQLite database directly, which keeps writes safe and avoids schema
coupling.
Requires the Things 3 app to be installed and running. On first use macOS will ask to grant Automation permission to control Things 3 — approve it for the host process (Claude / your terminal).
Related MCP server: Things MCP
Tools
Tool | Kind | Purpose |
| read | To-dos in a list / area / project |
| read | Everything in the Today list |
| read | Everything in the Inbox |
| read | Recently completed to-dos (Logbook) |
| read | Find to-dos by name substring |
| read | A single to-do by id |
| read | All areas |
| read | Projects (optionally within an area) |
| read | All tag names |
| write | Create a to-do |
| write | Complete open to-do(s) by name or id |
| write | Cancel open to-do(s) — reversible, no delete |
| write | Update the first matching open to-do |
| write | Append tags without dropping existing ones |
Write tools accept either todo_id (exact, safest — e.g. an id from
create_todo) or a name query (exact=True for an exact match instead of a
substring).
Todo objects carry: id, name, status, tags, due (deadline, ISO),
when (scheduled/activation date, ISO), project, area, completion (ISO),
notes. Dates are YYYY-MM-DD strings; when accepts today, tomorrow,
anytime, someday or an ISO date.
Install
cd ~/workspace/things3-mcp-server
python3 -m venv .venv
.venv/bin/pip install -e .Register with Claude Code (user scope)
claude mcp add things3 --scope user -- \
~/workspace/things3-mcp-server/.venv/bin/things3-mcp-serverDesign note
The MCP stays a generic Things wrapper. Domain semantics — e.g. the ADHS
48h purchase-decision rule (48h-Liste tag, +2 days, then Spontankauf +7) —
live in the KI-OS skills, not here. update_todo(query, tags=..., move_to_list="Anytime")
is exactly the primitive the 48h→Spontankauf transition needs.
Scope / non-goals
The interactive "Einkäufe ADHS" Shortcut is deliberately not wrapped (it needs UI dialogs and stays manual).
No delete tool by design —
cancel_todo(reversible) covers "drop this task" (e.g. a rejected purchase decision); hard deletion is intentionally left out.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Schimmilab/things3-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server