Things MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| THINGS_MCP_READ_ONLY | No | Set to 1 to block all writes and run in read-only mode. Remove the setting to enable editing. | |
| THINGS_MCP_METRICS_DIR | No | Set to a private data directory to enable optional local aggregate counters. They store tool names and success/failure counts, not task content or identifiers. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| things_healthA | Check local Things availability, server identity, read-only mode, and tracking policy. |
| things_list_itemsA | Read a bounded page of task summaries, projects, or areas. Notes are omitted. Filter tasks by list, project_id, area_id or title query. Use returned IDs for edits. |
| things_get_taskA | Read one task by exact ID, including notes (capped at 10,000 characters) and modification timestamp. |
| things_create_taskA | Create one task in Inbox, or a specified project/area, and read it back. Do not retry an ambiguous failure without searching for the created task. |
| things_update_taskA | Update specified title/notes/deadline/tags of an exact task ID and verify each field. Notes and tags replace existing values. expected_modified_at guards against stale edits. Deadlines use YYYY-MM-DD; clearing deadlines is outside v0.1. |
| things_move_taskA | Move a task to a project/area by ID or Inbox/Today/Anytime/Someday. Verify destination membership. Scheduling is separate. |
| things_schedule_taskB | Set a task start date, separately from its deadline, in local macOS calendar time (YYYY-MM-DD). Verify it through the activation date or Today membership. |
| things_complete_taskA | Mark one exact task ID complete and read back its completed status. Already completed tasks are left as-is. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 8 tools
Each tool targets a distinct operation: create, list, get, update, move, schedule, complete, and health. The boundaries between update (fields), move (container), and schedule (start date) are explicitly clarified in the descriptions, leaving no meaningful overlap.
All tools use the consistent 'things_' prefix and a verb_noun pattern (create_task, list_items, get_task, etc.). The only deviation is 'things_health', which lacks a verb, but it is still clearly readable and predictable.
Eight tools is well-scoped for a task management server, covering the essential lifecycle operations without bloat. Each tool earns its place and the set feels complete for typical task workflows.
The surface covers create, read, update, move, schedule, complete, and health, which handles most task operations. However, there is no delete or reopen/uncomplete tool, and project/area creation is absent, which are minor but notable gaps in the lifecycle.