Skip to main content
Glama

add_project

Create a single OmniFocus project with a name, notes, tags, due/defer dates, folder placement, flag, sequential setting, and time estimate. Use batch_add_items for multiple projects.

Instructions

Add a SINGLE project to OmniFocus. For adding multiple projects, use batch_add_items instead.

Input Schema

NameRequiredDescriptionDefault
nameYesThe name of the project
noteNoAdditional notes for the project
tagsNoTags to assign to the project
dueDateNoThe due date of the project in ISO format (YYYY-MM-DD or full ISO date)
flaggedNoWhether the project is flagged or not
folderIdNoThe ID of the folder to add the project to (alternative to folderName)
deferDateNoThe defer date of the project in ISO format (YYYY-MM-DD or full ISO date)
folderNameNoThe name or "Parent > Child" path of the folder to add the project to (will add to root if not specified). If it matches more than one folder, the call fails and lists each candidate's path and ID; pass folderId to choose one.
sequentialNoWhether tasks in the project should be sequential (default: false)
estimatedMinutesNoEstimated time to complete the project, in minutes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv2.1.1

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It never states that this is a mutating write, does not describe the return value, permissions, or failure behavior — the folderName failure mode is only mentioned in the schema, not the description.

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

Conciseness5/5

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

Two short sentences, zero waste, and the scope constraint is front-loaded before the alternative pointer. Nothing could be removed without losing value.

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?

With 10 parameters, full schema coverage, and no annotations or output schema, the description is just barely sufficient: the schema documents inputs but nothing tells the agent what the tool returns or how it behaves on failure.

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

Parameters3/5

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

Schema description coverage is 100%, so all ten parameters including folderName/folderId disambiguation are already documented. The description adds no parameter-level meaning, which is acceptable at full coverage but earns only the baseline.

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

Purpose5/5

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

States a specific verb and resource ('Add a SINGLE project to OmniFocus') and immediately distinguishes the single-item scope from the batch sibling. An agent can pick between add_project and batch_add_items without opening either schema.

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

Usage Guidelines4/5

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

Names the alternative (batch_add_items) and the exact condition that selects it (multiple projects). No other guidance such as folder prerequisites or what happens on duplicate names, but the primary routing decision is explicit.

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