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.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
80.3% over 41 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.4/5.0

Scored across 15 tools

Disambiguation4/5

Most tools are clearly scoped to one resource: task_* tools, search, project, label_create, get_context, and guide all have distinct purposes. The generic noun tools (attachment, checklist, comment, project) share an `action` sub-parameter and could be confused at a glance, but their descriptions sharply separate them and explicitly point to the right tool for each operation.

Naming Consistency4/5

Task operations follow a clean `task_<verb>` pattern (task_add, task_edit, task_list, task_show), which is predictable and readable. The remaining tools are mostly resource nouns (attachment, checklist, comment, project, search) with `label_create` and `get_context`/`guide` as minor convention-breakers, so the overall pattern is consistent but not perfectly uniform.

Tool Count5/5

Fifteen tools is well within the ideal range for a task-management server, and each tool addresses a substantial distinct capability. The count feels intentional rather than padded, with task operations, sub-resources, and workspace orientation all represented without redundancy.

Completeness4/5

The core task lifecycle is well covered: create, list, search, show, edit, complete, reopen, archive, plus comments, checklists, attachments, projects, and labels. Minor gaps exist—no label editing/deletion, no permanent task deletion, and no project deletion—but agents can work around these and the main workflows have no dead ends.

Available Tools

15 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
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.9/5.0
Behavior5/5

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

The description adds substantial behavior beyond annotations: the server downloads and verifies the URL, the model never sends file bytes, retries are safe with a stable idempotency key, and hard constraints (10 attachments, 10 MB, allowed types) are listed. The destructive 'remove' behavior matches destructiveHint=true.

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?

A sequence of tight sentences front-loads the core action and then covers add/remove behavior, retry guidance, read alternative, and constraints. Every sentence adds operational value and there is no filler or repetition.

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 dual-action tool with a visible output schema and complete parameter descriptions, the description covers all operational essentials: mechanics, constraints, retry semantics, allowed file types, and the sibling for reading attachments. Nothing required for correct invocation is left to guesswork.

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 schema already documents parameters; the description enhances key ones by clarifying the HTTPS requirement, idempotency semantics, and what 'remove' targets. It doesn't exhaustively restate every parameter, but it adds meaning beyond the schema without needing to.

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+resource pair, 'Add a file to a task or remove one,' and then disambiguates the two action modes. It also names the read alternative (task_show), making it easy to tell this attachment tool apart from the listed siblings.

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?

Explicitly tells the agent when to use add versus remove, how to make retries safe via idempotency_key, and points to task_show with include: ['attachments'] for reading files. This is direct when/when-not guidance with a named alternative.

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
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.7/5.0
Behavior5/5

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

Beyond the destructiveHint annotation, the description discloses key behaviors: added items are appended unchecked, `titles` preserves order, parallel adds land in arrival order, edit can rename and/or toggle completion, and remove deletes one item. This gives an agent an accurate mental model of side effects.

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?

The description is compact and front-loaded with the tool's purpose, then efficiently explains each action with relevant behavioral detail. No sentences are wasted, and the guidance about order and task_show 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?

The description is complete enough for an agent to call the tool correctly: all actions are defined, required item IDs are sourced from task_show, and output schema covers return values. It leans on the schema for scoping parameters like `workspace` and `idempotency_key`, which is acceptable given full schema coverage.

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 already documents all parameters, and the description adds meaning beyond it by explaining the relationship between `title` and `titles`, the ordering guarantee, and how `completed: true/false` behaves on edit. This is substantial parameter-level value on top of high schema coverage.

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 clearly states a specific verb and resource: 'Change the checklist on a task,' then enumerates the three supported actions (`add`, `edit`, `remove`). It also distinguishes itself from task_show by explicitly directing reads there.

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?

The description gives concrete usage guidance, especially for multi-item adds: pass all titles in one call via `titles` to preserve order, instead of parallel single adds. It also names task_show as the place to read the checklist, but it does not explicitly explain when to use this over sibling tools like task_edit.

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
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?

Beyond the destructiveHint annotation, the description discloses attribution to the connected user, workspace-wide visibility, lack of notifications, author-only editing with an edited marker, and no-Trash permanent deletion. These are non-obvious behavioral consequences an agent must know before acting. 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.

Conciseness5/5

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

The description front-loads the core purpose and then allocates one dense, informative sentence per action. Every sentence carries a critical warning or constraint; there is no filler or repetition.

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 all three action modes, permission constraints, permanence, notification behavior, and the read alternative. With an output schema present and 100% parameter coverage, nothing essential for correct selection or invocation 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. The description adds meaning by explaining the effect and constraints of each action, such as edit requiring an owned comment and remove being irreversible. It leaves idempotency_key and comment-prefix details to the schema, which already documents them.

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 ('Write on a task's comment thread') and then enumerates three concrete actions, each with distinct behavior. This clearly separates it from siblings like task_edit (which edits task fields) and task_show (which reads the thread).

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?

It explicitly states when to use each action: add for posting visible comments, edit for one's own comments, remove for permanent deletion requiring user confirmation. It also directs the agent to the alternative read tool, task_show with include: ['comments'], leaving no ambiguity.

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
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.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context: it returns a snapshot, includes only the latest few recent tasks, and is the sole resolver for projects/labels/teams/members. It does not detail pagination or exact response shape, but the output schema exists and the read-only nature is already annotated, so the added context is sufficient.

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?

The description is a single dense paragraph that front-loads the core purpose and scope, then adds usage guidance and sibling routing. It is slightly long but every sentence earns its place: the first sentence defines the snapshot contents, the second clarifies the resolver role, and the third gives explicit when-not-to-use guidance. No filler or repetition.

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 read-only snapshot tool with a rich output schema and full schema coverage, the description covers the essential context: what the tool returns, when to use it, and how it differs from siblings. It does not mention pagination or the exact meaning of 'recent', but the output schema and the explicit 'latest few' caveat make the tool callable correctly. A small gap is the lack of detail on how the timezone parameter affects the snapshot, but that is documented in 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 all five parameters. The description adds minimal parameter-level meaning beyond the schema, though it does clarify the tool's overall scope. The timezone parameter's warning about UTC misclassification is in the schema, not the description. Baseline 3 is appropriate because the schema carries the parameter documentation burden.

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 states a specific verb ('Get a snapshot') and resource ('current workspace'), enumerates exactly what is included (task counts per view, recent open tasks, projects, labels, teams, members), and explicitly distinguishes itself from sibling tools like task_list, search, and task_show. It also clarifies that it is the only tool for resolving projects/labels/teams/members by name, which fully disambiguates it 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 Guidelines5/5

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

The description gives explicit when-to-use guidance: use it to answer what is in the workspace and to resolve entities by name, and explicitly warns not to use it as a warm-up before every turn. It also names the alternatives for tasks (task_list, search, task_show) and states that the recent tasks here are only the latest few, so an agent knows when to prefer those siblings.

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
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 only indicate a mutating, non-read-only operation; the description adds crucial behavioral detail: titles are not unique, repeated calls with the same title create duplicates, and only the label itself is created. It does not discuss idempotency_key behavior or permissions, but those are partially covered by the schema and annotations.

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: first states the core action and return value, second routes to alternatives, third warns about duplicates. Information is front-loaded and there is no filler.

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?

Given the simple tool shape, full parameter descriptions, and an output schema, the description covers purpose, scope, return value, duplicate behavior, and sibling integration. An agent has enough information to call it correctly and avoid common mistakes.

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. The description adds useful semantics for the `title` parameter: non-uniqueness, duplicate risk, and reuse guidance. It does not elaborate on `workspace` or `idempotency_key`, but the schema already documents those clearly.

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 states a specific verb and resource: 'Create a new label in the workspace and return its id.' It also distinguishes itself from sibling tools by saying 'Only creates the label' and pointing to task_add/task_edit for attaching it, making its scope unambiguous.

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?

It gives explicit when-to-use guidance: if the goal is to attach a label to a task, use task_add or task_edit instead. It also instructs the agent to check existing labels via get_context and reuse one, preventing unnecessary duplicate creation.

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
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.9/5.0
Behavior5/5

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

Annotations already flag this as non-read-only and destructive, and the description enriches that with concrete behavior: edits are partial ('only the fields given change'), empty strings clear description/target_date, and join/leave mutate sidebar membership. No contradiction with the annotations exists.

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?

The description is front-loaded with the core purpose and each subsequent sentence earns its place by explaining one action or a key edge case. It is dense but compact, with no filler or repetition of schema details.

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 9-parameter tool with four actions, the description covers all behavioral decisions the agent must make, while the rich schema and output schema cover remaining parameter details and return values. It even names the read alternative to complete the workflow picture.

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; the description adds meaningful semantics beyond the schema by explaining the action enum and partial-update/clearing behavior. It does not duplicate every parameter but focuses on the non-obvious action-dependent constraints.

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 states a specific verb-resource pair ('Create or change a project') and then enumerates the four distinct actions (add, edit, join, leave) with their exact effects. This clearly differentiates the tool from siblings like get_context and task_add by resource and operation type.

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?

The description gives explicit action semantics and tells the agent when to use the read alternative: 'Read projects with get_context.' Each action's precondition (add requires name; edit, join, leave target the named project) is stated, so there is little ambiguity about when to invoke this tool.

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

task_addAdd TaskAInspect

Create a new task. The when parameter controls which GTD view it appears in: today (default), inbox, upcoming, anytime, or someday. A new task lands in Today unless you say otherwise, so pass when: "inbox" for a capture the user has not committed to doing today. Because the default is date-dependent, always pass the user's timezone — without it today is resolved in UTC. Dates use YYYY-MM-DD format. Optionally set an assignee, attach existing labels, and create checklist items at creation. For a task with sub-items (e.g. a shopping list), pass them in checklist in one call: their order is preserved exactly. The result names the view the task landed in. This only creates: to change a task that already exists use task_edit (fields) or checklist (items), and search first when the user may be describing a task they already have.

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 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
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

TDQS

A5/5.0
Behavior5/5

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

Discloses important behavioral details beyond annotations: default placement in Today, timezone-dependent resolution of 'today' (UTC fallback), three exceptions that change the default view (deadline, missing timezone, project/team), checklist order preservation, and that the result names the landed view. Annotations are minimal (all false), so the description carries the full burden and succeeds.

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?

The description is compact yet information-dense. Every sentence contributes: purpose, view behavior, timezone caveat, date format, optional fields, checklist handling, result naming, and sibling routing. It front-loads the core purpose and key behavioral caveats before enumerating options. No filler or redundancy.

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?

Given 13 parameters, an output schema, and minimal annotations, the description covers all critical operational details: default behavior, exceptions, timezone handling, date format, optional fields, checklist semantics, result content, and when to use alternatives. An agent can confidently invoke this tool without ambiguity. The output schema handles return details, so nothing critical 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?

Schema coverage is 100%, so the baseline is 3. The description adds substantial semantic value: explains `when` enum behavior with default and exceptions, clarifies that `timezone` must be passed to resolve 'today' correctly, notes checklist order is preserved, and mentions idempotency_key makes retries safe. It goes well beyond the schema's per-property descriptions.

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 'Create a new task' – a specific verb and resource. It immediately differentiates from sibling tools by explicitly naming task_edit, checklist, and search as alternatives for modification, sub-items, and existing-task discovery. No ambiguity about what this tool does.

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?

Provides explicit when-to-use guidance: 'This only creates: to change a task that already exists use task_edit (fields) or checklist (items), and search first when the user may be describing a task they already have.' It also explains the `when` parameter's role in GTD views and when to pass `when: "inbox"` for captures. The timezone requirement is clearly stated with a reason.

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

Output Schema

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

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already include destructiveHint=true, but the description adds crucial detail: tasks move to the Trash view, leave working lists, and remain readable there. It also clarifies that archiving is not completing, which prevents misuse, and requires user confirmation before acting.

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 sentences, each carrying distinct value: action, effect, differentiation from task_done, and confirmation requirement. No wasted words, and the most important action is 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 destructive tool with an output schema and rich annotations, the description fully covers purpose, behavior, alternatives, and user-confirmation requirements. 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?

Schema coverage is 100%, so the baseline is 3. The description adds meaningful context for the 'tasks' parameter by noting it supports batch archiving (max 50) and that one call changes every task in the list, plus the requirement to confirm the list first. This goes beyond the schema's property descriptions.

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 clearly states the action ('Archive a task') and distinguishes it from sibling tools by explicitly contrasting with task_done ('use task_done for work that was finished'). It also specifies the effect (move to Trash view), leaving no ambiguity about what the tool does.

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?

Provides explicit when-to-use guidance ('only for tasks the user wants gone') and when-not-to-use ('use task_done for work that was finished'). Also instructs the agent to confirm with the user first, which covers a key gatekeeping requirement.

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

Output Schema

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

TDQS

A4.5/5.0
Behavior4/5

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

Annotations only say the tool is not read-only and not destructive, so the description adds meaningful behavior: completed tasks move to the Logbook view, and a batch completion is effectively one call affecting every task with a slow per-task undo path. This is useful contextual disclosure beyond the structured annotations.

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 short sentences, each earning its place: the core action, the destination view, and the batch confirmation warning. The most important use case is front-loaded and there is no filler.

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?

The tool is simple enough that the description, combined with the fully documented schema and output schema, covers everything an agent needs: what to do, batch limits, user confirmation, post-completion destination, and reversal via task_reopen.

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%, and the schema already explains `task`, `tasks`, maxItems 50, context requirements, and workspace. The description repeats `tasks` and max 50 but adds no new parameter-level meaning, 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?

The description opens with a specific verb and resource: 'Mark a task as complete.' It also clearly covers the batch variant via `tasks`, mentions the max of 50, and names `task_reopen` as the inverse operation, distinguishing this 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 Guidelines5/5

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

The description explicitly tells the agent when to use the batch path ('several at once with `tasks`'), warns about the undo cost ('undone one task_reopen call at a time'), and instructs confirming the list with the user first. The alternative for reversal is named directly.

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

task_editEdit TaskA
Idempotent
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 checklist; 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)
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
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

TDQS

A4.6/5.0
Behavior5/5

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

Even though annotations already mark the tool as non-read-only and non-destructive, the description adds substantial behavioral detail: partial update semantics ('omitted fields are left untouched'), clear-flag usage, notes replacement (no append), batch edit behavior, irreversibility, and the need for user confirmation. This goes well beyond the annotations and is valuable for safe invocation.

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?

The description is dense but well-structured, leading with the core purpose and then layering edge cases and routing guidance. Every sentence contributes, though it is long enough that an agent must read carefully. It is not bloated, just thorough.

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 15-parameter tool with batch semantics, the description covers the critical gotchas: partial updates, clear list, notes replacement, assignee behavior, label operations, batch irreversibility, and sibling tool routing. An output schema exists, so return-value documentation is not needed. The description is complete for correct invocation.

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 the baseline is 3. The description does reinforce key parameter behaviors (e.g., 'clear' vs empty string, notes replacing existing), but most of the parameter meaning already lives in the schema. It adds marginal but not transformative value over 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 description states a specific verb ('Update') and resource ('one task or several at once'), and explicitly distinguishes itself from sibling tools by saying it does not change status or checklist items. This is a textbook example of sibling differentiation.

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?

The description gives explicit when-to-use ('Update fields on one task or several'), when-not-to-use ('For status changes use task_done, task_reopen or task_archive, and for checklist items use checklist'), and even operational guidance ('confirm the list with the user first' for batch edits). This covers both alternatives and user-facing workflow.

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

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

Output Schema

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

TDQS

A4.9/5.0
Behavior5/5

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

Discloses behaviors beyond the readOnlyHint/destructiveHint annotations: ordering rules (recency; completion time for done tasks), view/state overrides for logbook and trash, search-based reordering, and pagination semantics (limit/hasMore/nextCursor). This gives the agent a clear model of what happens and what to expect.

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?

The description is dense yet efficient: every sentence covers a distinct aspect (purpose/ordering, filtering semantics, pagination, sibling routing). It is front-loaded with the primary action and resource, and contains no filler or redundancy.

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 a rich output schema and read-only annotations present, the description fills the important gaps: ordering, view/state interplay, pagination, and alternative tool routing. An agent has enough context to call the tool correctly for filtering and paginated iteration without further clarification.

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. The description adds meaning beyond the schema by explaining how ordering is affected by state/view, how `search` changes the result order, and how `cursor`/`limit` pagination behaves. It does not repeat parameter defaults or types, 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 ('List') and resource ('tasks in the workspace'), plus the ordering behavior (most recently updated first). Explicitly distinguishes itself from sibling tools by pointing to 'search' and 'task_show', so an agent can tell them apart immediately.

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: 'To find a task by its words across every view use search instead, and task_show for one task's checklist, comments and files.' It also clarifies when to use logbook/trash views and how the `search` param interacts with the existing filter, leaving no ambiguity about selection.

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

Output Schema

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

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already mark this as non-read-only and idempotent, so the description adds useful behavioral detail: each task 'returns to its previous view' and batch size is capped at 50. It does not discuss permissions or error behavior, but the annotation coverage lowers the burden.

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?

The description is two short sentences with no filler. It front-loads the primary action and resource, states the batch option and limit, and closes with the behavior of reopening. Every sentence earns its place.

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?

Given the rich input schema, annotations, and output schema, the description is complete enough. It covers the main use case, batch mutation behavior, result semantics, and the completed-task prerequisite. Nothing essential 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 description coverage is 100%, so the baseline is 3. The tool description adds value by clarifying that `task`/`tasks` must refer to completed tasks and by restating the batch limit. The `context` and `workspace` parameters are fully documented 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?

The description uses a specific verb ('Reopen') and resource ('completed task'), and adds the qualifier 'completed' to distinguish it from related task-mutation siblings like task_done. It also explicitly covers the batch variant with `tasks`, so an agent knows exactly what operation this tool performs.

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?

The description gives clear usage context: use this tool for completed tasks, and use the `tasks` variant for reopening several at once up to 50. It does not explicitly name alternatives or state when not to use it, but the 'completed task' scope is sufficient guidance for most cases.

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

Output Schema

ParametersJSON Schema
NameRequiredDescription
taskYes
labelsYes
commentsNo
attachmentsNo
checklistItemsYes

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the read-only safety profile is covered. The description adds valuable behavior beyond that: comments come oldest first with author and edit status, attachments each include a short-lived signed URL, and optional sections are extra round trips.

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 carry substantial information with no filler. The main purpose is front-loaded first, and the include details are efficiently placed in the second sentence.

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 detail tool with a rich output schema and fully described parameters, the description is complete. It covers scope, optional sections, and their behavioral characteristics; nothing needed for correct invocation 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 schema already documents the parameters. The description enhances the 'include' parameter specifically by explaining what each value returns and the extra-read cost, which is meaning beyond the schema's generic description.

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 states a specific verb ('Get full details') and resource ('a single task') and enumerates what is included: fields, labels, and checklist items. It distinguishes itself from list-oriented siblings by emphasizing it targets one workspace-scoped task number.

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?

The description gives clear guidance on when to add the 'include' parameter: only for comments or attachments that cost extra reads, with 'Omit unless you need them' reinforcing restraint. It does not explicitly name sibling alternatives like task_list, but the single-task scope is clear enough for an agent to route correctly.

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. 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"
        +]
  2. 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
  3. 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
    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
    7 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables tracking competitor websites, changelogs, blog feeds, and pricing pages with meaningful diffs, classification, and Markdown digests via MCP tools for listing, adding, removing competitors, running checks, and retrieving digests or changes.
    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