Things Cloud MCP

← Back to home

Documentation

Complete reference for all 23 tools available through the Things Cloud MCP server.

Read

10 tools
things_find_tasks
List tasks with optional filters. Default pending results exclude descendants of completed, canceled, or trashed containers to match Things app visibility.
ParameterTypeDescription
scheduleenuminbox, today, tonight, anytime, someday, upcoming
scheduled_beforestringYYYY-MM-DD
scheduled_afterstringYYYY-MM-DD
deadline_beforestringYYYY-MM-DD
deadline_afterstringYYYY-MM-DD
created_beforestringYYYY-MM-DD or RFC3339 with timezone
created_afterstringYYYY-MM-DD or RFC3339 with timezone
tagstringFilter by tag
areastringFilter by area
projectstringFilter by project
contains_textstringFilter by text in title or note
in_trashboolInclude trashed items (default false)
statusenumpending (default), completed, canceled
things_show_task
Show task details including checklist. Accepts UUID prefix.
ParameterTypeDescription
uuidrequiredstringTask UUID or prefix
things_show_project
Show project with headings and grouped tasks
ParameterTypeDescription
uuidrequiredstringProject UUID
statusenumFilter child tasks: pending (default), completed, canceled
things_find_projects
List projects with optional filters
ParameterTypeDescription
scheduleenuminbox, today, tonight, anytime, someday, upcoming
scheduled_beforestringYYYY-MM-DD
scheduled_afterstringYYYY-MM-DD
deadline_beforestringYYYY-MM-DD
deadline_afterstringYYYY-MM-DD
created_beforestringYYYY-MM-DD or RFC3339 with timezone
created_afterstringYYYY-MM-DD or RFC3339 with timezone
tagstringFilter by tag
areastringFilter by area
contains_textstringFilter by text in title or note
in_trashboolInclude trashed items (default false)
statusenumpending (default), completed, canceled
things_find_headings
List headings in a project
ParameterTypeDescription
project_uuidrequiredstringProject UUID
things_find_areas
List all areas
No parameters
things_find_tags
List all tags
No parameters
things_overview
Comprehensive active snapshot: tags, active area→project hierarchy, today's items (tasks & projects), and upcoming items. Descendants of inactive containers are excluded. Each item has a type field.
ParameterTypeDescription
lookahead_daysnumberDays ahead to scan for upcoming items (default: 7)
things_debug_raw
Show all raw wire-format fields of a task or project. Accepts a UUID prefix.
ParameterTypeDescription
uuidrequiredstringTask or project UUID, or unique prefix
things_diagnose
Run a read-only diagnostic against the account's authoritative history and fail-closed sync pipeline
No parameters

Create

5 tools
things_create_task
Create a task
ParameterTypeDescription
titlerequiredstringTask title
notestringTask notes
schedulestringtoday, tonight, anytime, someday, inbox, or YYYY-MM-DD (Upcoming, auto-moves to Today when due)
deadlinestringYYYY-MM-DD
project_uuidstringAssign to an active pending project; inactive projects are rejected
heading_uuidstringAssign to an active heading in an active pending project
area_uuidstringAssign to area
tagsstringComma-separated tag UUIDs
checkliststringComma-separated checklist items
reminder_datestringYYYY-MM-DD (use with reminder_time)
reminder_timestringHH:MM 24h (use with reminder_date)
recurrencestringdaily, weekly, weekly:mon,wed, monthly, monthly:15, monthly:last, yearly, every N days/weeks
things_create_project
Create a project
ParameterTypeDescription
titlerequiredstringProject title
notestringProject notes
schedulestringtoday, anytime (default), someday, or YYYY-MM-DD
deadlinestringYYYY-MM-DD
area_uuidstringAssign to area
tagsstringComma-separated tag UUIDs
reminder_datestringYYYY-MM-DD (use with reminder_time)
reminder_timestringHH:MM 24h (use with reminder_date)
recurrencestringdaily, weekly, weekly:mon,wed, monthly, monthly:15, monthly:last, yearly, every N days/weeks
things_create_heading
Create a heading in a project
ParameterTypeDescription
titlerequiredstringHeading title
project_uuidrequiredstringActive pending parent project UUID; inactive projects are rejected
things_create_area
Create an area
ParameterTypeDescription
namerequiredstringArea name
things_create_tag
Create a tag
ParameterTypeDescription
namerequiredstringTag name
shorthandstringShort name for the tag
parent_uuidstringParent tag UUID for nesting

Modify

5 tools
things_edit_item
Edit a task or project (only provided fields change). Completing a recurring task completes only the current instance; stopping recurrence requires explicit confirmation.
ParameterTypeDescription
uuidrequiredstringItem UUID
titlestringNew title
notestringNew notes; empty string clears them
schedulestringtoday, tonight, anytime, someday, inbox, or YYYY-MM-DD (Upcoming, auto-moves to Today when due)
deadlinestringYYYY-MM-DD, or "none" to clear
area_uuidstringMove to area
project_uuidstringMove to an active pending project; inactive projects are rejected
heading_uuidstringMove to an active heading in an active pending project
tagsstringComma-separated tag UUIDs; empty string clears them
reminder_datestringYYYY-MM-DD, or "none" to clear (use with reminder_time)
reminder_timestringHH:MM 24h (use with reminder_date)
recurrencestringdaily, weekly, monthly, yearly, etc. Use "none" to clear.
confirm_destructiveboolMust be true when recurrence is "none"
statusenumpending, completed, canceled, trashed, restored
things_edit_area
Rename an area
ParameterTypeDescription
uuidrequiredstringArea UUID
namerequiredstringNew area name
things_edit_tag
Edit a tag (name, shorthand, or parent)
ParameterTypeDescription
uuidrequiredstringTag UUID
namestringNew tag name
shorthandstringNew shorthand/abbreviation
parent_uuidstringNew parent tag UUID
things_delete_area
Permanently delete an area
ParameterTypeDescription
uuidrequiredstringArea UUID
confirmrequiredboolMust be true to confirm permanent deletion
things_delete_tag
Permanently delete a tag
ParameterTypeDescription
uuidrequiredstringTag UUID
confirmrequiredboolMust be true to confirm permanent deletion

Checklist

3 tools
things_add_checklist_item
Add a checklist item to a task
ParameterTypeDescription
task_uuidrequiredstringParent task UUID
titlerequiredstringChecklist item title
indexnumberSort position (default 0)
things_edit_checklist_item
Edit a checklist item (only provided fields change)
ParameterTypeDescription
uuidrequiredstringChecklist item UUID
titlestringNew title
indexnumberNew sort position
completedboolSet true to complete, false to mark pending
things_delete_checklist_item
Delete a checklist item
ParameterTypeDescription
uuidrequiredstringChecklist item UUID
confirmrequiredboolMust be true to confirm permanent deletion

Output Format

All 23 tools declare an MCP outputSchema. Successful calls return schema-validated structuredContent in a stable data envelope, plus an equivalent JSON text fallback for older clients:

{
  "data": {
    "uuid": "...",
    "title": "...",
    "note": "...",
    "status": "pending | completed | canceled",
    "schedule": "inbox | today | tonight | anytime | someday | upcoming",
    "scheduledDate": "YYYY-MM-DD",
    "deadlineDate": "YYYY-MM-DD",
    "creationDate": "YYYY-MM-DDTHH:MM:SSZ",
    "modificationDate": "YYYY-MM-DDTHH:MM:SSZ",
    "completionDate": "YYYY-MM-DDTHH:MM:SSZ",
    "areas": [{"uuid": "...", "name": "..."}],
    "project": {"uuid": "...", "name": "..."},
    "tags": [{"uuid": "...", "name": "..."}]
  }
}
Setup MCP with ChatGPT
Claude.ai
Claude Code
ChatGPT
Any MCP Client
Cursor
Windsurf
1
Open Customize → Connectors in Claude.
2
Click +, then choose Add custom connector.
3
Enter name: Things Cloud and URL: .
4
Click Add, then Connect and complete the Things Cloud sign-in. Enable it in a chat from + → Connectors.
1
Open Settings → Security and login and enable Developer mode.
2
Open Plugins from the sidebar and click Create app.
3
Use name: Things Cloud, connection: Server URL, URL: , and authentication: OAuth.
4
Acknowledge the unreviewed-server warning, click Create, and complete the Things Cloud sign-in.

Use these standard connection details in any MCP client that supports remote Streamable HTTP.

Server URL
TransportStreamable HTTP
AuthenticationOAuth 2.1 + PKCE
RegistrationDCR

Basic authentication remains available for legacy clients, but OAuth is recommended.