MCP Server for Things 3 integration - provides 48 tools for managing tasks, projects, areas, and tags in Things 3
Server defines 43 tools with consistent naming (verb_noun pattern) and tool annotations enabled. All tools have descriptions (10-200 chars, within baseline 34-392 range). Input schemas present for all tools with proper JSON Schema structure. Batch operations and checklist tools show good composition. No output schemas documented. Error handling and recovery guidance absent. Descriptions are functional but generic; many lack WHEN/WHY context needed for LLM selection.
Create a new area.
Add a checklist item to a to-do.
Create a new project.
Create a new tag.
Create a new to-do in Things 3.
Mark a to-do as completed or incomplete.
Complete multiple to-dos in a single batch operation.
Create multiple to-dos in a single batch operation.
No output schemas documented. LLMs cannot infer what fields to expect from tool responses, forcing them to guess at downstream field names and risk broken tool chains.
Batch operation schemas lack item structure details. 'create_todos_batch' accepts 'items' array but does not document the schema of each item object, forcing LLMs to infer field names.
No error handling or recovery guidance. Tools lack descriptions of failure modes, retryability, or actionable error messages. LLMs cannot self-correct on failures.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 63 | 2026-07-28+ | v2 |
Delete an area (moves to Trash).
Delete a checklist item from a to-do.
Delete a project (moves to Trash).
Delete a tag.
Delete a to-do (moves to Trash).
Delete multiple to-dos in a single batch operation.
Empty the Things 3 trash.
Get all to-dos in the Anytime list. Returns tasks available to do anytime.
Get all areas.
Get all checklist items for a to-do.
Get all to-dos in the Inbox. Returns tasks that haven't been scheduled or assigned to a project.
Get completed to-dos from the Logbook. Returns recently completed tasks.
Get all projects. Returns project names, notes, status, and to-do counts.
Get all projects in a specific area.
Get currently selected to-dos in Things 3.
Get all to-dos in the Someday list. Returns tasks deferred for the future.
Get all tags.
Get all to-dos scheduled for Today. Returns tasks due today or manually added to Today list.
Get all to-dos in a specific area.
Get all to-dos in a specific project.
Get all to-dos in the Upcoming list. Returns tasks scheduled for future dates.
Move a project to a different area.
Move a to-do to a different list or project.
Move multiple to-dos to a different list or project in a single batch operation.
Search for to-dos by name or notes content.
Show a list in Things 3 UI.
Show a project in Things 3 UI.
Open Things 3 quick entry dialog.
Show a to-do in Things 3 UI.
Update an existing area.
Update a checklist item in a to-do.
Update an existing project.
Update an existing tag.
Update an existing to-do.
Update multiple to-dos in a single batch operation.
Destructive operations lack confirmation or dry-run support. 'empty_trash' and batch delete tools have no safeguard against accidental execution by agents.
No pagination support on list tools. 'get_inbox', 'get_today', 'get_projects' lack limit/offset or cursor parameters, risking context window exhaustion with large result sets.