Skip to main content
Glama

things_add_project

Create structured projects in Things 3 with organized sections and tasks. Use headings as visual dividers to group related todos for complex projects with multiple phases or categories.

Instructions

Creates a project in Things with support for sections (headings) and todos. Perfect for complex projects with multiple phases, days, or categories. Headings act as visual dividers - todos that follow a heading in the items array will appear grouped under it.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
titleYes
notesNo
whenNoSchedule the todo: today/tomorrow/evening (relative), anytime/someday (Things categories), YYYY-MM-DD (specific date), or YYYY-MM-DD@HH:MM (specific time)
deadlineNo
tagsNo
area_idNoID of the area to place the project in
areaNoName of the area to place the project in
itemsNoCreate a structured project with sections (headings) and todos in a flat array. Each item must have a 'type' field: 'heading' for section dividers, 'todo' for tasks. Items are siblings - todos after a heading are visually grouped under it. Example: [{type: 'heading', title: 'Day 1'}, {type: 'todo', title: 'Morning walk'}, {type: 'todo', title: 'Breakfast'}, {type: 'heading', title: 'Day 2'}, {type: 'todo', title: 'Museum visit'}]. Order matters - todos appear under the most recent heading.
completedNo
canceledNo

Implementation Reference

  • The implementation of the `things_add_project` tool within the `AddToolHandler` class, which delegates the execution to `jsonBuilder.createProject`.
    } else if (toolName === 'things_add_project') {
      const projectParams = params as z.infer<typeof AddProjectSchema>;
      return jsonBuilder.createProject(projectParams);
    }
  • src/tools/add.ts:20-23 (registration)
    Registration of the `things_add_project` tool definition in the `AddToolHandler` class.
      name: 'things_add_project',
      description: 'Creates a project in Things with support for sections (headings) and todos. Perfect for complex projects with multiple phases, days, or categories. Headings act as visual dividers - todos that follow a heading in the items array will appear grouped under it.',
      schema: AddProjectSchema
    }
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It successfully explains the critical heading/todo grouping behavior ('todos that follow a heading...will appear grouped under it') which is essential for correct usage. However, it omits mutation side effects, error handling, or success indicators.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three well-structured sentences with no waste. Front-loaded with the core action, followed by use-case guidance, then critical behavioral details about the items array structure. Appropriately sized for the complexity of the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the high complexity (10 parameters with nested array structure) and lack of annotations/output schema, the description adequately covers the most complex aspect (items array structure) but leaves significant gaps regarding standard parameters and post-creation behavior. Minimum viable for this complexity level.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is low at 40%. While the description adds valuable context for the complex 'items' parameter (explaining the heading/todo relationship and order dependency), it fails to compensate for the six undocumented parameters (title, notes, deadline, tags, completed, canceled) that lack schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States specific verb (Creates) and resource (project in Things) and distinguishes from things_add_todo via emphasis on 'sections (headings) and todos' for complex structures. However, it does not explicitly contrast with sibling things_add_items_to_project which adds to existing projects vs. creating new ones.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides implied usage context ('Perfect for complex projects with multiple phases, days, or categories') suggesting when to use this over simple todo creation. However, lacks explicit when-not-to-use guidance or naming of alternatives like things_add_items_to_project for modifying existing projects.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

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/hildersantos/things-mcp'

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