Skip to main content
Glama

Server Details

Manage tasks, projects, areas and tags in Done Bear from MCP-compatible AI clients. Uses OAuth and supports read and write task workflows.

Ownership verified
Status
Healthy
Uptime
86.5% over 59 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.2/5.0

Scored across 17 tools

Disambiguation4/5

The task_* family and the noun+action tools (attachment, checklist, comment, project) each target a clearly distinct concern, and descriptions explicitly cross-reference when to use task_add vs task_edit vs checklist. Minor overlap remains around labels (label_create vs task_add `labels` vs task_edit `add_labels`) and around field editing shared by project and task_edit, but the boundaries are documented and navigable.

Naming Consistency3/5

The task_* tools use a clean verb_noun pattern (task_add, task_edit, task_list, task_show, task_done, task_reopen, task_archive), but the set mixes this with bare-noun-plus-action tools (attachment, checklist, comment, project) and standalone names (get_context, guide, search). It is readable, but the conventions are not uniform — e.g. label_create is verb_noun while the functionally similar project creation is `project` with action add.

Tool Count4/5

17 tools is slightly heavy but each one earns its place: task CRUD/lifecycle, views/search, context, guide, comments, checklists, attachments, labels, projects, and the agent-identity pair. Nothing appears redundant, and the split across GTD views justifies the surface size.

Completeness4/5

Core lifecycle is well covered: create, read (single and list/paged), edit, complete, reopen, archive, plus search, comments, checklists, attachments, labels, and projects with join/leave. Minor gaps exist (no project deletion or hard task delete, no bulk project operations), but these are workable and arguably by design for a GTD tool.

Available Tools

17 tools
attachmentManage Task AttachmentA
Destructive
Inspect

Add a file to a task or remove one. action: "add" fetches the given HTTPS url: the server downloads it, verifies its size and type, and stores it, so the model never sends file bytes. Pass a stable idempotency_key and reuse it for retries so a lost response cannot upload the file twice. action: "remove" deletes the named attachment. Read a task's files with task_show and include: ["attachments"]. Limited to 10 attachments per task and 10 MB per file. Allowed types: images (jpeg, png, gif, webp, heic), PDF, CSV, Markdown, and plain text.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoHTTPS URL of the file to attach. Required to add
taskYesWorkspace-scoped task number, encoded as a string
actionYesWhether to attach a file or delete one
contextYesExplain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): "Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization."
filenameNoDisplay filename on an add; defaults to the URL's last path segment
workspaceNoWorkspace id, slug, or name. Required when the account has more than one workspace: a call without it then fails and names the choices
attachmentNoAttachment UUID or prefix (>= 4 chars). Required to remove
idempotency_keyNoStable key that makes retries safe: repeated calls with the same key create only one record and return the same id.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
okYes
actionYes
taskIdYes
attachmentYesThe stored file on an add; null on a remove

TDQS

A4.8/5.0
Behavior5/5

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

Annotations declare destructiveHint=true and readOnlyHint=false, and the description goes well beyond them: it explains that the server fetches the HTTPS URL rather than the model sending bytes, that size and type are verified before storage, that removal is destructive on the named attachment, and that a stable idempotency_key prevents duplicate uploads on retry. That idempotency/retry guidance is exactly the kind of behavior annotations cannot express.

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?

Front-loaded with the add/remove dichotomy, then ordered by operational importance: fetch behavior, idempotency, read alternative, limits, allowed types. Dense and largely waste-free, though the trailing limits-and-types list reads as a compact dump rather than prose.

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

Completeness5/5

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

An output schema exists, so return values need no explanation, and the description still covers the things structured fields do not: mutation semantics, the server-side download model, retry safety, quotas, and accepted file types. Nothing an agent needs to invoke this correctly is missing.

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

Parameters4/5

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

Schema coverage is already 100%, so the baseline is 3; the description adds real meaning on top by stating which parameters are required per action ('Required to add' via url, 'Required to remove' via attachment) and by explaining the reuse semantics of idempotency_key for lost-response retries. It does not clarify filename defaulting or the workspace-failure behavior, which the schema already covers.

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+resource pair in both modes ('Add a file to a task or remove one'), and the two action branches are clearly delineated with their own parameter requirements (url for add, attachment for remove). It also names the sibling used for the read path (task_show), so an agent can separate this tool from task_show without inspecting 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 Guidelines5/5

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

Gives conditional routing for both branches, names the alternative for reading attachments ('Read a task's files with task_show and include: ["attachments"]'), and supplies concrete hard limits (10 attachments per task, 10 MB per file, allowed MIME types) that determine whether the call should be made at all.

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

checklistManage Task ChecklistA
Destructive
Inspect

Change the checklist on a task. action: "add" appends items, unchecked, after the existing ones: pass every title for a multi-item list in one call (titles keeps the given order, while parallel single adds land in arrival order). action: "edit" renames an item and/or checks it (completed: true) or unchecks it (completed: false). action: "remove" deletes one. Read the list, with each item's id and state, from task_show.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemNoChecklist item UUID or prefix (>= 4 chars). Required to edit or remove
taskYesWorkspace-scoped task number, encoded as a string
titleNoOne item title to add, or the new title on an edit
actionYesWhat to do to the checklist
titlesNoSeveral item titles to add, kept in the given order (use instead of `title`)
contextYesExplain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): "Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization."
completedNoCheck (true) or uncheck (false) the item, on an edit
workspaceNoWorkspace id, slug, or name. Required when the account has more than one workspace: a call without it then fails and names the choices
idempotency_keyNoStable key that makes retries safe: repeated calls with the same key create only one record and return the same id.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
countYes
itemsYesThe items the call created or changed
actionYes
taskIdYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true and readOnlyHint=false, and the description is consistent with that ('remove deletes one'). Beyond the annotations it discloses real behavior: appended items land unchecked after existing ones, and titles preserves order while parallel single adds land in arrival order. It omits auth/workspace prerequisites and retry semantics, which the schema covers.

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?

Front-loaded with the purpose, then organized action-by-action, and the closing sentence points to the read path. The parenthetical about parallel single adds is slightly tangential but conveys a genuine ordering caveat, so it earns its place.

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

Completeness4/5

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

For a 9-parameter mutation tool with an output schema, the description covers the operation semantics and where to read state, leaving workspace, idempotency, and return shape to structured fields. Nothing essential for correct invocation is missing, though prerequisites like workspace selection are not echoed.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3, but the description adds meaning beyond it: the title/titles choice, the ordering guarantee for titles versus parallel adds, and completed:true/false as check/uncheck on edit. The item parameter's role for edit/remove is left to the schema.

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?

The opening sentence names a specific verb and resource ('Change the checklist on a task') and the action breakdown makes each operation concrete. It distinguishes itself from siblings by routing reads to task_show, so an agent can separate mutation from inspection 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?

It states what each action does and names task_show as the way to read item ids and state, which is the key alternative. It also guides batching ('pass every title for a multi-item list in one call'). It stops short of explicit when-not-to-use or prerequisite conditions such as the multi-workspace requirement.

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

commentManage Task CommentA
Destructive
Inspect

Write on a task's comment thread. action: "add" posts a comment, attributed to the connected user and visible to everyone in the workspace, so write it as a message to the user's teammates rather than a note to the user; nobody is notified. action: "edit" rewrites one of your own (only its author may, and it is then marked edited). action: "remove" deletes one permanently — comments have no Trash — so confirm with the user first. Read the thread with task_show and include: ["comments"].

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoComment text. Required to add or edit
taskYesWorkspace-scoped task number, encoded as a string
actionYesWhat to do on the thread
commentNoComment UUID or prefix (>= 4 chars). Required to edit or remove
contextYesExplain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): "Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization."
workspaceNoWorkspace id, slug, or name. Required when the account has more than one workspace: a call without it then fails and names the choices
idempotency_keyNoStable key that makes retries safe: repeated calls with the same key create only one record and return the same id.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
okYes
actionYes
taskIdYes

TDQS

A4.9/5.0
Behavior5/5

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

Annotations only give the generic destructive/write profile; the description adds real behavioral context: attribution to the connected user, workspace-wide visibility, no notification sent, permanent deletion with no Trash, and the 'edited' marker on rewrites. It also warns that the audience is teammates, not the invoking user.

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?

Front-loads the resource, then handles actions in enum order with the destructive one last and the most cautionary detail attached to it. Every clause adds operational information; nothing is restated from the title or schema.

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

Completeness5/5

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

An output schema exists, so return values need no explanation, and the 7-parameter surface is the only complexity left. The description covers the mutation lifecycle, audience, and reversibility, which is everything an agent needs to call it safely.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description maps action values to their parameter requirements by implication (body to post/rewrite, comment to edit/remove, task to all) and clarifies intent behind the destructive path. It stops short of explaining the UUID-prefix matching or idempotency semantics, which stay in the schema.

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 concrete verb and resource ('Write on a task's comment thread') and then enumerates the three actions with their distinct effects. It explicitly distinguishes itself from task_show, which is named as the read path, so an agent can route without opening a sibling schema.

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

Usage Guidelines5/5

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

Each action carries its own when-to-use condition: add for posting a workspace-visible message, edit restricted to your own comment, remove only after user confirmation. It also names the alternative for reading the thread (task_show with include: ["comments"]), covering the when-not case.

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

get_contextGet Workspace ContextA
Read-only
Inspect

Get a snapshot of the current workspace: task counts per view, recent open tasks, and every project, label, team and member. This is the tool that answers what is in the workspace and resolves a project, label, team or member by name — there is no separate list tool for those. Use it for that, not as a warm-up before every turn. For tasks themselves use task_list (a view), search (by words) or task_show (one task): the recent tasks here are only the latest few.

ParametersJSON Schema
NameRequiredDescriptionDefault
contextYesExplain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): "Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization."
timezoneNoIANA timezone used to resolve "today" for views and scheduling (e.g. Australia/Melbourne). Defaults to UTC, which misclassifies Today/Upcoming for users in other timezones, so always pass the user's timezone when known.
workspaceNoWorkspace id, slug, or name. Required when the account has more than one workspace: a call without it then fails and names the choices
tasks_limitNoMax recent open tasks to return
projects_statusNoWhich projects to returnactive

Output Schema

ParametersJSON Schema
NameRequiredDescription
teamsYes
todayYesToday's date (YYYY-MM-DD) in the requested timezone (UTC when none given)
labelsYes
membersYes
projectsYes
taskCountsYes
viewCountsYes
recentTasksYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=false and destructiveHint=false, so safety is covered. The description adds meaningful scope behavior beyond that: it is the only name-resolution path for projects/labels/teams/members, and it warns that returned tasks are only the latest few rather than a full task set.

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?

Three sentences, front-loaded with what the tool returns, then its unique resolution role, then the exclusion warning and alternatives. Every sentence carries distinct routing value and nothing is redundant.

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

Completeness5/5

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

With an output schema present, annotations covering safety, and full schema coverage, the description only needs to carry the selection logic and scope caveats — which it does completely, including the multi-workspace name-resolution role and the 'latest few tasks' limitation.

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 context, timezone, workspace, tasks_limit and projects_status are all already documented with defaults, bounds and enum values. The description adds no parameter-level detail (e.g. timezone effect on view classification) beyond what the schema already states, so the baseline 3 is appropriate.

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?

Names a specific verb+resource ('Get a snapshot of the current workspace') and enumerates the contents (task counts per view, recent open tasks, projects, labels, teams, members). It explicitly distinguishes itself from siblings task_list, search, and task_show, so an agent can select it without consulting other schemas.

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

Usage Guidelines5/5

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

States when to use it ('answers what is in the workspace', 'resolves a project, label, team or member by name'), when NOT to use it ('not as a warm-up before every turn'), and routes each alternative case to a named sibling with its selection criterion.

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

guideRead GuideA
Read-onlyIdempotent
Inspect

Read Done Bear's guide for one topic: what the data means, how it relates to the rest of the product, and how to use it well. Load a topic before doing that kind of work for the first time in a session.

  • views: Placing a task in Inbox/Today/Upcoming/Anytime/Someday, reading a view, or working out why Today looks wrong.

  • dates: Setting or clearing a due date, or deciding between a deadline and a start date.

  • editing: Changing a task's fields, clearing a value, appending to notes, or moving a task between projects.

  • bulk: Completing, moving, or editing more than one task at a time, or sweeping a whole view.

  • checklists: Adding sub-steps to a task, building a list inside a task, or ticking items off.

  • comments: Discussing a task with teammates: reading its thread, replying, or correcting a comment.

  • projects: Deciding where a task belongs, creating a project or label, changing a project's status, or joining/leaving a project.

  • search: Looking a task up, listing a view, paging through results, or orienting in a new workspace.

  • workspaces: Working across multiple workspaces, hitting a permission or rate-limit error, or making retries safe.

  • agents: Starting work in a Done Bear workspace for the first time.

  • importing: The user asks how to move their tasks in from Todoist, Things, Trello or a CSV.

ParametersJSON Schema
NameRequiredDescriptionDefault
topicYesGuide topic to read
contextYesExplain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): "Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization."

Output Schema

ParametersJSON Schema
NameRequiredDescription
titleYes
topicYes
markdownYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so safety is covered. The description adds behavioral context beyond annotations: 'context is used to tailor the guide' and the session-level loading instruction, explaining how the tool behaves in use. No contradiction with annotations.

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?

First sentence states purpose, second gives usage timing, and the bullet list is scannable. The final paragraph about context overlaps with schema but adds a concrete instruction. It's longer than minimal but well-structured and front-loaded.

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

Completeness5/5

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

For a read-only reference tool with annotations and an output schema, the description covers what, when, all topic values, and context construction. Nothing needed to invoke it correctly is missing.

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

Parameters5/5

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

The schema describes 'topic' only as 'Guide topic to read', while the description gives 11 bullets explaining exactly which use cases each topic covers. For 'context', it adds a first-sentence requirement beyond the schema's already detailed instrctions. With 100% schema coverage, this extra guidance clearly raises the score.

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?

The description opens with a specific verb and resource: 'Read Done Bear's guide for one topic' and explains what the guide contains (what the data means, relation to product, how to use it). The bullet list clearly disambiguishes this reference tool from the operational siblings by mapping topics to concrete task types. No tautology or ambiguity.

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?

Gives an explicit trigger: 'Load a topic before doing that kind of work for the first time in a session.' This tells the agent when to call. It doesn't name alternatives or exclusions, but the tool's unique role among siblings makes that unneeded.

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

label_createCreate LabelAInspect

Create a new label in the workspace and return its id. Only creates the label: to put it on a task, pass it to task_add labels or task_edit add_labels afterwards (both take the title). Titles are not unique, so a second call with the same title makes a duplicate — check the labels get_context returns first, and reuse one that already exists.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesLabel title
contextYesExplain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): "Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization."
workspaceNoWorkspace id, slug, or name. Required when the account has more than one workspace: a call without it then fails and names the choices
idempotency_keyNoStable key that makes retries safe: repeated calls with the same key create only one record and return the same id.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
okYes
titleYes

TDQS

A4.7/5.0
Behavior4/5

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

Annotations declare it is a non-read-only mutator that is not destructive; the description adds a genuinely useful behavioral trait — titles are not unique, so repeated calls duplicate rather than no-op. It does not mention the idempotency_key retry-safety behavior, though the schema documents that parameter.

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?

Three sentences, each earning its place: scope, follow-up routing, and the duplicate-avoidance warning. The creation semantics are front-loaded before the caveat.

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

Completeness5/5

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

An output schema exists, so the description needn't detail return values, and it still notes the id is returned. For a simple create tool it covers scope, sibling routing, and the main failure mode (duplicates) completely.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds cross-tool semantics for `title`: it is the same value passed to task_add `labels` and task_edit `add_labels`, and it is non-unique. It does not elaborate on `workspace` or `idempotency_key`, which the schema already covers.

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+resource ('Create a new label in the workspace') and even names the return value (its id). It explicitly distinguishes itself from sibling tools task_add and task_edit, which it says must be used afterwards to attach the label.

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

Usage Guidelines5/5

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

Gives explicit when-to-use routing: this tool only creates, and attaching requires task_add `labels` or task_edit `add_labels`. It also prescribes a check-first workflow (consult get_context's labels and reuse an existing one) before calling.

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

projectManage ProjectA
Destructive
Inspect

Create or change a project. action: "add" creates one (name required). action: "edit" updates the named project: only the fields given change, and an empty string clears description or target_date. action: "join" puts it in the caller's Your projects sidebar list and action: "leave" takes it out. Read projects with get_context.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoProject name. Required on add; a rename on edit
actionYesWhat to do with the project
statusNoProject status (edit only)
contextYesExplain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): "Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization."
projectNoProject id, key, or name. Required for edit, join and leave
workspaceNoWorkspace id, slug, or name. Required when the account has more than one workspace: a call without it then fails and names the choices
descriptionNoProject description (empty string clears it on an edit)
target_dateNoTarget date (YYYY-MM-DD), or an empty string to clear it (edit only)
idempotency_keyNoStable key that makes retries safe: repeated calls with the same key create only one record and return the same id.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
okYes
keyYes
nameYes
actionYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true and readOnlyHint=false, so the bar is lower, yet the description adds real context: edit is a partial update, only supplied fields change, and an empty string explicitly clears description or target_date. It does not disclose permission requirements or the effect of leave on existing project data.

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?

Four tight sentences, front-loaded with the core purpose, then action semantics, then clearing behavior, then the read alternative. No filler or restatement.

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

Completeness4/5

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

For a 9-parameter mutation tool with an output schema and full schema description coverage, the description covers the action space, partial-update and clear semantics, and the read alternative. Minor gaps remain around workspace/auth preconditions, but the schema handles those.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3, but the description meaningfully expands the terse action enum ('What to do with the project') into concrete semantics for each value, and restates the name-required-on-add rule. It adds value beyond the schema for the central parameter.

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 pair and resource ('Create or change a project') and then enumerates the four action values with their distinct effects, so an agent can distinguish add/edit/join/leave without opening the schema. It also names get_context as the read path, separating this mutation tool from siblings.

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?

Gives explicit per-action conditions ('add' creates, 'edit' updates, 'join'/'leave' toggle sidebar membership) and routes reading to get_context. It stops short of stating when not to use the tool (e.g., permissions or prerequisites for joining), so it is strong but not fully complete.

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

task_addAdd TaskInspect

Create a new task. An explicit when selects its start placement: today, inbox, upcoming, anytime, or someday; upcoming schedules tomorrow. Without when, a deadline or omitted timezone selects anytime first. Otherwise, a project or team selects inbox; an unfiled task selects today. Pass the user's known IANA timezone to resolve calendar days. Use when: "inbox" for capture without a commitment to today. deadline uses YYYY-MM-DD. Optionally assign the task, attach existing labels, or pass checklist item titles in checklist; their order is preserved. The result's view reports the selected start placement, while a due or overdue deadline can make the task appear in Today. To change an existing task, use task_edit for fields or the available checklist tools for items. Search first when the user may be describing an existing task.

ParametersJSON Schema
NameRequiredDescriptionDefault
teamNoTeam id, key, or name
whenNoGTD view bucket: today, inbox, upcoming, anytime, someday. Omitting this means today, with three exceptions: a deadline or a missing timezone falls back to anytime (the work is due later, or today cannot be resolved), and a project or team falls back to inbox (the task is already filed). Pass timezone to get today. Use "inbox" for a capture the user has not committed to doing.
notesNoTask description/notes
titleYesTask title
labelsNoLabels to attach (each a label id, title, or id prefix)
contextYesExplain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): "Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization."
projectNoProject id, key, or name to assign this task to
assigneeNoMember (user id, name, or email) or task agent (id or name) to assign the task to
deadlineNoDue date in YYYY-MM-DD format
timezoneNoIANA timezone used to resolve "today" for views and scheduling (e.g. Australia/Melbourne). Defaults to UTC, which misclassifies Today/Upcoming for users in other timezones, so always pass the user's timezone when known.
checklistNoChecklist item titles to create on the task, kept in the given order
workspaceNoWorkspace id, slug, or name. Required when the account has more than one workspace: a call without it then fails and names the choices
idempotency_keyNoStable key that makes retries safe: repeated calls with the same key create only one record and return the same id.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
okYes
viewYes
titleYes
numberYes
checklistCountYes
task_agent_getRead Task Agent BindingA
Read-onlyIdempotent
Inspect

Read the task-agent identity bound to this connection's existing API key in one explicit workspace. Returns only key metadata and the exact agent UUID or null; an inactive agent includes disabledAt. Requires an API-key connection and current workspace membership. Does not register, assign or start any task. Use this before task_agent_register and retain key.id as expected_key_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
contextYesExplain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): "Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization."
workspace_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
keyYes
agentYes
createdYes
workspaceIdYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered structurally. The description adds real value beyond that: the exact return contract ('only key metadata and the exact agent UUID or null'), the inactive-agent case with disabledAt, and the auth/membership prerequisites. It stops short of describing failure behavior when no binding exists or when membership is stale.

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?

Four tight sentences, front-loaded with the verb+resource and scope, then return contract, then prerequisites, then the sibling handoff. No filler and nothing buried.

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

Completeness4/5

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

An output schema exists, so the description needn't document the return payload in full, and it still sketches it usefully. Prerequisites, sequencing, and exclusions are all covered. Minor gap: no mention of what an agent should do when the read returns null (i.e., proceed to register) or when membership checks fail.

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 coverage is 50%: context is fully documented in the schema, workspace_id has only a format/pattern. The description says 'one explicit workspace', which confirms workspace_id scoping but adds no syntax, format, or default detail beyond the schema's UUID pattern. With the schema doing most of the work, a 3 is appropriate.

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 ('Read the task-agent identity bound to this connection's existing API key') plus the scoping constraint ('in one explicit workspace'). It also explicitly distinguishes itself from the sibling task_agent_register, so an agent can route correctly 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 Guidelines5/5

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

Gives explicit sequencing guidance ('Use this before task_agent_register and retain key.id as expected_key_id') and clear exclusions ('Does not register, assign or start any task'). Preconditions (API-key connection, current workspace membership) are stated rather than implied.

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

task_agent_registerRegister Task Agent BindingA
Idempotent
Inspect

Explicitly register one assignable task agent for this connection's existing key in one workspace, after the user approves that durable binding. Requires a write-scoped API key restricted to exactly this workspace and an owner/admin membership. Read task_agent_get first and pass its key.id as expected_key_id. Same key/workspace/name retries return the same UUID; conflicting or inactive bindings fail without takeover or reactivation. Creates no key, changes no scope, and does not assign/import/start tasks.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
contextYesExplain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): "Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization."
workspace_idYes
expected_key_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
keyYes
agentYes
createdYes
workspaceIdYes

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare idempotent=true and destructive=false, but the description adds substantial behavioral context beyond them: same key/workspace/name retries return the same UUID, and conflicting or inactive bindings fail without takeover or reactivation. It further clarifies side-effect boundaries ('creates no key, changes no scope'), which the annotations alone do not convey.

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?

Front-loaded with the core action, then layered constraints, prerequisites, and exclusions in a single dense paragraph. Every clause carries information, though the density is high enough that it reads more like a spec block than prose.

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

Completeness5/5

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

Covers prerequisites, required ordering, idempotency semantics, failure behavior, and explicit exclusions. Since an output schema exists, the description need not explain return values, and nothing an agent needs to invoke it correctly is missing.

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

Parameters4/5

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

With only 25% schema coverage, the description compensates well: it explains the origin of expected_key_id (key.id from task_agent_get), the workspace-scoping role of workspace_id, and the role of name in retry idempotency. The context parameter is not addressed here, but it carries its own detailed schema description, so the gap is minor.

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 ('register one assignable task agent') scoped to 'this connection's existing key in one workspace,' and explicitly delimits against siblings by declaring it does not 'assign/import/start tasks.' An agent can distinguish it from task_add and task_agent_get 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 Guidelines5/5

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

Gives explicit preconditions ('after the user approves that durable binding,' write-scoped API key restricted to this workspace, owner/admin membership) and sequencing ('Read task_agent_get first and pass its key.id as expected_key_id'). It also names what the tool does not do, so the when-not is covered.

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

task_archiveArchive TaskA
Destructive
Inspect

Archive a task, or several at once with tasks (max 50). They move to the Trash view, out of every working list, and stay readable there (task_list view: "trash"). Archiving is not completing: use task_done for work that was finished, and task_archive only for tasks the user wants gone. Confirm with the user first.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskNoWorkspace-scoped task number, encoded as a string
tasksNoSeveral workspace-scoped task numbers (max 50), instead of `task`. Confirm the list with the user first: one call changes every task in it.
contextYesExplain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): "Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization."
workspaceNoWorkspace id, slug, or name. Required when the account has more than one workspace: a call without it then fails and names the choices

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
countYes
tasksYesEvery task the call changed, in the order it was given
actionYes

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already mark it destructive, but the description adds the consequences that annotations cannot convey: tasks leave every working list, land in a readable Trash view (i.e. recoverable, not deleted), and a single batch call changes every task in the list. It also flags the confirmation requirement.

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 compact sentences, front-loaded with the action and the batch option, then the disambiguation, then the safety note. The only redundancy is repeating the 'max 50' cap that the schema already encodes.

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

Completeness5/5

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

For a destructive, batch-capable mutation with an output schema available for return values, the description covers scope, consequences, recoverability, and required confirmation. Nothing needed to invoke it correctly is missing.

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 coverage is 100%, so `task`, `tasks`, `context`, and `workspace` are already documented with patterns and the 50-item cap. The description restates the max-50 limit but adds no syntax or format detail beyond the schema, so it sits at 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 (archive) and resource (task), covers the batch variant with `tasks` and its 50-item cap, and explicitly contrasts itself with task_done. An agent can distinguish it from task_show, task_edit, and task_done without opening a schema.

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

Usage Guidelines5/5

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

Gives explicit when-to-use (tasks the user wants gone), when-not (work that was finished - use task_done), a required confirmation step, and the follow-up path for retrieval (task_list `view: "trash"`). This is the full when/when-not/alternative triad.

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

task_doneComplete TaskAInspect

Mark a task as complete, or several at once with tasks (max 50). They move to the Logbook view. A set of 50 is undone one task_reopen call at a time, so confirm the list with the user first.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskNoWorkspace-scoped task number, encoded as a string
tasksNoSeveral workspace-scoped task numbers (max 50), instead of `task`. Confirm the list with the user first: one call changes every task in it.
contextYesExplain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): "Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization."
workspaceNoWorkspace id, slug, or name. Required when the account has more than one workspace: a call without it then fails and names the choices
expectedRevisionNoComplete only the reviewed task revision from task_show or task_list. Use with task, not tasks. A changed task returns a conflict; reload and review before trying again.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
countYes
tasksYesEvery task the call changed, in the order it was given
actionYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations only declare the safety flags (readOnly=false, destructive=false, openWorld=false); the description adds substantive behavior beyond them: completed tasks move to the Logbook view, and a 50-task batch must be undone one `task_reopen` call at a time. The conflict/reload behavior for `expectedRevision` lives in the schema rather than here, which is the only missing piece.

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 sentences with no filler, front-loading the core action and the batch variant before the undo-cost caveat. Every clause carries information an agent needs.

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

Completeness4/5

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

With an output schema present, the description needn't explain return values, and annotations cover the safety profile. It supplies the batch semantics, the reversibility path, and the user-confirmation requirement, leaving only the revision-conflict flow to the schema.

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 the schema already documents every parameter including the `task` vs `tasks` exclusivity, the 50-item cap, and the `expectedRevision` conflict semantics. The description reinforces the max-50 and confirmation rules but adds no syntax or format detail beyond the structured fields, so the baseline 3 applies.

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 ('Mark...as complete') and resource ('task'), and distinguishes the single-task form from the batch form via the `tasks` parameter. It also names the sibling `task_reopen` as the inverse operation and clarifies the destination (Logbook view), so an agent can separate it from `task_archive` and `task_edit`.

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?

Gives a clear condition for the batch path ('or several at once with `tasks` (max 50)') and a workflow rule ('confirm the list with the user first'). It does not explicitly state when to prefer this over `task_archive` or `task_edit`, so it stops short of full alternative routing.

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

task_editEdit Task
DestructiveIdempotent
Inspect

Update fields on one task (task) or on several at once (tasks, max 50). Only the provided fields are changed; omitted fields are left untouched. To remove a value, list the field in clear (e.g. clear: ["deadline"]). Notes replace the existing notes (no append). assignee assigns the task; clear it to unassign. add_labels and remove_labels change which labels are on it. Editing several tasks applies the same changes to every one of them and cannot be undone in one call, so confirm the list with the user first. For status changes use task_done, task_reopen or task_archive, and for checklist items use the available checklist tools; this tool does not change either.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskNoWorkspace-scoped task number, encoded as a string
teamNoTeam id, key, or name
whenNoMove to a different GTD view
clearNoFields to remove a value from, e.g. ["deadline"]. Use this rather than sending an empty string.
notesNoNew description/notes (replaces existing)
tasksNoSeveral workspace-scoped task numbers (max 50), instead of `task`. Confirm the list with the user first: one call changes every task in it.
titleNoNew title
contextYesExplain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): "Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization."
projectNoProject id, key, or name
assigneeNoAssign to a member (user id, name, or email) or a task agent (id or name)
deadlineNoSet due date (YYYY-MM-DD)
timezoneNoIANA timezone used to resolve "today" for views and scheduling (e.g. Australia/Melbourne). Defaults to UTC, which misclassifies Today/Upcoming for users in other timezones, so always pass the user's timezone when known.
workspaceNoWorkspace id, slug, or name. Required when the account has more than one workspace: a call without it then fails and names the choices
add_labelsNoLabels to attach (each a label id, title, or id prefix). The label has to exist already — create one with label_create
remove_labelsNoLabels to detach (each a label id, title, or id prefix)

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
countYes
tasksYesEvery task the call changed, in the order it was given
actionYes
task_listList TasksA
Read-only
Inspect

List tasks in the workspace, most recently updated first. Completed tasks are ordered by completion time, newest first. Filter by view (inbox, today, upcoming, anytime, someday, logbook, trash) and/or state (open, done, archived, all); search ranks matches within that filter. view: "logbook" reads completed tasks and view: "trash" archived ones, whatever state says. Returns up to limit tasks; hasMore is true when more matched than were returned, and passing nextCursor back as cursor reads the next page. To find a task by its words across every view use search instead, and task_show for one task's checklist, comments and files.

ParametersJSON Schema
NameRequiredDescriptionDefault
viewNoFilter by GTD view bucket. logbook and trash read the completed and archived tasks regardless of `state`
limitNoMax results
stateNoFilter by task stateopen
cursorNoOpaque pagination cursor from a previous call's `nextCursor`. Pass it with the same filters to fetch the next page.
searchNoRanked lexical search over title/description; when set, results are ordered by relevance instead of recency
contextYesExplain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): "Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization."
timezoneNoIANA timezone used to resolve "today" for views and scheduling (e.g. Australia/Melbourne). Defaults to UTC, which misclassifies Today/Upcoming for users in other timezones, so always pass the user's timezone when known.
workspaceNoWorkspace id, slug, or name. Required when the account has more than one workspace: a call without it then fails and names the choices

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
tasksYes
totalYes
hasMoreYesTrue when more results matched than were returned
nextCursorYes

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, non-destructive, closed-world), and the description goes well beyond them by disclosing ordering rules, pagination contract (limit/hasMore/nextCursor round-trip), and the state-override behavior of logbook and trash views. That is real operational context an agent cannot infer from annotations.

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?

Front-loaded with the core action and ordering, then the filter semantics, then pagination, then sibling routing — a logical progression with no filler sentences. It is somewhat dense and partially restates the view enum already present in the schema, which is the only slack.

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

Completeness5/5

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

For an 8-parameter list tool with a 100% documented schema and an output schema, the description covers everything an agent needs: scope, default ordering, filter precedence, search behavior, pagination, and alternatives. Nothing required to call it correctly is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds genuine semantics: the enumerated view buckets, that logbook/trash read completed/archived regardless of state, that search reorders results by relevance rather than recency, and how cursor pairs with the same filters. Only minor duplication of schema content keeps it from a 5.

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 ('List tasks in the workspace') plus the default ordering ('most recently updated first'). It also explicitly distinguishes itself from two named siblings, search and task_show, so an agent can route correctly without opening any schema.

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

Usage Guidelines5/5

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

Gives explicit routing rules: use search to find a task by its words across every view, and task_show for a single task's checklist, comments and files. It also explains the view/state interaction and the precedence rule that logbook/trash override state.

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

task_reopenReopen TaskA
Idempotent
Inspect

Reopen a completed task, or several at once with tasks (max 50). Each returns to its previous view.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskNoWorkspace-scoped task number, encoded as a string
tasksNoSeveral workspace-scoped task numbers (max 50), instead of `task`. Confirm the list with the user first: one call changes every task in it.
contextYesExplain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): "Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization."
workspaceNoWorkspace id, slug, or name. Required when the account has more than one workspace: a call without it then fails and names the choices

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
countYes
tasksYesEvery task the call changed, in the order it was given
actionYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations declare idempotentHint=true, destructiveHint=false and readOnlyHint=false, so safety is partly covered. The description adds real behavioral context beyond that: reopening restores the task to its previous view (prior status, not a generic default) and caps the batch at 50.

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 compact sentences, front-loaded with the action and the bulk-mode switch, with no filler. Every clause carries information an agent needs before calling.

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

Completeness4/5

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

An output schema exists, so return values need no explanation, and single/batch behavior and limits are covered. Minor gap: it says 'completed task' but does not clarify whether archived tasks can be reopened, which matters given the task_archive sibling.

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 the schema already explains `task`, `tasks`, `context` and `workspace` fully. The description only echoes the `tasks` max-50 constraint and the confirm-with-user warning that the schema already contains, so baseline 3 applies.

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 (reopen) and resource (task), plus the batch variant via `tasks` with a cap. An agent can distinguish this from task_done/task_archive/task_edit because the description makes clear it reverses completion and restores the prior state.

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?

Condition for use is implicit but clear: the task must be completed, and the `tasks` parameter is named as the bulk alternative. No explicit when-not guidance or naming of competing siblings such as task_edit.

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

task_showShow Task DetailsA
Read-only
Inspect

Get full details for a single task: its fields, labels and checklist items, by workspace-scoped task number. Add include for the parts that cost extra reads: ["comments"] for the discussion thread (oldest first, with author and whether each was edited) and ["attachments"] for the files on it, each with a short-lived signed URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskYesWorkspace-scoped task number, encoded as a string
contextYesExplain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): "Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization."
includeNoExtra sections to load. Omit unless you need them: each is its own round trip
timezoneNoIANA timezone used to resolve "today" for views and scheduling (e.g. Australia/Melbourne). Defaults to UTC, which misclassifies Today/Upcoming for users in other timezones, so always pass the user's timezone when known.
workspaceNoWorkspace id, slug, or name. Required when the account has more than one workspace: a call without it then fails and names the choices

Output Schema

ParametersJSON Schema
NameRequiredDescription
taskYes
labelsYes
commentsNo
attachmentsNo
checklistItemsYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare a safe, read-only, closed-world read, so the bar is lower, and the description still adds real behavior: comments come back oldest-first with author and edited state, attachments carry short-lived signed URLs, and extra sections each cost a round trip. It does not cover failure modes such as a missing workspace resolving ambiguous choices beyond what the schema states.

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 sentences, front-loaded with the primary purpose, and the optional-cost caveat attached to the parameter it governs. No filler or redundancy.

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

Completeness4/5

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

With an output schema and read-only annotations, return shape and safety are already covered, and the description fills the remaining gap about which reads are expensive. Slightly thin on workspace-resolution behavior, which matters for a 5-parameter tool, but adequate overall.

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

Parameters4/5

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

Schema coverage is 100%, so a 3 is the baseline, but the description adds meaning the enum label alone ('Extra sections to load') does not: it explains what each include value actually returns and why it is optional. Timezone, workspace, and context semantics are left entirely to the schema.

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 ('Get full details for a single task') and enumerates what those details contain (fields, labels, checklist items). The scoping key ('workspace-scoped task number') and the contrast with list-style siblings make it unambiguous which tool retrieves one record.

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?

Gives conditional guidance for the optional path: add `include` only for sections that 'cost extra reads', and names exactly which sections exist. It does not route the agent to a sibling (e.g. task_list to find the task number first), so it stops short of explicit alternatives.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updates
    • Changedtask_add1 field changed
      • changedInput schema / properties / assignee / description
        Previous value: -"Member user id, name, or email to assign the task to"New value: +"Member (user id, name, or email) or task agent (id or name) to assign the task to"
    • Changedtask_edit1 field changed
      • changedInput schema / properties / assignee / description
        Previous value: -"Assign to a member (user id, name, or email)"New value: +"Assign to a member (user id, name, or email) or a task agent (id or name)"
  2. 8 tool updates
    • Changedchecklist2 fields changed
      • addedOutput schema / properties / items / items / properties / title / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / items / items / properties / title / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
    • Changedget_context8 fields changed
      • addedOutput schema / properties / projects / items / properties / targetDate / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / projects / items / properties / targetDate / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
      • addedOutput schema / properties / recentTasks / items / properties / deadline / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / recentTasks / items / properties / deadline / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
      • addedOutput schema / properties / recentTasks / items / properties / projectId / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / recentTasks / items / properties / projectId / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
      • addedOutput schema / properties / recentTasks / items / properties / view / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / recentTasks / items / properties / view / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
    • Changedproject4 fields changed
      • addedOutput schema / properties / key / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / key / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
      • addedOutput schema / properties / name / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / name / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
    • Changedsearch22 fields changed
      • addedOutput schema / properties / nextCursor / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / nextCursor / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
      • addedOutput schema / properties / tasks / items / properties / agentAssigneeId / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / tasks / items / properties / agentAssigneeId / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
      • addedOutput schema / properties / tasks / items / properties / assigneeId / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / tasks / items / properties / assigneeId / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
      • addedOutput schema / properties / tasks / items / properties / completed / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / tasks / items / properties / completed / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
      • addedOutput schema / properties / tasks / items / properties / completedAt / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / tasks / items / properties / completedAt / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
      • addedOutput schema / properties / tasks / items / properties / deadline / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / tasks / items / properties / deadline / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
      • addedOutput schema / properties / tasks / items / properties / description / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / tasks / items / properties / description / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
      • addedOutput schema / properties / tasks / items / properties / projectId / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / tasks / items / properties / projectId / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
      • addedOutput schema / properties / tasks / items / properties / startDate / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / tasks / items / properties / startDate / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
      • addedOutput schema / properties / tasks / items / properties / teamId / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / tasks / items / properties / teamId / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
      • addedOutput schema / properties / tasks / items / properties / view / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / tasks / items / properties / view / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
    • Changedtask_agent_get1 field changed
      • changedOutput schema / properties / agent / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disabledAt": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "id": {
        -        "format": "uuid",
        -        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -        "type": "string"
        -      },
        -      "name": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "disabledAt",
        -      "id",
        -      "name"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disabledAt": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "id": {
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      },
        +      "name": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "disabledAt",
        +      "id",
        +      "name"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedtask_agent_register1 field changed
      • changedOutput schema / properties / agent / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "disabledAt": {
        -        "type": [
        -          "string",
        -          "null"
        -        ]
        -      },
        -      "id": {
        -        "format": "uuid",
        -        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        -        "type": "string"
        -      },
        -      "name": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "disabledAt",
        -      "id",
        -      "name"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "disabledAt": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "id": {
        +        "format": "uuid",
        +        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +        "type": "string"
        +      },
        +      "name": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "disabledAt",
        +      "id",
        +      "name"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedtask_list22 fields changed
      • addedOutput schema / properties / nextCursor / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / nextCursor / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
      • addedOutput schema / properties / tasks / items / properties / agentAssigneeId / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / tasks / items / properties / agentAssigneeId / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
      • addedOutput schema / properties / tasks / items / properties / assigneeId / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / tasks / items / properties / assigneeId / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
      • addedOutput schema / properties / tasks / items / properties / completed / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / tasks / items / properties / completed / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
      • addedOutput schema / properties / tasks / items / properties / completedAt / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / tasks / items / properties / completedAt / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
      • addedOutput schema / properties / tasks / items / properties / deadline / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / tasks / items / properties / deadline / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
      • addedOutput schema / properties / tasks / items / properties / description / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / tasks / items / properties / description / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
      • addedOutput schema / properties / tasks / items / properties / projectId / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / tasks / items / properties / projectId / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
      • addedOutput schema / properties / tasks / items / properties / startDate / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / tasks / items / properties / startDate / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
      • addedOutput schema / properties / tasks / items / properties / teamId / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / tasks / items / properties / teamId / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
      • addedOutput schema / properties / tasks / items / properties / view / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / tasks / items / properties / view / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
    • Changedtask_show22 fields changed
      • addedOutput schema / properties / comments / items / properties / createdAt / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / comments / items / properties / createdAt / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
      • addedOutput schema / properties / task / properties / agentAssigneeId / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / task / properties / agentAssigneeId / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
      • addedOutput schema / properties / task / properties / assigneeId / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / task / properties / assigneeId / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
      • addedOutput schema / properties / task / properties / completed / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / task / properties / completed / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
      • addedOutput schema / properties / task / properties / completedAt / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / task / properties / completedAt / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
      • addedOutput schema / properties / task / properties / deadline / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / task / properties / deadline / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
      • addedOutput schema / properties / task / properties / description / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / task / properties / description / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
      • addedOutput schema / properties / task / properties / projectId / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / task / properties / projectId / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
      • addedOutput schema / properties / task / properties / startDate / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / task / properties / startDate / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
      • addedOutput schema / properties / task / properties / teamId / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / task / properties / teamId / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
      • addedOutput schema / properties / task / properties / view / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / task / properties / view / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
  3. 1 tool update
    • Changedtask_done1 field changed
      • addedInput schema / properties / expectedRevision
        Added value: +{
        +  "description": "Complete only the reviewed task revision from task_show or task_list. Use with task, not tasks. A changed task returns a conflict; reload and review before trying again.",
        +  "exclusiveMinimum": 0,
        +  "maximum": 9007199254740991,
        +  "type": "integer"
        +}
  4. 2 tool updates
    • Addedtask_agent_get
    • Addedtask_agent_register
  5. 3 tool updates
    • Changedsearch3 fields changed
      • addedOutput schema / properties / tasks / items / properties / agentAssigneeId
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / tasks / items / properties / revision
        Added value: +{
        +  "maximum": 9007199254740991,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • changedOutput schema / properties / tasks / items / required
        Previous value: -[
        -  "assigneeId",
        -  "completed",
        -  "completedAt",
        -  "deadline",
        -  "description",
        -  "id",
        -  "number",
        -  "projectId",
        -  "startDate",
        -  "state",
        -  "teamId",
        -  "title",
        -  "view"
        -]New value: +[
        +  "agentAssigneeId",
        +  "assigneeId",
        +  "completed",
        +  "completedAt",
        +  "deadline",
        +  "description",
        +  "id",
        +  "number",
        +  "projectId",
        +  "revision",
        +  "startDate",
        +  "state",
        +  "teamId",
        +  "title",
        +  "view"
        +]
    • Changedtask_list3 fields changed
      • addedOutput schema / properties / tasks / items / properties / agentAssigneeId
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / tasks / items / properties / revision
        Added value: +{
        +  "maximum": 9007199254740991,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • changedOutput schema / properties / tasks / items / required
        Previous value: -[
        -  "assigneeId",
        -  "completed",
        -  "completedAt",
        -  "deadline",
        -  "description",
        -  "id",
        -  "number",
        -  "projectId",
        -  "startDate",
        -  "state",
        -  "teamId",
        -  "title",
        -  "view"
        -]New value: +[
        +  "agentAssigneeId",
        +  "assigneeId",
        +  "completed",
        +  "completedAt",
        +  "deadline",
        +  "description",
        +  "id",
        +  "number",
        +  "projectId",
        +  "revision",
        +  "startDate",
        +  "state",
        +  "teamId",
        +  "title",
        +  "view"
        +]
    • Changedtask_show3 fields changed
      • addedOutput schema / properties / task / properties / agentAssigneeId
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / task / properties / revision
        Added value: +{
        +  "maximum": 9007199254740991,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • changedOutput schema / properties / task / required
        Previous value: -[
        -  "assigneeId",
        -  "completed",
        -  "completedAt",
        -  "deadline",
        -  "description",
        -  "id",
        -  "number",
        -  "projectId",
        -  "startDate",
        -  "state",
        -  "teamId",
        -  "title",
        -  "view"
        -]New value: +[
        +  "agentAssigneeId",
        +  "assigneeId",
        +  "completed",
        +  "completedAt",
        +  "deadline",
        +  "description",
        +  "id",
        +  "number",
        +  "projectId",
        +  "revision",
        +  "startDate",
        +  "state",
        +  "teamId",
        +  "title",
        +  "view"
        +]
  6. 6 tool updates
    • Changedchecklist2 fields changed
      • removedOutput schema / properties / items / items / properties / title / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / items / items / properties / title / type
        Added value: +[
        +  "string",
        +  "null"
        +]
    • Changedget_context8 fields changed
      • removedOutput schema / properties / projects / items / properties / targetDate / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / projects / items / properties / targetDate / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / recentTasks / items / properties / deadline / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / recentTasks / items / properties / deadline / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / recentTasks / items / properties / projectId / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / recentTasks / items / properties / projectId / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / recentTasks / items / properties / view / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / recentTasks / items / properties / view / type
        Added value: +[
        +  "string",
        +  "null"
        +]
    • Changedproject4 fields changed
      • removedOutput schema / properties / key / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / key / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / name / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / name / type
        Added value: +[
        +  "string",
        +  "null"
        +]
    • Changedsearch20 fields changed
      • removedOutput schema / properties / nextCursor / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / nextCursor / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / tasks / items / properties / assigneeId / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / tasks / items / properties / assigneeId / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / tasks / items / properties / completed / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / tasks / items / properties / completed / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / tasks / items / properties / completedAt / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / tasks / items / properties / completedAt / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / tasks / items / properties / deadline / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / tasks / items / properties / deadline / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / tasks / items / properties / description / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / tasks / items / properties / description / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / tasks / items / properties / projectId / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / tasks / items / properties / projectId / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / tasks / items / properties / startDate / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / tasks / items / properties / startDate / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / tasks / items / properties / teamId / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / tasks / items / properties / teamId / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / tasks / items / properties / view / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / tasks / items / properties / view / type
        Added value: +[
        +  "string",
        +  "null"
        +]
    • Changedtask_list20 fields changed
      • removedOutput schema / properties / nextCursor / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / nextCursor / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / tasks / items / properties / assigneeId / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / tasks / items / properties / assigneeId / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / tasks / items / properties / completed / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / tasks / items / properties / completed / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / tasks / items / properties / completedAt / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / tasks / items / properties / completedAt / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / tasks / items / properties / deadline / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / tasks / items / properties / deadline / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / tasks / items / properties / description / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / tasks / items / properties / description / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / tasks / items / properties / projectId / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / tasks / items / properties / projectId / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / tasks / items / properties / startDate / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / tasks / items / properties / startDate / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / tasks / items / properties / teamId / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / tasks / items / properties / teamId / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / tasks / items / properties / view / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / tasks / items / properties / view / type
        Added value: +[
        +  "string",
        +  "null"
        +]
    • Changedtask_show20 fields changed
      • removedOutput schema / properties / comments / items / properties / createdAt / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / comments / items / properties / createdAt / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / task / properties / assigneeId / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / task / properties / assigneeId / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / task / properties / completed / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / task / properties / completed / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / task / properties / completedAt / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / task / properties / completedAt / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / task / properties / deadline / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / task / properties / deadline / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / task / properties / description / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / task / properties / description / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / task / properties / projectId / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / task / properties / projectId / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / task / properties / startDate / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / task / properties / startDate / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / task / properties / teamId / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / task / properties / teamId / type
        Added value: +[
        +  "string",
        +  "null"
        +]
      • removedOutput schema / properties / task / properties / view / anyOf
        Removed value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]
      • addedOutput schema / properties / task / properties / view / type
        Added value: +[
        +  "string",
        +  "null"
        +]
  7. 14 tool updates
    • Changedattachment1 field changed
      • changedInput schema / properties / workspace / description
        Previous value: -"Workspace id, slug, or name"New value: +"Workspace id, slug, or name. Required when the account has more than one workspace: a call without it then fails and names the choices"
    • Changedchecklist1 field changed
      • changedInput schema / properties / workspace / description
        Previous value: -"Workspace id, slug, or name"New value: +"Workspace id, slug, or name. Required when the account has more than one workspace: a call without it then fails and names the choices"
    • Changedcomment1 field changed
      • changedInput schema / properties / workspace / description
        Previous value: -"Workspace id, slug, or name"New value: +"Workspace id, slug, or name. Required when the account has more than one workspace: a call without it then fails and names the choices"
    • Changedget_context1 field changed
      • changedInput schema / properties / workspace / description
        Previous value: -"Workspace id, slug, or name"New value: +"Workspace id, slug, or name. Required when the account has more than one workspace: a call without it then fails and names the choices"
    • Changedlabel_create1 field changed
      • changedInput schema / properties / workspace / description
        Previous value: -"Workspace id, slug, or name"New value: +"Workspace id, slug, or name. Required when the account has more than one workspace: a call without it then fails and names the choices"
    • Changedproject1 field changed
      • changedInput schema / properties / workspace / description
        Previous value: -"Workspace id, slug, or name"New value: +"Workspace id, slug, or name. Required when the account has more than one workspace: a call without it then fails and names the choices"
    • Changedsearch1 field changed
      • changedInput schema / properties / workspace / description
        Previous value: -"Workspace id, slug, or name"New value: +"Workspace id, slug, or name. Required when the account has more than one workspace: a call without it then fails and names the choices"
    • Changedtask_add1 field changed
      • changedInput schema / properties / workspace / description
        Previous value: -"Workspace id, slug, or name"New value: +"Workspace id, slug, or name. Required when the account has more than one workspace: a call without it then fails and names the choices"
    • Changedtask_archive1 field changed
      • changedInput schema / properties / workspace / description
        Previous value: -"Workspace id, slug, or name"New value: +"Workspace id, slug, or name. Required when the account has more than one workspace: a call without it then fails and names the choices"
    • Changedtask_done1 field changed
      • changedInput schema / properties / workspace / description
        Previous value: -"Workspace id, slug, or name"New value: +"Workspace id, slug, or name. Required when the account has more than one workspace: a call without it then fails and names the choices"
    • Changedtask_edit1 field changed
      • changedInput schema / properties / workspace / description
        Previous value: -"Workspace id, slug, or name"New value: +"Workspace id, slug, or name. Required when the account has more than one workspace: a call without it then fails and names the choices"
    • Changedtask_list1 field changed
      • changedInput schema / properties / workspace / description
        Previous value: -"Workspace id, slug, or name"New value: +"Workspace id, slug, or name. Required when the account has more than one workspace: a call without it then fails and names the choices"
    • Changedtask_reopen1 field changed
      • changedInput schema / properties / workspace / description
        Previous value: -"Workspace id, slug, or name"New value: +"Workspace id, slug, or name. Required when the account has more than one workspace: a call without it then fails and names the choices"
    • Changedtask_show1 field changed
      • changedInput schema / properties / workspace / description
        Previous value: -"Workspace id, slug, or name"New value: +"Workspace id, slug, or name. Required when the account has more than one workspace: a call without it then fails and names the choices"
  8. 3 tool updates
    • Changedsearch2 fields changed
      • addedOutput schema / properties / tasks / items / properties / completedAt
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Completion instant in UTC (ISO 8601), or null for an unfinished task"
        +}
      • changedOutput schema / properties / tasks / items / required
        Previous value: -[
        -  "assigneeId",
        -  "completed",
        -  "deadline",
        -  "description",
        -  "id",
        -  "number",
        -  "projectId",
        -  "startDate",
        -  "state",
        -  "teamId",
        -  "title",
        -  "view"
        -]New value: +[
        +  "assigneeId",
        +  "completed",
        +  "completedAt",
        +  "deadline",
        +  "description",
        +  "id",
        +  "number",
        +  "projectId",
        +  "startDate",
        +  "state",
        +  "teamId",
        +  "title",
        +  "view"
        +]
    • Changedtask_list2 fields changed
      • addedOutput schema / properties / tasks / items / properties / completedAt
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Completion instant in UTC (ISO 8601), or null for an unfinished task"
        +}
      • changedOutput schema / properties / tasks / items / required
        Previous value: -[
        -  "assigneeId",
        -  "completed",
        -  "deadline",
        -  "description",
        -  "id",
        -  "number",
        -  "projectId",
        -  "startDate",
        -  "state",
        -  "teamId",
        -  "title",
        -  "view"
        -]New value: +[
        +  "assigneeId",
        +  "completed",
        +  "completedAt",
        +  "deadline",
        +  "description",
        +  "id",
        +  "number",
        +  "projectId",
        +  "startDate",
        +  "state",
        +  "teamId",
        +  "title",
        +  "view"
        +]
    • Changedtask_show2 fields changed
      • addedOutput schema / properties / task / properties / completedAt
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Completion instant in UTC (ISO 8601), or null for an unfinished task"
        +}
      • changedOutput schema / properties / task / required
        Previous value: -[
        -  "assigneeId",
        -  "completed",
        -  "deadline",
        -  "description",
        -  "id",
        -  "number",
        -  "projectId",
        -  "startDate",
        -  "state",
        -  "teamId",
        -  "title",
        -  "view"
        -]New value: +[
        +  "assigneeId",
        +  "completed",
        +  "completedAt",
        +  "deadline",
        +  "description",
        +  "id",
        +  "number",
        +  "projectId",
        +  "startDate",
        +  "state",
        +  "teamId",
        +  "title",
        +  "view"
        +]
  9. 36 tool updates
    • Addedattachment
    • Addedchecklist
    • Removedchecklist_add
    • Removedchecklist_done
    • Removedchecklist_edit
    • Removedchecklist_list
    • Removedchecklist_remove
    • Addedcomment
    • Removedcomment_add
    • Removedcomment_edit
    • Removedcomment_list
    • Removedcomment_remove
    • Changedget_context4 fields changed
      • addedInput schema / properties / projects_status
        Added value: +{
        +  "default": "active",
        +  "description": "Which projects to return",
        +  "enum": [
        +    "active",
        +    "done",
        +    "archived",
        +    "all"
        +  ],
        +  "type": "string"
        +}
      • removedOutput schema / properties / activeProjects
        Removed value: -{
        -  "items": {
        -    "additionalProperties": false,
        -    "properties": {
        -      "id": {
        -        "type": "string"
        -      },
        -      "key": {
        -        "type": "string"
        -      },
        -      "name": {
        -        "type": "string"
        -      },
        -      "targetDate": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      }
        -    },
        -    "required": [
        -      "id",
        -      "key",
        -      "name",
        -      "targetDate"
        -    ],
        -    "type": "object"
        -  },
        -  "type": "array"
        -}
      • addedOutput schema / properties / projects
        Added value: +{
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "id": {
        +        "type": "string"
        +      },
        +      "key": {
        +        "type": "string"
        +      },
        +      "name": {
        +        "type": "string"
        +      },
        +      "status": {
        +        "type": "string"
        +      },
        +      "targetDate": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      }
        +    },
        +    "required": [
        +      "id",
        +      "key",
        +      "name",
        +      "status",
        +      "targetDate"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "activeProjects",
        -  "labels",
        -  "members",
        -  "recentTasks",
        -  "taskCounts",
        -  "teams",
        -  "today",
        -  "viewCounts"
        -]New value: +[
        +  "labels",
        +  "members",
        +  "projects",
        +  "recentTasks",
        +  "taskCounts",
        +  "teams",
        +  "today",
        +  "viewCounts"
        +]
    • Removedlabel_add
    • Removedlabel_list
    • Removedlabel_remove
    • Addedproject
    • Removedproject_add
    • Removedproject_edit
    • Removedproject_join
    • Removedproject_leave
    • Removedproject_list
    • Changedsearch2 fields changed
      • addedOutput schema / properties / tasks / items / properties / completed
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "The date (YYYY-MM-DD) the task was completed, in the requested timezone. Null while it is still open"
        +}
      • changedOutput schema / properties / tasks / items / required
        Previous value: -[
        -  "assigneeId",
        -  "deadline",
        -  "description",
        -  "id",
        -  "number",
        -  "projectId",
        -  "startDate",
        -  "state",
        -  "teamId",
        -  "title",
        -  "view"
        -]New value: +[
        +  "assigneeId",
        +  "completed",
        +  "deadline",
        +  "description",
        +  "id",
        +  "number",
        +  "projectId",
        +  "startDate",
        +  "state",
        +  "teamId",
        +  "title",
        +  "view"
        +]
    • Changedtask_archive7 fields changed
      • addedInput schema / properties / tasks
        Added value: +{
        +  "description": "Several workspace-scoped task numbers (max 50), instead of `task`. Confirm the list with the user first: one call changes every task in it.",
        +  "items": {
        +    "description": "Workspace-scoped task number, encoded as a string",
        +    "pattern": "^[1-9]\\d*$",
        +    "type": "string"
        +  },
        +  "maxItems": 50,
        +  "minItems": 1,
        +  "type": "array"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "task",
        -  "context"
        -]New value: +[
        +  "context"
        +]
      • addedOutput schema / properties / count
        Added value: +{
        +  "maximum": 9007199254740991,
        +  "minimum": -9007199254740991,
        +  "type": "integer"
        +}
      • removedOutput schema / properties / id
        Removed value: -{
        -  "type": "string"
        -}
      • removedOutput schema / properties / number
        Removed value: -{
        -  "exclusiveMinimum": 0,
        -  "maximum": 9007199254740991,
        -  "type": "integer"
        -}
      • addedOutput schema / properties / tasks
        Added value: +{
        +  "description": "Every task the call changed, in the order it was given",
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "id": {
        +        "type": "string"
        +      },
        +      "number": {
        +        "exclusiveMinimum": 0,
        +        "maximum": 9007199254740991,
        +        "type": "integer"
        +      },
        +      "title": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "id",
        +      "number",
        +      "title"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "action",
        -  "id",
        -  "number",
        -  "ok"
        -]New value: +[
        +  "action",
        +  "count",
        +  "ok",
        +  "tasks"
        +]
    • Removedtask_assign
    • Removedtask_attach
    • Removedtask_attachment_list
    • Removedtask_attachment_remove
    • Removedtask_bulk_done
    • Removedtask_bulk_edit
    • Changedtask_done7 fields changed
      • addedInput schema / properties / tasks
        Added value: +{
        +  "description": "Several workspace-scoped task numbers (max 50), instead of `task`. Confirm the list with the user first: one call changes every task in it.",
        +  "items": {
        +    "description": "Workspace-scoped task number, encoded as a string",
        +    "pattern": "^[1-9]\\d*$",
        +    "type": "string"
        +  },
        +  "maxItems": 50,
        +  "minItems": 1,
        +  "type": "array"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "task",
        -  "context"
        -]New value: +[
        +  "context"
        +]
      • addedOutput schema / properties / count
        Added value: +{
        +  "maximum": 9007199254740991,
        +  "minimum": -9007199254740991,
        +  "type": "integer"
        +}
      • removedOutput schema / properties / id
        Removed value: -{
        -  "type": "string"
        -}
      • removedOutput schema / properties / number
        Removed value: -{
        -  "exclusiveMinimum": 0,
        -  "maximum": 9007199254740991,
        -  "type": "integer"
        -}
      • addedOutput schema / properties / tasks
        Added value: +{
        +  "description": "Every task the call changed, in the order it was given",
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "id": {
        +        "type": "string"
        +      },
        +      "number": {
        +        "exclusiveMinimum": 0,
        +        "maximum": 9007199254740991,
        +        "type": "integer"
        +      },
        +      "title": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "id",
        +      "number",
        +      "title"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "action",
        -  "id",
        -  "number",
        -  "ok"
        -]New value: +[
        +  "action",
        +  "count",
        +  "ok",
        +  "tasks"
        +]
    • Changedtask_edit9 fields changed
      • addedInput schema / properties / add_labels
        Added value: +{
        +  "description": "Labels to attach (each a label id, title, or id prefix). The label has to exist already — create one with label_create",
        +  "items": {
        +    "minLength": 1,
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / remove_labels
        Added value: +{
        +  "description": "Labels to detach (each a label id, title, or id prefix)",
        +  "items": {
        +    "minLength": 1,
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / tasks
        Added value: +{
        +  "description": "Several workspace-scoped task numbers (max 50), instead of `task`. Confirm the list with the user first: one call changes every task in it.",
        +  "items": {
        +    "description": "Workspace-scoped task number, encoded as a string",
        +    "pattern": "^[1-9]\\d*$",
        +    "type": "string"
        +  },
        +  "maxItems": 50,
        +  "minItems": 1,
        +  "type": "array"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "task",
        -  "context"
        -]New value: +[
        +  "context"
        +]
      • addedOutput schema / properties / count
        Added value: +{
        +  "maximum": 9007199254740991,
        +  "minimum": -9007199254740991,
        +  "type": "integer"
        +}
      • removedOutput schema / properties / id
        Removed value: -{
        -  "type": "string"
        -}
      • removedOutput schema / properties / number
        Removed value: -{
        -  "exclusiveMinimum": 0,
        -  "maximum": 9007199254740991,
        -  "type": "integer"
        -}
      • addedOutput schema / properties / tasks
        Added value: +{
        +  "description": "Every task the call changed, in the order it was given",
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "id": {
        +        "type": "string"
        +      },
        +      "number": {
        +        "exclusiveMinimum": 0,
        +        "maximum": 9007199254740991,
        +        "type": "integer"
        +      },
        +      "title": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "id",
        +      "number",
        +      "title"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "action",
        -  "id",
        -  "number",
        -  "ok"
        -]New value: +[
        +  "action",
        +  "count",
        +  "ok",
        +  "tasks"
        +]
    • Changedtask_list4 fields changed
      • changedInput schema / properties / view / description
        Previous value: -"Filter by GTD view bucket"New value: +"Filter by GTD view bucket. logbook and trash read the completed and archived tasks regardless of `state`"
      • changedInput schema / properties / view / enum
        Previous value: -[
        -  "inbox",
        -  "anytime",
        -  "today",
        -  "upcoming",
        -  "someday"
        -]New value: +[
        +  "inbox",
        +  "anytime",
        +  "today",
        +  "upcoming",
        +  "someday",
        +  "logbook",
        +  "trash"
        +]
      • addedOutput schema / properties / tasks / items / properties / completed
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "The date (YYYY-MM-DD) the task was completed, in the requested timezone. Null while it is still open"
        +}
      • changedOutput schema / properties / tasks / items / required
        Previous value: -[
        -  "assigneeId",
        -  "deadline",
        -  "description",
        -  "id",
        -  "number",
        -  "projectId",
        -  "startDate",
        -  "state",
        -  "teamId",
        -  "title",
        -  "view"
        -]New value: +[
        +  "assigneeId",
        +  "completed",
        +  "deadline",
        +  "description",
        +  "id",
        +  "number",
        +  "projectId",
        +  "startDate",
        +  "state",
        +  "teamId",
        +  "title",
        +  "view"
        +]
    • Changedtask_reopen7 fields changed
      • addedInput schema / properties / tasks
        Added value: +{
        +  "description": "Several workspace-scoped task numbers (max 50), instead of `task`. Confirm the list with the user first: one call changes every task in it.",
        +  "items": {
        +    "description": "Workspace-scoped task number, encoded as a string",
        +    "pattern": "^[1-9]\\d*$",
        +    "type": "string"
        +  },
        +  "maxItems": 50,
        +  "minItems": 1,
        +  "type": "array"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "task",
        -  "context"
        -]New value: +[
        +  "context"
        +]
      • addedOutput schema / properties / count
        Added value: +{
        +  "maximum": 9007199254740991,
        +  "minimum": -9007199254740991,
        +  "type": "integer"
        +}
      • removedOutput schema / properties / id
        Removed value: -{
        -  "type": "string"
        -}
      • removedOutput schema / properties / number
        Removed value: -{
        -  "exclusiveMinimum": 0,
        -  "maximum": 9007199254740991,
        -  "type": "integer"
        -}
      • addedOutput schema / properties / tasks
        Added value: +{
        +  "description": "Every task the call changed, in the order it was given",
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "id": {
        +        "type": "string"
        +      },
        +      "number": {
        +        "exclusiveMinimum": 0,
        +        "maximum": 9007199254740991,
        +        "type": "integer"
        +      },
        +      "title": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "id",
        +      "number",
        +      "title"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "action",
        -  "id",
        -  "number",
        -  "ok"
        -]New value: +[
        +  "action",
        +  "count",
        +  "ok",
        +  "tasks"
        +]
    • Changedtask_show5 fields changed
      • addedInput schema / properties / include
        Added value: +{
        +  "description": "Extra sections to load. Omit unless you need them: each is its own round trip",
        +  "items": {
        +    "enum": [
        +      "comments",
        +      "attachments"
        +    ],
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / attachments
        Added value: +{
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "filename": {
        +        "type": "string"
        +      },
        +      "id": {
        +        "type": "string"
        +      },
        +      "mediaType": {
        +        "type": "string"
        +      },
        +      "sizeBytes": {
        +        "maximum": 9007199254740991,
        +        "minimum": -9007199254740991,
        +        "type": "integer"
        +      },
        +      "url": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "filename",
        +      "id",
        +      "mediaType",
        +      "sizeBytes",
        +      "url"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / comments
        Added value: +{
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "author": {
        +        "description": "Display name of the member who wrote it",
        +        "type": "string"
        +      },
        +      "authorId": {
        +        "type": "string"
        +      },
        +      "body": {
        +        "type": "string"
        +      },
        +      "createdAt": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ],
        +        "description": "ISO 8601 instant"
        +      },
        +      "edited": {
        +        "description": "True when the body has been changed since it was posted",
        +        "type": "boolean"
        +      },
        +      "id": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "author",
        +      "authorId",
        +      "body",
        +      "createdAt",
        +      "edited",
        +      "id"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / task / properties / completed
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "The date (YYYY-MM-DD) the task was completed, in the requested timezone. Null while it is still open"
        +}
      • changedOutput schema / properties / task / required
        Previous value: -[
        -  "assigneeId",
        -  "deadline",
        -  "description",
        -  "id",
        -  "number",
        -  "projectId",
        -  "startDate",
        -  "state",
        -  "teamId",
        -  "title",
        -  "view"
        -]New value: +[
        +  "assigneeId",
        +  "completed",
        +  "deadline",
        +  "description",
        +  "id",
        +  "number",
        +  "projectId",
        +  "startDate",
        +  "state",
        +  "teamId",
        +  "title",
        +  "view"
        +]
    • Removedteam_list
  10. 35 tool updates
    • First observedchecklist_add
    • First observedchecklist_done
    • First observedchecklist_edit
    • First observedchecklist_list
    • First observedchecklist_remove
    • First observedcomment_add
    • First observedcomment_edit
    • First observedcomment_list
    • First observedcomment_remove
    • First observedget_context
    • First observedguide
    • First observedlabel_add
    • First observedlabel_create
    • First observedlabel_list
    • First observedlabel_remove
    • First observedproject_add
    • First observedproject_edit
    • First observedproject_join
    • First observedproject_leave
    • First observedproject_list
    • First observedsearch
    • First observedtask_add
    • First observedtask_archive
    • First observedtask_assign
    • First observedtask_attach
    • First observedtask_attachment_list
    • First observedtask_attachment_remove
    • First observedtask_bulk_done
    • First observedtask_bulk_edit
    • First observedtask_done
    • First observedtask_edit
    • First observedtask_list
    • First observedtask_reopen
    • First observedtask_show
    • First observedteam_list

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Perplexity for social: ask what competitors are running across social and get answers grounded in real ad and creative data, not guesses.
    2
    Apache 2.0
  • A
    license
    A
    quality
    C
    maintenance
    Enables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.
    16
    11 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources