Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
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 days days (from the Logbook).

Useful for syncing finished tasks back into other systems. days defaults to 30.

search_todosA

Search to-dos whose name contains query (case-insensitive).

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 area is given, only projects within that area are returned.

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 project set. project: Project to file the task in (must exist). Takes precedence over area. If neither is given the task lands in the Inbox. tags: Comma-separated tag names (e.g. "48h-Liste,Wichtig"). when: Schedule — "today", "tomorrow", "anytime", "someday" or an ISO date "YYYY-MM-DD". deadline: Deadline (due date) as ISO date "YYYY-MM-DD".

Returns {"id": }.

complete_todoA

Mark open to-do(s) as completed.

Target by todo_id (exact, safest — e.g. an id returned from create_todo) or by query (name match). With exact=False (default) every OPEN to-do whose name contains query is completed; set exact=True to require an exact name match. Returns the completed task names — check them.

cancel_todoA

Mark open to-do(s) as canceled (reversible — prefer this over deleting).

Target by todo_id or query (same matching rules as complete_todo). Useful e.g. for a rejected purchase decision. Returns canceled task names.

update_todoA

Update the first matching OPEN to-do (by todo_id or name query).

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

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

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