Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
API_KEYYesPrimary API key for authentication. Must be at least 32 characters.
THINGS_EMAILYesYour Things Cloud account email
THINGS_PASSWORDYesYour Things Cloud account password

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_inboxA

List tasks in the Inbox — tasks not yet scheduled or assigned to a list.

Inbox = schedule is 'inbox', not completed, not trashed.

list_todayB

List tasks scheduled for today or earlier that aren't completed.

Today = start date is today or before, not completed, not trashed. Ordered by today_index then index.

list_upcomingA

List tasks scheduled for a future date.

Upcoming = start date is after today, not completed, not trashed. Ordered by start date, then deadline.

list_anytimeA

List tasks in the Anytime list — available to work on, no specific date.

Anytime = schedule is 'anytime', not completed, not trashed.

list_somedayA

List tasks in the Someday list — ideas and tasks without urgency.

Someday = schedule is 'someday', not completed, not trashed.

list_logbookA

List completed tasks from the Logbook.

Shows tasks completed within the last since_days days (default 30). Ordered by completion date, newest first.

list_trashB

List trashed tasks. Ordered by modification date, newest first.

get_taskA

Get a single task by its UUID. Returns full task details including tags.

list_areasB

List all areas. Areas are high-level life categories (e.g., Work, Personal).

list_tagsA

List all tags. Tags can be hierarchical (e.g., work/errands).

list_projectsA

List all projects. Projects are multi-step tasks that contain sub-tasks.

Args: include_completed: If True, also include completed/cancelled projects. Default False (active projects only). limit: Optional max number of projects. offset: Optional pagination offset.

search_tasksA

Full-text search across task titles, notes, and checklist items.

Case-insensitive substring match. Trashed tasks are excluded by default.

Args: query: Search string. Returns empty list when blank. include_trashed: If True, also search trashed tasks. include_checklists: If True (default), also match tasks whose checklist items contain the query. limit: Optional max number of tasks. offset: Optional pagination offset.

search_advancedA

Multi-predicate search. Every filter is optional and AND-combined.

Use this for GTD reviews ("what's overdue?"), area sweeps, or finding tasks modified recently.

Args: status: 'pending', 'cancelled', or 'completed'. type: 'task', 'project', or 'heading'. schedule: 'inbox', 'anytime', or 'someday'. area_uuid: Filter by area. project_uuid: Filter by parent project. tag: Tag UUID or name to filter by. include_descendants: When tag is set, also match descendant tags. start_date_from, start_date_to: Unix-timestamp range for start date. deadline_from, deadline_to: Unix-timestamp range for deadline. modified_since: Only tasks modified at or after this timestamp. completed_since: Only tasks completed at or after this timestamp. include_trashed: If True, also include trashed tasks. limit: Optional max number of tasks. offset: Optional pagination offset.

list_tasks_by_tagA

List tasks with a specific tag.

Args: tag: Tag UUID or name (e.g., 'work' or 'work/errands'). include_descendants: If True (default), also matches child tags. limit: Optional max number of tasks to return. Omit to fetch every matching task in one call (typical for agent workflows). offset: Optional pagination offset. Page by setting offset += limit until the response is shorter than limit.

list_all_tasksA

List every non-trashed task across the entire library.

Returns all tasks regardless of schedule, area, or project. By default fetches the full set in a single request — agents that need every task should call this without limit and offset. To page through a very large library, increment offset by limit until the response is shorter than limit.

Args: limit: Optional max number of tasks. Omit to fetch all tasks. offset: Optional pagination offset.

create_taskA

Create a new task in Things3.

Args: title: Task title (required). notes: Optional notes/description. schedule: One of 'inbox', 'anytime', or 'someday'. Default: 'inbox'. tags: Optional list of tag UUIDs or names to assign. project_uuid: UUID of the project to add this task to. area_uuid: UUID of the area to assign this task to. deadline: Unix timestamp for the deadline. start_date: Unix timestamp for the start date (schedules for a specific day). evening: If True, schedule for 'This Evening' instead of morning.

update_taskA

Update an existing task. Only provided fields are changed.

Args: uuid: Task UUID (required). title: New title. notes: New notes. schedule: 'inbox', 'anytime', or 'someday'. tags: New tag list (replaces existing tags). project_uuid: Move to this project. area_uuid: Assign to this area. deadline: New deadline (Unix timestamp). start_date: New start date (Unix timestamp).

complete_taskC

Mark a task as completed.

Args: uuid: Task UUID.

cancel_taskC

Cancel a task (mark as cancelled, not deleted).

Args: uuid: Task UUID.

delete_taskC

Move a task to the trash.

Args: uuid: Task UUID.

schedule_taskA

Schedule a task for today, anytime, someday, or a specific date.

Args: uuid: Task UUID. schedule: 'inbox', 'anytime', or 'someday'. start_date: Optional Unix timestamp to schedule for a specific day. evening: If True, schedule for "This Evening" instead of morning.

move_to_projectC

Move a task into a project.

Args: uuid: Task UUID. project_uuid: Target project UUID.

assign_tagsA

Replace the tags on a task.

Args: uuid: Task UUID. tags: List of tag UUIDs or names. Pass empty list to remove all tags.

create_tagB

Create a new tag.

Args: title: Tag name. parent: Optional parent tag UUID or name for hierarchy (e.g., creates 'errands' under 'work'). shortcut: Optional single-character keyboard shortcut.

create_projectB

Create a new project. Projects are multi-step tasks that hold sub-tasks.

Args: title: Project title (required). notes: Optional notes/description. schedule: 'inbox', 'anytime' (default), or 'someday'. area_uuid: Optional area to assign the project to. deadline: Unix timestamp deadline. start_date: Unix timestamp for the project's start date. tags: Optional list of tag UUIDs or names.

update_projectB

Update a project's fields. Only provided fields are changed.

Args: uuid: Project UUID (required). title: New title. notes: New notes. schedule: 'inbox', 'anytime', or 'someday'. area_uuid: Move the project to this area. deadline: New deadline (Unix timestamp). start_date: New start date (Unix timestamp). tags: New tag list (replaces existing tags).

complete_projectC

Mark a project as completed.

Args: uuid: Project UUID.

delete_projectA

Move a project to the trash.

Args: uuid: Project UUID.

trigger_syncA

Trigger a full pull + push sync with Things Cloud.

Call this after making changes so they appear on all your devices.

add_checklist_itemB

Add a checklist item (sub-task) to a task.

Args: task_uuid: UUID of the parent task. title: Checklist item text.

complete_checklist_itemC

Check off a checklist item.

Args: uuid: Checklist item UUID.

uncomplete_checklist_itemC

Uncheck a checklist item.

Args: uuid: Checklist item UUID.

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/nkootstra/things'

If you have feedback or need assistance with the MCP directory API, please join our Discord server