Let your AI agent
use Things 3.

Things Orchestrator is a small MCP server you run yourself. It lets Claude Code, Codex, Cursor, or Hermes manage your to-dos, even while your Mac is asleep.

8 tools

Three to read, four to write, and one to check receipts.

Mac optional

The server writes to Things Cloud. Your Mac picks up the changes the next time it syncs.

1 host

Your Things password is stored only on the server you run.

MIT license

Open source. It only updates when you install a new release.

Ask in plain language.

Changes sync to all your devices like any other edit in Things.

What's on today?

You have four to-dos today. Renew passport is due in three days.

things_view
Push the dentist call to next Monday.

Done. It's scheduled for Monday.

things_find → things_update
Called the landlord. Check it off.

Done. I checked it off in Admin.

things_find → things_complete

How it works

Things Cloud has no public API, so the server uses the same sync protocol as the Things apps and checks every change before reporting back.

  1. Your agent

    Gets a URL and a key, never your password.

  2. Your server

    Runs on a machine you choose and holds your login.

  3. Things Cloud

    Where your to-dos live.

  4. Your Mac

    Can stay asleep. Syncs when it wakes.

Where the server runs

Your Mac

Easiest to try. Works only while the Mac is awake.

Private server Recommended

On your Tailscale network. Nothing on the public internet.

Public server

Your own domain over HTTPS, for hosted agents.

Eight tools, and none of them delete.

Every write is confirmed in Things Cloud before your agent gets a receipt. Trashed items can be restored.

Read

things_viewReads a list, like Today or Inbox.
things_findSearches to-dos and projects.
things_getReads items by ID.

Write

things_captureAdds to-dos and projects.
things_updateEdits dates, notes, tags, and more.
things_completeChecks items off.
things_trashMoves items to the Trash.

Check

things_receiptShows what a write changed.

Set up the server,
then connect your agent.

# 1  Install a pinned release
$ uv tool install \
    "git+https://github.com/matsvarn/things3-orchestrator.git@v0.12.0"

# 2  Sign in. Your password stays on this machine.
$ things-orchestrator login --url https://MACHINE.TAILNET.ts.net \
    --timezone Europe/Berlin

# 3  Run it as a service, reachable only on your tailnet
$ things-orchestrator service install
$ sudo tailscale serve --bg 8787

# 4  Check that it works
$ things-orchestrator doctor --wait --url https://MACHINE.TAILNET.ts.net

mcp: ok (http://127.0.0.1:8787/mcp; 8 tools; commit 96e163ee9698)
mcp: ok (https://MACHINE.TAILNET.ts.net/mcp; 8 tools; commit 96e163ee9698)
service: current
# 5  On the host, print your client's config
$ things-orchestrator print-config \
    --client claude-code --show-secrets

# Then run the printed command where Claude Code runs
claude mcp add --transport http things \
  https://MACHINE.TAILNET.ts.net/mcp \
  --header 'Authorization: Bearer <mcp_token>'
Done when your agent lists eight things_ tools.

This is an unofficial integration.

It uses a reverse-engineered protocol that Cultured Code hasn't approved. It could stop working at any time.

Read the trust notes →

Connect your agent
to Things.