Done Bear MCP
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.
- Status
- Healthy
- Uptime
- 80.3% over 41 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 15 tools
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.
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.
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.
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 toolsattachmentManage Task AttachmentADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | HTTPS URL of the file to attach. Required to add | |
| task | Yes | Workspace-scoped task number, encoded as a string | |
| action | Yes | Whether to attach a file or delete one | |
| context | Yes | Explain 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." | |
| filename | No | Display filename on an add; defaults to the URL's last path segment | |
| workspace | No | Workspace id, slug, or name | |
| attachment | No | Attachment UUID or prefix (>= 4 chars). Required to remove | |
| idempotency_key | No | Stable key that makes retries safe: repeated calls with the same key create only one record and return the same id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| ok | Yes | |
| action | Yes | |
| taskId | Yes | |
| attachment | Yes | The stored file on an add; null on a remove |
TDQS
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.
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.
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.
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.
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.
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 ChecklistADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| item | No | Checklist item UUID or prefix (>= 4 chars). Required to edit or remove | |
| task | Yes | Workspace-scoped task number, encoded as a string | |
| title | No | One item title to add, or the new title on an edit | |
| action | Yes | What to do to the checklist | |
| titles | No | Several item titles to add, kept in the given order (use instead of `title`) | |
| context | Yes | Explain 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." | |
| completed | No | Check (true) or uncheck (false) the item, on an edit | |
| workspace | No | Workspace id, slug, or name | |
| idempotency_key | No | Stable key that makes retries safe: repeated calls with the same key create only one record and return the same id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| count | Yes | |
| items | Yes | The items the call created or changed |
| action | Yes | |
| taskId | Yes |
TDQS
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.
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.
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.
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.
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.
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 CommentADestructiveInspect
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"].
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | Comment text. Required to add or edit | |
| task | Yes | Workspace-scoped task number, encoded as a string | |
| action | Yes | What to do on the thread | |
| comment | No | Comment UUID or prefix (>= 4 chars). Required to edit or remove | |
| context | Yes | Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): "Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization." | |
| workspace | No | Workspace id, slug, or name | |
| idempotency_key | No | Stable key that makes retries safe: repeated calls with the same key create only one record and return the same id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| ok | Yes | |
| action | Yes | |
| taskId | Yes |
TDQS
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.
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.
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.
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.
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.
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 ContextARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| context | Yes | Explain 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." | |
| timezone | No | IANA 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. | |
| workspace | No | Workspace id, slug, or name | |
| tasks_limit | No | Max recent open tasks to return | |
| projects_status | No | Which projects to return | active |
Output Schema
| Name | Required | Description |
|---|---|---|
| teams | Yes | |
| today | Yes | Today's date (YYYY-MM-DD) in the requested timezone (UTC when none given) |
| labels | Yes | |
| members | Yes | |
| projects | Yes | |
| taskCounts | Yes | |
| viewCounts | Yes | |
| recentTasks | Yes |
TDQS
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.
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.
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.
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.
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.
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 GuideARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes | Guide topic to read | |
| context | Yes | Explain 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
| Name | Required | Description |
|---|---|---|
| title | Yes | |
| topic | Yes | |
| markdown | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Label title | |
| context | Yes | Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): "Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization." | |
| workspace | No | Workspace id, slug, or name | |
| idempotency_key | No | Stable key that makes retries safe: repeated calls with the same key create only one record and return the same id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| ok | Yes | |
| title | Yes |
TDQS
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.
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.
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.
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.
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.
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 ProjectADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Project name. Required on add; a rename on edit | |
| action | Yes | What to do with the project | |
| status | No | Project status (edit only) | |
| context | Yes | Explain 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." | |
| project | No | Project id, key, or name. Required for edit, join and leave | |
| workspace | No | Workspace id, slug, or name | |
| description | No | Project description (empty string clears it on an edit) | |
| target_date | No | Target date (YYYY-MM-DD), or an empty string to clear it (edit only) | |
| idempotency_key | No | Stable key that makes retries safe: repeated calls with the same key create only one record and return the same id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| ok | Yes | |
| key | Yes | |
| name | Yes | |
| action | Yes |
TDQS
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.
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.
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.
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.
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.
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.
searchSearch TasksARead-onlyInspect
Search tasks across the workspace. Ranked lexical search over title and description: exact and prefix matches rank first, then word-boundary, substring, and fuzzy matches, with recency and status factored in. Multi-word queries match in any order. Searches every state by default, completed and archived included. Use this when the user names a task by its words; use task_list to browse a view (Today, Inbox, …) and task_show once you have the task number.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results | |
| query | Yes | Search query (matches title and description) | |
| state | No | Filter by task state | all |
| cursor | No | Opaque pagination cursor from a previous call's `nextCursor`. Pass it with the same filters to fetch the next page. | |
| context | Yes | Explain 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." | |
| timezone | No | IANA 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. | |
| workspace | No | Workspace id, slug, or name |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| query | Yes | |
| tasks | Yes | |
| total | Yes | |
| hasMore | Yes | True when more results matched than were returned |
| nextCursor | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only and non-destructive, and the description adds valuable behavioral detail: default search over every state including completed/archived, multi-word matching in any order, and the ranking algorithm. This exceeds what the structured annotations alone provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core search function, then gives behavioral specifics, then usage alternatives. Every sentence earns its place, and there is no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only search tool with a complete input schema and an output schema, the description is sufficient: it covers default behavior, ranking, workspace scope, and sibling routing. Missing details like rate limits are not essential for reliable invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so a baseline of 3 is appropriate, but the description adds meaningful semantics by explaining query matching behavior, ranking, and the default state scope. It does not restate every parameter, which is acceptable given the schema already documents them thoroughly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Search tasks across the workspace') and details the lexical search behavior, including ranking priority and match types. It clearly distinguishes this tool from the siblings task_list and task_show by naming them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 search when the user names a task by its words. It also names alternatives (task_list for browsing views, task_show once the task number is known), leaving no ambiguity about routing.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| team | No | Team id, key, or name | |
| when | No | GTD 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. | |
| notes | No | Task description/notes | |
| title | Yes | Task title | |
| labels | No | Labels to attach (each a label id, title, or id prefix) | |
| context | Yes | Explain 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." | |
| project | No | Project id, key, or name to assign this task to | |
| assignee | No | Member user id, name, or email to assign the task to | |
| deadline | No | Due date in YYYY-MM-DD format | |
| timezone | No | IANA 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. | |
| checklist | No | Checklist item titles to create on the task, kept in the given order | |
| workspace | No | Workspace id, slug, or name | |
| idempotency_key | No | Stable key that makes retries safe: repeated calls with the same key create only one record and return the same id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| ok | Yes | |
| view | Yes | |
| title | Yes | |
| number | Yes | |
| checklistCount | Yes |
TDQS
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.
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.
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.
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.
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.
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 TaskADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| task | No | Workspace-scoped task number, encoded as a string | |
| tasks | No | Several workspace-scoped task numbers (max 50), instead of `task`. Confirm the list with the user first: one call changes every task in it. | |
| context | Yes | Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): "Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization." | |
| workspace | No | Workspace id, slug, or name |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| count | Yes | |
| tasks | Yes | Every task the call changed, in the order it was given |
| action | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| task | No | Workspace-scoped task number, encoded as a string | |
| tasks | No | Several workspace-scoped task numbers (max 50), instead of `task`. Confirm the list with the user first: one call changes every task in it. | |
| context | Yes | Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): "Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization." | |
| workspace | No | Workspace id, slug, or name |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| count | Yes | |
| tasks | Yes | Every task the call changed, in the order it was given |
| action | Yes |
TDQS
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.
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.
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.
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.
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.
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 TaskAIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| task | No | Workspace-scoped task number, encoded as a string | |
| team | No | Team id, key, or name | |
| when | No | Move to a different GTD view | |
| clear | No | Fields to remove a value from, e.g. ["deadline"]. Use this rather than sending an empty string. | |
| notes | No | New description/notes (replaces existing) | |
| tasks | No | Several workspace-scoped task numbers (max 50), instead of `task`. Confirm the list with the user first: one call changes every task in it. | |
| title | No | New title | |
| context | Yes | Explain 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." | |
| project | No | Project id, key, or name | |
| assignee | No | Assign to a member (user id, name, or email) | |
| deadline | No | Set due date (YYYY-MM-DD) | |
| timezone | No | IANA 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. | |
| workspace | No | Workspace id, slug, or name | |
| add_labels | No | Labels to attach (each a label id, title, or id prefix). The label has to exist already — create one with label_create | |
| remove_labels | No | Labels to detach (each a label id, title, or id prefix) |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| count | Yes | |
| tasks | Yes | Every task the call changed, in the order it was given |
| action | Yes |
TDQS
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.
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.
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.
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.
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.
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 TasksARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| view | No | Filter by GTD view bucket. logbook and trash read the completed and archived tasks regardless of `state` | |
| limit | No | Max results | |
| state | No | Filter by task state | open |
| cursor | No | Opaque pagination cursor from a previous call's `nextCursor`. Pass it with the same filters to fetch the next page. | |
| search | No | Ranked lexical search over title/description; when set, results are ordered by relevance instead of recency | |
| context | Yes | Explain 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." | |
| timezone | No | IANA 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. | |
| workspace | No | Workspace id, slug, or name |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| tasks | Yes | |
| total | Yes | |
| hasMore | Yes | True when more results matched than were returned |
| nextCursor | Yes |
TDQS
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.
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.
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.
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.
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.
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 TaskAIdempotentInspect
Reopen a completed task, or several at once with tasks (max 50). Each returns to its previous view.
| Name | Required | Description | Default |
|---|---|---|---|
| task | No | Workspace-scoped task number, encoded as a string | |
| tasks | No | Several workspace-scoped task numbers (max 50), instead of `task`. Confirm the list with the user first: one call changes every task in it. | |
| context | Yes | Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): "Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization." | |
| workspace | No | Workspace id, slug, or name |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| count | Yes | |
| tasks | Yes | Every task the call changed, in the order it was given |
| action | Yes |
TDQS
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.
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.
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.
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.
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.
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 DetailsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | Workspace-scoped task number, encoded as a string | |
| context | Yes | Explain 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." | |
| include | No | Extra sections to load. Omit unless you need them: each is its own round trip | |
| timezone | No | IANA 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. | |
| workspace | No | Workspace id, slug, or name |
Output Schema
| Name | Required | Description |
|---|---|---|
| task | Yes | |
| labels | Yes | |
| comments | No | |
| attachments | No | |
| checklistItems | Yes |
TDQS
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.
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.
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.
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.
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.
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.
3 tool updates
- Changed
search2 fields changed- added
Output schema / properties / tasks / items / properties / completedAtAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Completion instant in UTC (ISO 8601), or null for an unfinished task" +} - changed
Output schema / properties / tasks / items / requiredPrevious 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" +]
- Changed
task_list2 fields changed- added
Output schema / properties / tasks / items / properties / completedAtAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Completion instant in UTC (ISO 8601), or null for an unfinished task" +} - changed
Output schema / properties / tasks / items / requiredPrevious 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" +]
- Changed
task_show2 fields changed- added
Output schema / properties / task / properties / completedAtAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "description": "Completion instant in UTC (ISO 8601), or null for an unfinished task" +} - changed
Output schema / properties / task / requiredPrevious 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" +]
36 tool updates
- Added
attachment - Added
checklist - Removed
checklist_add - Removed
checklist_done - Removed
checklist_edit - Removed
checklist_list - Removed
checklist_remove - Added
comment - Removed
comment_add - Removed
comment_edit - Removed
comment_list - Removed
comment_remove - Changed
get_context4 fields changed- added
Input schema / properties / projects_statusAdded value: +{ + "default": "active", + "description": "Which projects to return", + "enum": [ + "active", + "done", + "archived", + "all" + ], + "type": "string" +} - removed
Output schema / properties / activeProjectsRemoved 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" -} - added
Output schema / properties / projectsAdded 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" +} - changed
Output schema / requiredPrevious value: -[ - "activeProjects", - "labels", - "members", - "recentTasks", - "taskCounts", - "teams", - "today", - "viewCounts" -]New value: +[ + "labels", + "members", + "projects", + "recentTasks", + "taskCounts", + "teams", + "today", + "viewCounts" +]
- Removed
label_add - Removed
label_list - Removed
label_remove - Added
project - Removed
project_add - Removed
project_edit - Removed
project_join - Removed
project_leave - Removed
project_list - Changed
search2 fields changed- added
Output schema / properties / tasks / items / properties / completedAdded 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" +} - changed
Output schema / properties / tasks / items / requiredPrevious 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" +]
- Changed
task_archive7 fields changed- added
Input schema / properties / tasksAdded 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" +} - changed
Input schema / requiredPrevious value: -[ - "task", - "context" -]New value: +[ + "context" +] - added
Output schema / properties / countAdded value: +{ + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" +} - removed
Output schema / properties / idRemoved value: -{ - "type": "string" -} - removed
Output schema / properties / numberRemoved value: -{ - "exclusiveMinimum": 0, - "maximum": 9007199254740991, - "type": "integer" -} - added
Output schema / properties / tasksAdded 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" +} - changed
Output schema / requiredPrevious value: -[ - "action", - "id", - "number", - "ok" -]New value: +[ + "action", + "count", + "ok", + "tasks" +]
- Removed
task_assign - Removed
task_attach - Removed
task_attachment_list - Removed
task_attachment_remove - Removed
task_bulk_done - Removed
task_bulk_edit - Changed
task_done7 fields changed- added
Input schema / properties / tasksAdded 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" +} - changed
Input schema / requiredPrevious value: -[ - "task", - "context" -]New value: +[ + "context" +] - added
Output schema / properties / countAdded value: +{ + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" +} - removed
Output schema / properties / idRemoved value: -{ - "type": "string" -} - removed
Output schema / properties / numberRemoved value: -{ - "exclusiveMinimum": 0, - "maximum": 9007199254740991, - "type": "integer" -} - added
Output schema / properties / tasksAdded 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" +} - changed
Output schema / requiredPrevious value: -[ - "action", - "id", - "number", - "ok" -]New value: +[ + "action", + "count", + "ok", + "tasks" +]
- Changed
task_edit9 fields changed- added
Input schema / properties / add_labelsAdded 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" +} - added
Input schema / properties / remove_labelsAdded value: +{ + "description": "Labels to detach (each a label id, title, or id prefix)", + "items": { + "minLength": 1, + "type": "string" + }, + "type": "array" +} - added
Input schema / properties / tasksAdded 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" +} - changed
Input schema / requiredPrevious value: -[ - "task", - "context" -]New value: +[ + "context" +] - added
Output schema / properties / countAdded value: +{ + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" +} - removed
Output schema / properties / idRemoved value: -{ - "type": "string" -} - removed
Output schema / properties / numberRemoved value: -{ - "exclusiveMinimum": 0, - "maximum": 9007199254740991, - "type": "integer" -} - added
Output schema / properties / tasksAdded 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" +} - changed
Output schema / requiredPrevious value: -[ - "action", - "id", - "number", - "ok" -]New value: +[ + "action", + "count", + "ok", + "tasks" +]
- Changed
task_list4 fields changed- changed
Input schema / properties / view / descriptionPrevious 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`" - changed
Input schema / properties / view / enumPrevious value: -[ - "inbox", - "anytime", - "today", - "upcoming", - "someday" -]New value: +[ + "inbox", + "anytime", + "today", + "upcoming", + "someday", + "logbook", + "trash" +] - added
Output schema / properties / tasks / items / properties / completedAdded 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" +} - changed
Output schema / properties / tasks / items / requiredPrevious 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" +]
- Changed
task_reopen7 fields changed- added
Input schema / properties / tasksAdded 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" +} - changed
Input schema / requiredPrevious value: -[ - "task", - "context" -]New value: +[ + "context" +] - added
Output schema / properties / countAdded value: +{ + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" +} - removed
Output schema / properties / idRemoved value: -{ - "type": "string" -} - removed
Output schema / properties / numberRemoved value: -{ - "exclusiveMinimum": 0, - "maximum": 9007199254740991, - "type": "integer" -} - added
Output schema / properties / tasksAdded 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" +} - changed
Output schema / requiredPrevious value: -[ - "action", - "id", - "number", - "ok" -]New value: +[ + "action", + "count", + "ok", + "tasks" +]
- Changed
task_show5 fields changed- added
Input schema / properties / includeAdded 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" +} - added
Output schema / properties / attachmentsAdded 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" +} - added
Output schema / properties / commentsAdded 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" +} - added
Output schema / properties / task / properties / completedAdded 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" +} - changed
Output schema / properties / task / requiredPrevious 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" +]
- Removed
team_list
35 tool updates
- First observed
checklist_add - First observed
checklist_done - First observed
checklist_edit - First observed
checklist_list - First observed
checklist_remove - First observed
comment_add - First observed
comment_edit - First observed
comment_list - First observed
comment_remove - First observed
get_context - First observed
guide - First observed
label_add - First observed
label_create - First observed
label_list - First observed
label_remove - First observed
project_add - First observed
project_edit - First observed
project_join - First observed
project_leave - First observed
project_list - First observed
search - First observed
task_add - First observed
task_archive - First observed
task_assign - First observed
task_attach - First observed
task_attachment_list - First observed
task_attachment_remove - First observed
task_bulk_done - First observed
task_bulk_edit - First observed
task_done - First observed
task_edit - First observed
task_list - First observed
task_reopen - First observed
task_show - First observed
team_list
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables 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.167 npm1MIT
- AlicenseCqualityAmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs119 npm37 PyPIMIT
- AlicenseNot gradedqualityBmaintenanceEnables 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

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.