things3-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_todosB | List Things 3 to-dos within one scope. Args: scope_type: One of "list", "area", "project". scope_name: Name of the list/area/project. Built-in lists include "Inbox", "Today", "Anytime", "Upcoming", "Someday", "Logbook". status: Filter — "open" (default), "completed", "canceled" or "any". Returns a list of todo objects (id, name, status, tags, due, when, project, area, completion, notes). |
| get_todayA | List all to-dos currently in the Things 3 "Today" list. |
| get_completedA | List to-dos completed within the last Useful for syncing finished tasks back into other systems. |
| search_todosA | Search to-dos whose name contains By default only open to-dos are searched; set include_completed=True to also search the Logbook. |
| list_areasA | List all Things 3 areas (id + name). |
| list_projectsB | List Things 3 projects (id, name, status, area). If |
| get_inboxA | List all to-dos currently in the Things 3 "Inbox" (unfiled tasks). |
| get_todoA | Get a single to-do by its Things id. Returns null if it does not exist. |
| list_tagsA | List all tag names defined in Things 3. |
| create_todoA | Create a new Things 3 to-do. Args:
title: Task title (required).
notes: Optional notes body.
area: Area to file the task in (must exist). Ignored if Returns {"id": }. |
| complete_todoA | Mark open to-do(s) as completed. Target by |
| cancel_todoA | Mark open to-do(s) as canceled (reversible — prefer this over deleting). Target by |
| update_todoA | Update the first matching OPEN to-do (by Args: query: Name substring (or exact name if exact=True) identifying the task. todo_id: Things id — takes precedence over query, matches exactly. tags: If set, REPLACES the task's tags (comma-separated). Use add_tags to append without dropping existing tags. when: Reschedule — "today", "tomorrow", "anytime", "someday" or ISO date. deadline: New deadline (due date) as ISO date "YYYY-MM-DD". move_to_list: Move the task to a built-in list (e.g. "Anytime"). exact: Require an exact name match instead of a substring match. Returns {"updated": } or {"updated": ""} if nothing matched. |
| add_tagsA | Append tags to the first matching OPEN to-do WITHOUT removing existing ones. Unlike update_todo(tags=...) which replaces the whole tag set, this merges the given tags into the current ones (duplicates skipped). Args: tags: Comma-separated tag names to add. query: Name substring (or exact name if exact=True). todo_id: Things id — takes precedence over query. exact: Require an exact name match instead of a substring match. Returns {"updated": } or {"updated": ""} if nothing matched. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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