Kangram
Server Details
Task & board management for AI agents + humans. Kanban, comments, digests via MCP.
- Status
- Healthy
- Uptime
- 26.4% over 82 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 68 tools
Most tools target clearly distinct resource+action pairs, but several clusters overlap meaningfully: get_board_prompt / list_board_files / update_board_file / update_board(prompt) all manipulate the same AGENTS.md content, and update_task vs transition_task_status both change status. Task discovery is also split across list_tasks, search_tasks, my_work, and get_digest with fuzzy boundaries. Descriptions mitigate much of this, but an agent can still reasonably pick the wrong tool in these zones.
The overwhelming majority follow a predictable snake_case verb_noun pattern (create_task, list_board_members, revoke_agent_key, update_namespace_member_role), scoped cleanly by resource noun. Minor deviations exist — 'my_work' is a bare noun phrase, and 'get_profile' / 'get_digest' / 'get_project_context' mix user-scoped and board-scoped intents without naming signal. Overall consistency is strong enough that patterns are learnable.
68 tools is far beyond the 15-tool comfort zone and forces agents to scan a very large surface per turn. While a board/org/OAuth/agent platform justifies breadth, several tools are redundant layers (update_board_file beneath update_board's prompt option; four separate task-discovery tools), so not every tool clearly earns its place. Workspace/org member tools and board member tools also double up conceptually, inflating the count.
Coverage is genuinely broad: full lifecycle for tasks (create/update/transition/move/archive/restore/delete), checklists, comments, statuses, board members, namespace members, agents and their keys, OAuth clients, settings, and file attachments. Gaps are minor — no update/edit for comments, no delete of board files or task attachments, no hard board delete (archive only), and no user lookup/search to resolve members by name. Agents can work around all of these.
Available Tools
68 toolsadd_board_memberAdd board memberAInspect
Use this command to add a user directly to a board — they become a member immediately, with no invitation to accept. This is the one-step grant (the bot /addmember command). Owner/admin only; cannot create or assign the owner role.
| Name | Required | Description | Default |
|---|---|---|---|
| role | No | Role to assign (admin or user). Default: user. Cannot assign owner role. | |
| board_id | Yes | Board ID to add the user to. | |
| username | Yes | Telegram username of the user to add (without @). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds real context beyond the annotations: immediate effect, owner/admin-only authorization requirement, and that the owner role cannot be created or assigned. Annotations already cover safety/idempotency, but the description leaves the non-idempotent behavior (what happens when the user is already a member) undisclosed.
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, front-loaded with the core action, with the authorization caveat last. Slight redundancy between 'Owner/admin only' and 'cannot create or assign the owner role', which the schema also states.
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 what the tool does, the authorization gate, and the role ceiling, which is enough for a simple three-parameter mutation with no output schema. The only gap is behavior when the target is already a member, which matters given idempotentHint=false.
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 all three parameters including the role enum and the 'cannot assign owner role' constraint are already documented. The description echoes the owner-role restriction but adds no new format or usage detail beyond the schema, so the 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?
States a specific verb and resource ('add a user directly to a board') and immediately clarifies the semantics: immediate membership with no invitation to accept, which cleanly separates it from invite_board_member in the sibling list.
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?
Explains the selecting condition (direct, one-step grant) and implicitly excludes the invitation flow by noting there is nothing to accept. It would be stronger if it named invite_board_member explicitly as the alternative for invited members.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_checklist_itemAdd checklist itemBInspect
Use this to add a new item to a task's checklist. Provide board_id + task_number to identify the task.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Checklist item text. | |
| board_id | Yes | Board ID where the task belongs. | |
| task_number | Yes | Task number in board scope. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false and openWorldHint=false, so the safety profile is covered. The description adds no behavioral context beyond that: it does not say that repeated calls create duplicate items (non-idempotent), whether ordering is appended, or whether the board/task must exist or be writable.
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 short sentences with the purpose front-loaded and no filler. The lead-in 'Use this to' is slightly redundant given the name but not wasteful enough to penalize further.
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 simple 3-parameter mutation with full schema coverage and annotations, the description covers the essentials of what to call and how to target the task. It omits any mention of the created item being returned or duplicate guards, which would round it out.
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 title, board_id and task_number are already documented. The description reinforces that board_id + task_number jointly identify the task, which is mildly useful but adds little beyond the schema baseline.
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 and resource ('add a new item to a task's checklist'), which is clearly distinct from siblings like add_comment or update_checklist_item. It does not explicitly name or contrast with those siblings, keeping it below a 5.
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?
'Use this to add...' implies the usage context, and it says how to identify the task. However, it gives no guidance on when to prefer update_checklist_item vs delete_checklist_item, nor any prerequisites such as required permissions on the board.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_commentAdd commentBInspect
Use this to add a comment to a specific task. Provide board_id + task_number to identify the task.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Comment text. | |
| board_id | Yes | Board ID where the task belongs. | |
| task_number | Yes | Task number in board scope. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=false, so the write/safe profile is covered. The description adds nothing beyond those hints: it does not say whether duplicate comments are allowed, what permission is needed, or what the call returns, despite non-idempotent creation being exactly the case where that matters.
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 short sentences with the action front-loaded and the identification requirement second. The second sentence largely restates what the schema already says about board_id and task_number, so it is useful but not fully earning 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?
No output schema exists, yet the description never indicates what is returned after a comment is created (e.g., new comment id), which matters for a non-idempotent create. Otherwise it is sufficient for a simple three-parameter tool backed by complete schema descriptions and annotations.
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 all three params are documented in structured data and a 3 is the baseline. The description contributes only the relational hint that board_id + task_number jointly identify the task, which is mild added value.
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 concrete verb and resource ('add a comment to a specific task'), which is clearly distinct from delete_comment and list_comments. It stops short of naming those siblings explicitly, so an agent must infer the boundary rather than being told.
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?
Usage is implied by 'Use this to add a comment to a specific task' plus identification guidance for the target task. There is no statement of when not to use it, no prerequisites (e.g., membership on the board), and no reference to the competing tools (delete_comment, list_comments).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_namespace_memberAdd namespace memberAInspect
Grant an existing user workspace-level membership (NamespaceMember row) in the namespace identified by its slug. The member immediately inherits access to the namespace's boards (explicit board membership still overrides) and may create/move boards into the namespace. Roles: 'member' (default) or 'admin'. The owner role is structural and cannot be assigned. Direct grant — no invitation to accept. Requires the workspace owner.
| Name | Required | Description | Default |
|---|---|---|---|
| role | No | Workspace role: 'member' (default) or 'admin'. 'owner' is not assignable. | |
| username | Yes | Username of an existing user (without @, case-insensitive). | |
| namespace_slug | Yes | Target namespace slug (e.g. 'kangram' for kangram.app/kangram). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: discloses that access is inherited immediately, that explicit board membership overrides, that the member may create/move boards into the namespace, that 'owner' is structural and unassignable, and that the caller must be the workspace owner. These are non-obvious authorization and side-effect facts the agent could not infer from readOnlyHint=false / destructiveHint=false.
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?
Front-loaded with the core action and scope, then layers on inheritance, roles, and auth in dense, non-redundant sentences. The role sentence slightly overlaps the schema description, but nothing is padding.
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 non-idempotent mutation with no output schema, it covers authorization, side effects, and role constraints well. It does not say what happens if the user is already a member (relevant given idempotentHint=false) or how failures are reported, leaving one meaningful gap.
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 slug format, username case-insensitivity, and the role enum. The description's role text ('owner' is structural and cannot be assigned) and 'existing user' largely restate the schema rather than adding new meaning, so it sits at the high-coverage baseline.
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 and resource — 'Grant an existing user workspace-level membership (NamespaceMember row) in the namespace identified by its slug' — and distinguishes itself from sibling tools by emphasizing 'existing user' and 'Direct grant — no invitation to accept', which separates it from invite_board_member and add_board_member.
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 establishes the precondition ('Requires the workspace owner'), the eligibility ('an existing user'), and rules out the invitation flow ('Direct grant — no invitation to accept'). It never names invite_board_member or add_board_member explicitly as the alternative for the other cases, so routing is implied rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
archive_boardArchive boardAInspect
Use this to hide a board from active workflows without deleting it.
| Name | Required | Description | Default |
|---|---|---|---|
| board_id | Yes | Board ID to archive. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare it is not read-only, not destructive, and not idempotent. The description reinforces the non-destructive nature ('without deleting it'), which adds real value, but it says nothing about reversibility, whether data/tasks are retained, or what happens if the board is already archived — notable given idempotentHint=false.
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?
One short sentence, front-loaded with the intent and ending with the key constraint. Zero 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?
For a one-parameter mutation with annotations covering the safety profile, the description gives enough to act correctly. Remaining gaps — reversibility and already-archived behavior — are minor but real for a non-idempotent mutation.
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?
There is a single required parameter with 100% schema description coverage ('Board ID to archive'), so the schema fully documents it. The tool description adds no syntax, format, or sourcing guidance beyond that, which is the expected baseline when the schema does the work.
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 the concrete effect of the operation (hiding a board from active workflows) and implicitly contrasts it with deletion, which is more informative than restating the name. It never explicitly uses the verb 'archive' or names a board identifier, but the name and title carry that. It is clear enough to distinguish from siblings like delete_task or update_board.
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 phrase 'without deleting it' implies the when-to-use condition relative to destructive alternatives, but no sibling (restore_board, update_board, move_board) is named and there are no explicit exclusions or prerequisites. Usage is inferable but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
attach_task_fileAttach task fileAInspect
Attach a file to a board task. Provide the file as base64 (10MB decoded limit). The attachment becomes visible in the web task view and via list_task_files. You must be a member of the board that owns the task. Use for artifacts an agent produces or handles: images, documents, exports.
| Name | Required | Description | Default |
|---|---|---|---|
| caption | No | Optional caption shown with the attachment. | |
| board_id | Yes | Board ID where the task lives. | |
| filename | Yes | File name with extension, e.g. slides.png. Path components are stripped. | |
| task_number | Yes | Task number in board scope. | |
| upload_type | No | Upload category (default: document). Alphanumeric/dash/underscore only. | |
| content_base64 | Yes | Raw file content, base64-encoded (no data: prefix). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read-only, non-destructive, non-idempotent write. Beyond that, the description adds genuinely useful behavior: a 10MB decoded size ceiling, where the attachment surfaces afterward (web task view, list_task_files), and the permission requirement. It does not mention whether repeat uploads create duplicates or how failures are reported, which keeps it short of a 5.
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 short sentences with zero filler, front-loaded with purpose, then constraint, then effect, then intended use case. Every sentence contributes a fact an agent needs to call the tool correctly.
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 write tool with no output schema, the description covers the essential gaps: size limit, encoding format, permission prerequisite, and observability of the result. Annotations carry the safety profile and the schema carries all six parameters, so nothing material is left unstated.
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, but the description contributes meaning the schema lacks: the 10MB decoded limit on content_base64 and the "no data: prefix" encoding contract, both of which prevent common invocation errors. It does not clarify the upload_type category semantics, leaving that parameter's purpose thinner.
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 ("Attach a file to a board task") and immediately clarifies the mechanism (base64 content) and downstream visibility. It implicitly distinguishes itself from siblings such as list_task_files and list_board_files, which are read operations, so an agent can tell what this tool is for without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context for when to use it ("artifacts an agent produces or handles: images, documents, exports") and a hard prerequisite (board membership). What is missing is an explicit when-not or a pointer to an alternative path for files that exceed the limit, so the guidance is strong but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bind_board_to_groupBind board to groupAInspect
Bind (link) a board to a Telegram group chat. The board becomes the group's primary board — bot commands in the group will act on this board. Unbinds any previous binding first. The actor must be an owner/admin of the target board. Use this when a user asks to set, link, bind, or assign a board to a chat/group. boardRef accepts: 'ns/code' (e.g. 'kangram/DEV'), a code alone (uses the active namespace), or a full URL like 'https://kangram.app/#/kangram/DEV'.
| Name | Required | Description | Default |
|---|---|---|---|
| board_ref | Yes | Board reference: 'ns/code' (e.g. 'kangram/DEV'), 'code' alone, or a kangram.app URL. | |
| group_chat_id | No | Telegram group chat ID. Omit in a Telegram group context — the current group is auto-detected. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, it discloses the hidden side effect that the previous binding is unbound first, the post-condition that the board becomes the group's primary board, and the authorization requirement (owner/admin). Those are exactly the traits an agent cannot infer from readOnlyHint=false / destructiveHint=false, and they serve as a useful warning even though the unbinding is not flagged destructive.
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?
Front-loaded with the action and its effect, followed by the prerequisite and trigger phrasing; four sentences with little waste. The closing boardRef sentence is somewhat redundant with the schema and could be trimmed.
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 two-parameter mutation with an output schema absent but a self-evident result, the description covers effect, precedence (previous binding removed), authorization, and reference formats. Error behavior and return value are the only minor omissions, and the latter is low-stakes here.
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 both parameters are already fully documented. The description's boardRef sentence largely restates the schema (only adding a concrete full-URL example), and it says nothing extra about group_chat_id auto-detection beyond what the schema already states, so the 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 names a specific verb and resource (bind/link a board to a group chat) and states the resulting state change: the board becomes the group's primary board and bot commands act on it. That effect distinguishes it from move_board, update_board, and other board 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?
It gives explicit trigger intents ("when a user asks to set, link, bind, or assign a board to a chat/group") and a prerequisite (actor must be an owner/admin of the board). It stops short of naming alternatives or when-not-to-use cases, but the positive routing is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_board_invitationCancel board invitationADestructiveInspect
Use this command to cancel a pending board invitation. Only the original inviter or a board admin can cancel.
| Name | Required | Description | Default |
|---|---|---|---|
| invitation_id | Yes | Invitation ID to cancel. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=false and readOnlyHint=false, so the safety profile is covered. The description adds useful authorization context (only the original inviter or a board admin), but says nothing about irreversibility, what happens to the invitee, or error behaviour when the caller lacks permission.
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 short sentences with zero filler, the core action front-loaded and the permission caveat immediately after. Nothing to trim.
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 one-parameter mutation with rich annotations and a fully described schema, the definition covers the action and the permission gate. A note on irreversibility or on where to get invitation_id would make it fully self-sufficient, but 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?
There is a single parameter with 100% schema description coverage ('Invitation ID to cancel'), so the schema carries the semantics. The description adds no format, sourcing, or lookup guidance (e.g. obtainable via list_pending_invitations), which is the baseline-3 outcome for high 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?
States a specific verb and resource ('cancel a pending board invitation'), with 'pending' narrowing the scope so an agent won't confuse it with revoking a membership or responding to an invitation. It does not explicitly name the neighbouring alternatives, but the action is 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?
The description gives a clear trigger condition (a pending invitation exists and should be withdrawn) and an authorization constraint. However, it never contrasts with siblings such as respond_to_invitation or remove_board_member, so the agent must infer which tool applies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clone_boardClone boardAInspect
Clone a board into a new board, copying the workflow not the data: statuses + board files (the prompt / agent instructions) + board title. Excludes tasks, comments, and members. The caller becomes the owner of the fresh board. The new board is created in the caller's personal namespace with a fresh unique code. Authorize: caller needs read access to the source board — a board member OR any viewer when the board is public (public boards are forkable by anyone). Authorization is enforced imperatively in execute.
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | Optional 3-character code (A-Z/0-9) for the new board; must be unique in your namespace. Auto-generated if omitted. | |
| title | No | Optional title for the new board. Defaults to "<source title> (copy)". | |
| source_board_id | Yes | Board ID to clone the workflow from. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantive context beyond annotations: exactly which fields are copied vs excluded, that the caller becomes owner, that the board lands in the caller's personal namespace with a fresh code, and that authorization is enforced imperatively in execute. Annotations already flag it as non-read-only/non-destructive, and the description enriches rather than contradicts them.
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?
Dense, front-loaded sentences with zero filler: what is copied, what is excluded, ownership, namespace placement, and authorization all stated compactly. Every sentence carries distinct information.
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 non-idempotent clone with no output schema, the description covers the full behavioral picture an agent needs: copy semantics, exclusions, ownership/namespace outcome, and authorization requirements. Nothing material 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 code, title, and source_board_id are all documented in the schema including the auto-generate and default-title behavior. The description's mention of 'fresh unique code' and namespace is consistent but not additive beyond the schema, 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?
States a specific verb (clone) and resource (board), and immediately distinguishes itself from create_board by specifying what is copied (statuses, board files/prompt, title) versus excluded (tasks, comments, members). The agent can tell exactly what this does differently from a plain board creation.
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?
Clear about the scope of the operation and its eligibility conditions (read access, public boards forkable by anyone), which implicitly answers 'when can I use this'. However, it never explicitly names the alternative create_board for building a fresh board or states when cloning would be inappropriate, so it stops short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_agentCreate agentAInspect
Create a non-human agent account (User type='agent') inside the organization identified by its namespace slug. The agent becomes an org member immediately (board access via role inheritance), gets no personal namespace and cannot log in. A first API key is auto-issued and returned in plainKey — show/store it now, it is never shown again. Requires organization owner/admin.
| Name | Required | Description | Default |
|---|---|---|---|
| role | No | Organization role. 'member' (default) maps to board user; 'admin' maps to board admin. Agents never own orgs. | |
| username | Yes | Unique username for the agent (letters, digits, dot, dash, underscore). Used for invites and search. | |
| display_name | No | Human-readable display name. Defaults to the username. | |
| namespace_slug | Yes | Namespace slug of the organization (e.g. 'kangram' for kangram.app/kangram). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond what the annotations declare: the agent cannot log in, gets no personal namespace, becomes an org member immediately with board access via role inheritance, and requires org owner/admin. Critically, it discloses that the plainKey is returned once and never shown again, which is exactly the kind of operational detail an agent must know before invoking.
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 short sentences, each carrying distinct information: what is created, its immediately observable state, the one-time key disclosure, and the authorization prerequisite. The most time-sensitive fact (plainKey shown once) is front-loaded before the tail requirement clause.
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?
There is no output schema, so the description carries the return-value burden, and it does disclose the key field (plainKey) plus its one-time nature. It does not describe the rest of the response (e.g., the created agent's id/username) or failure cases such as duplicate username/namespace, so a small gap remains for a mutation tool.
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 four parameters (role enum semantics, username constraints, display_name default, namespace_slug format). The description only restates that the org is identified by namespace slug, adding no per-parameter meaning beyond the schema. 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 states a specific verb and resource ('Create a non-human agent account') and immediately qualifies the account type ('User type=\'agent\''), which cleanly separates it from create_organization, add_namespace_member, and issue_agent_key in the sibling list. An agent can identify exactly what this tool produces without opening the schema.
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?
Usage context is clear: it is for non-human agent accounts inside an existing org, requires owner/admin, and auto-issues the first API key (implicitly distinct from issue_agent_key for later keys). It lacks explicit 'when not to use' guidance or a direct name-check against issue_agent_key/add_namespace_member, which keeps it at 4 rather than 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_boardCreate boardBInspect
Use this command to initialize a board and its default status workflow.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Optional board title. | |
| timezone | No | Optional board timezone (e.g. Australia/Melbourne). | |
| group_chat_id | No | Optional target group chat id. Defaults to active context group chat. | |
| namespace_slug | No | Optional target namespace slug (e.g. 'kangram', 'exemplarov'). Creates the board in that namespace instead of the personal one. Use list_namespaces to discover available slugs. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-readonly, non-destructive, non-idempotent closed-world mutation. The description adds useful context that a default status workflow is created alongside the board, but does not explain authentication, namespace defaults, or failure behavior.
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?
It is a single front-loaded sentence with no extraneous detail. The phrase 'Use this command to' is slightly boilerplate, but the sentence remains efficient.
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 covers the main creation effect and the default status workflow, while the schema covers optional parameters. However, for a creation tool with no output schema, it does not say what is returned or clarify how defaults like namespace and group chat are resolved.
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?
With 100% schema description coverage, the schema already documents all four optional parameters, including the namespace_slug guidance to use list_namespaces. The description adds no parameter-specific meaning beyond the schema, so baseline 3 is appropriate.
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 gives a clear verb and resource: initialize a board, plus the notable side effect of creating its default status workflow. It does not explicitly distinguish this from siblings like clone_board or update_board, but the create intent is clear.
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 sentence only restates that this command is used to initialize a board. It gives no conditions for when to use it versus clone_board, update_board, or other create tools, and no prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_oauth_clientCreate oauth clientAInspect
Register a new OAuth2 client so a third-party app can authenticate users via 'Login with Kangram'. Returns the client_id and a client_secret shown ONCE — store it securely. Owner-only.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Human-readable client application name. | |
| scopes | No | Scopes the client is allowed to request. Defaults to ['profile']. | |
| redirect_uris | Yes | Allowed redirect URIs (exact match, https required; http only on localhost). No wildcards. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a non-read-only, non-idempotent, non-destructive write, and the description adds the details that actually matter: the client_secret is returned and shown ONCE, must be stored securely, and the operation is restricted to owners. That is real behavioral value beyond the annotation set.
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, zero filler, with the purpose and the one-time secret warning both front-loaded before the access restriction.
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?
Despite having no output schema, the description names the returned fields (client_id, client_secret) and their one-time nature, and the owner-only constraint closes the remaining gap. An agent has everything needed to call it and handle the response safely.
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 name, scopes with defaults, and redirect_uri constraints (https, no wildcards). The description adds no 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?
States a specific verb and resource ('Register a new OAuth2 client') plus the concrete outcome ('third-party app can authenticate users via Login with Kangram'), which clearly separates it from list_oauth_clients and revoke_oauth_client.
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 framing 'so a third-party app can authenticate users' tells an agent exactly when this tool applies, and 'Owner-only' states a precondition. It stops short of naming the sibling tools or the when-not case (e.g., use update/revoke for existing clients), so it lands just below the top.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_organizationCreate organizationAInspect
Create a new organization. The organization gets its own namespace (slug derived from the name). The creator becomes the organization owner. Use this when a user asks to create a namespace, organization, or workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Organization name (e.g. 'Kangram', 'Acme Inc'). A namespace slug is derived from this. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag this as a non-read-only, non-idempotent, non-destructive write. The description adds substantive context beyond that: the new org gets its own namespace, the slug is derived from the name, and the caller is granted ownership. It stops short of covering slug collisions, permission requirements, or failure modes, which keeps it from a 5.
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 with zero filler: effect, resulting state, then routing condition. The most decision-relevant content (what it creates and who owns it) 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 single-parameter creation tool with no output schema, the description covers what is created and its ownership/namespace consequences. A brief note on what the call returns (org id or slug) and whether the creator needs existing permission to create an org would make it complete.
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% and the name parameter is fully documented in the schema, so the baseline is 3. The description adds real meaning by explaining that the slug is derived from the name, which tells the agent the name has naming-system consequences beyond a display label.
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 and resource ('Create a new organization') and immediately clarifies the resulting side effects: a dedicated namespace with a slug derived from the name, and the creator becoming owner. The synonym mapping (namespace/organization/workspace) resolves any ambiguity with namespace-related siblings such as list_namespaces.
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 final sentence gives an explicit trigger condition ('Use this when a user asks to create a namespace, organization, or workspace'), which is exactly the phrasing an agent will encounter. It does not state when NOT to use it, but there is no competing create-namespace sibling to exclude, so the guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_statusCreate statusCInspect
Use this command to add new statuses to board workflow.
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | Optional machine code. If omitted, derived from name. | |
| name | Yes | Status display name. | |
| color | No | Optional hex color, e.g. #FF9800. | |
| index | No | Optional sort index; lower appears earlier. | |
| board_id | No | Optional board ID. Defaults to user's active board. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false, and openWorldHint=false, so the safety profile is known. The description adds no behavioral context beyond that: nothing about whether status names must be unique, what happens on duplicate name, where the status is placed in the workflow if index is omitted, or whether board_id defaults apply.
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 single front-loaded sentence with no filler or redundancy. It is efficient, though its brevity borders on under-specification rather than tightness.
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 mutation tool with five parameters, an agent still lacks confirmation about duplicate handling, workflow placement defaults, and required permissions. The rich schema and existing annotations cover structure and safety, but the description leaves the behavioral side largely blank.
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% with 5 params, so code derivation, color format, index ordering, and board_id defaulting are all already documented in the schema. The description contributes nothing additional about parameter behavior, so the 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?
States a specific verb and resource ("add new statuses") and names the domain object ("board workflow"), so the agent knows this creates a status rather than listing, updating, or deleting one. It does not explicitly distinguish itself from siblings like update_status or reorder_statuses, but the create semantics are 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?
The sentence only restates the purpose ("use this command to add new statuses"); it gives no when-to-use conditions, no prerequisites (e.g., board membership/permissions), and no mention of alternatives such as using list_statuses first to avoid duplicates. The only useful hint is that statuses belong to the board workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_taskCreate taskAInspect
Use this to add a task. Provide boardId for deterministic routing; otherwise active board is used.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Optional list of tags. | |
| title | Yes | Short task title. Keep it clear and action-oriented. | |
| status | No | Optional initial status name for the task. | |
| assignee | No | Assignee username without @. | |
| board_id | No | Board ID where the task should be created. | |
| priority | No | Optional task priority: critical, major, normal, or low. | |
| description | No | Optional longer task details. | |
| parent_board_id | No | Board ID of the parent task. Defaults to board_id if omitted. | |
| telegram_chat_id | No | Optional Telegram chat id for message-task linking. | |
| parent_task_number | No | Optional parent task number to create a subtask. Use with parent_board_id or board_id. | |
| telegram_message_id | No | Optional Telegram message id for message-task linking. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare that this is a non-read-only, non-idempotent, non-destructive, closed-world write, so the safety profile is covered. The description adds one genuinely new behavioral fact — that omitting the board falls back to the caller's active board — but says nothing about permission requirements, whether the assignee is notified, or what happens if the active board is missing. Note the description writes 'boardId' while the schema parameter is 'board_id', a minor naming mismatch rather than an annotation contradiction.
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 short sentences, front-loaded with the purpose and immediately followed by the routing rule; nothing is padded. The opening 'Use this to add a task' is slightly redundant with the tool name, keeping it from a 5.
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 an 11-parameter create tool with no output schema, the description is thin: it explains board routing but not subtask creation (parent_task_number/parent_board_id), status/priority behavior, assignee format, or what a successful call returns. Annotations carry the safety profile and the schema carries parameter details, so it is adequate, but the highest-risk behaviors are left to the schema alone.
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?
With 100% schema description coverage the baseline is 3, and the description exceeds it by documenting the default/routing semantics of the board parameter, which the schema only describes as 'Board ID where the task should be created.' It does not touch the other ten parameters, notably subtask creation via parent_task_number, so it does not earn a 5.
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 gives a specific verb+resource ('add a task'), which cleanly separates it from update_task and delete_task among the siblings. It stops short of naming an alternative or stating scope (e.g., single task per call, required title), so it is clear but not fully differentiating.
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?
'Provide boardId for deterministic routing; otherwise active board is used' tells the agent how to pick a board, which is real usage guidance for the most consequential parameter. However, there is no guidance on when to use this versus related tools (create_board, add_checklist_item, update_task) and no preconditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_agentDelete agentADestructiveInspect
Delete an agent account: revokes all its API keys, removes memberships, unassigns its tasks, then hard-deletes the user. When history rows (messages/activity) block the hard delete, the agent is deactivated instead (zero access, row kept) and status='deactivated' is returned. Requires organization owner/admin.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_username | Yes | Username of the agent to delete. | |
| namespace_slug | Yes | Namespace slug of the organization. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only flag destructiveHint=true; the description goes well beyond by naming exactly what is destroyed, the irreversible cascade, and the important fallback path where history rows block the hard delete and the agent is deactivated with row retained and status='deactivated' returned. That fallback is a critical non-obvious behavior an agent must handle.
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 dense sentences, front-loaded with the action and cascade, then the fallback, then the permission requirement. Nothing is redundant or padded.
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?
No output schema exists, but the description supplies the one return value that matters (status='deactivated'), plus permissions and destructive scope. An agent has everything needed to call this safely and interpret the result.
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% with both parameters self-documented, so the schema carries the load. The description adds no format, casing, or lookup hints for agent_username or namespace_slug, 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?
Precise verb+resource: 'Delete an agent account', with an enumerated cascade (API keys, memberships, task assignments, hard delete). It is clearly distinct from siblings like revoke_agent_key or list_agents, which a reader can infer without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear precondition (organization owner/admin) and the conditional outcome that determines whether the caller gets a true delete or a deactivation. It does not explicitly say 'use revoke_agent_key instead if you only want to kill credentials', so no true when-not guidance, but the context is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_checklist_itemDelete checklist itemADestructiveInspect
Use this to remove a checklist item from a task. Provide item_id.
| Name | Required | Description | Default |
|---|---|---|---|
| item_id | Yes | Checklist item ID to delete. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The tool is destructive, which is captured by the 'destructiveHint: true' annotation. The description adds no additional behavioral context, limitations, or error handling information beyond the structured data provided.
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 definition is highly concise. Both sentences are necessary, efficient, and front-load the primary action and required input.
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 simplicity of the 1-parameter schema and the presence of a destructive hint in the annotations, the description is sufficiently complete for an agent to understand how to invoke it without risk of serious failure.
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?
Since schema description coverage is 100%, the schema already defines the purpose and type of the `item_id` parameter. The description adds no semantic value beyond reiterating the parameter's required function, meeting the baseline score for 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 the function ('remove a checklist item from a task'). While it does not explicitly name competing sibling tools like a sibling tool comparison would, the action is unambiguous and distinct from broader organizational operations.
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 provides a direct operational instruction ('Provide item_id') but offers little guidance on the lifecycle of a checklist item or when to use this deletion tool versus an update tool for modification.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_commentDelete commentADestructiveInspect
Use this to delete a comment. Allowed for the comment author or a board admin (owner/admin). Provide board_id + task_number for context and comment_id.
| Name | Required | Description | Default |
|---|---|---|---|
| board_id | Yes | Board ID where the task belongs. | |
| comment_id | Yes | ID of the comment to delete. | |
| task_number | Yes | Task number in board scope. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=false, so the safety profile is covered; the description adds real value beyond them by spelling out the authorization rule (author or board admin). It stops short of saying whether the deletion is permanent or what error results from an unauthorized or repeat call.
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 short sentences with the action front-loaded and no filler. The opening clause slightly echoes the tool name/title, which is the only 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?
For a destructive three-parameter tool with full schema coverage and annotation-declared safety hints, the description covers action, authorization, and required inputs. It omits irreversibility and post-delete response behavior, which would be the last piece for a 5.
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 all three parameters are already documented, and the baseline is 3. The description only restates the parameter names ('Provide board_id + task_number for context and comment_id') without adding format or scoping detail beyond 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 and resource ('delete a comment'), which cleanly separates it from add_comment, list_comments, and update_task-style siblings. It does not explicitly name an alternative, but the operation itself is 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 a concrete applicability condition that an agent must check before calling: only the comment author or a board admin/owner may delete. It doesn't state when-not-to-use or point at alternatives (e.g., leaving a comment instead of deleting), so it falls short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_statusDelete statusADestructiveInspect
Delete by statusId or boardId+code. If tasks use it, provide replacementStatusId.
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | Status code for board+code lookup. | |
| board_id | No | Board ID for board+code lookup. | |
| status_id | No | Target status ID. | |
| replacement_status_id | No | Replacement status ID when deleting an in-use status. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, but the description adds genuinely non-obvious behavior: deletion can fail or require a fallback when tasks reference the status. It still omits whether deletion is irreversible, what happens to task history, and whether permissions are required.
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 short sentences, front-loaded with the action and key modes; nothing is padded. The telegrammatic phrasing ("Delete by statusId or boardId+code") is efficient but sacrifices a little readability.
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 the destructive precondition that matters most, and the schema fully documents the four parameters. For a destructive, non-idempotent tool with no output schema, it leaves unclear what a successful call returns and whether the status must be empty or unused.
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 per-field meanings are already documented. The description adds real value by revealing the two mutually exclusive lookup modes (status_id alone versus board_id+code together) and the conditional role of replacement_status_id, which the schema lists only as independent properties.
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 and resource ("Delete by statusId or boardId+code") and names the lookup keys, which separates it from sibling delete_task/delete_agent and from update_status. It never explicitly contrasts with those siblings, so it stops short of a 5.
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?
"If tasks use it, provide replacementStatusId" gives one real conditional rule for using a parameter, which is more than most tools offer. However, it says nothing about when to delete a status at all versus archiving, updating, or reordering statuses, and no alternative tool is named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_taskDelete taskBDestructiveInspect
Use this to mark a task as deleted without permanent removal.
| Name | Required | Description | Default |
|---|---|---|---|
| board_id | Yes | Board ID where the task belongs. | |
| task_number | Yes | Task number in board scope. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description says the task is marked as deleted 'without permanent removal', but the annotations declare destructiveHint=true. This is a direct behavioral inconsistency: the annotation signals destructive behavior while the description frames the operation as non-permanent. No additional behavioral context about permissions, side effects, or restoration is provided.
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, front-loaded sentence that immediately states the tool's use. It contains no repetitive or low-value 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 two-parameter mutation tool, the description gives only the soft-delete intent and omits any mention of permissions, side effects, or restoration. More importantly, that intent conflicts with destructiveHint=true, leaving the agent with an unreliable behavioral 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 description coverage is 100%, so the schema already explains board_id and task_number. The description adds no parameter syntax or constraints beyond what the schema provides, which is acceptable given the high 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 states a clear verb and resource: marking a task as deleted. It also clarifies the operation is non-permanent, which is useful scope detail. However, it does not explicitly differentiate this tool from sibling tools such as restore_task or other delete_* tools.
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 phrase 'Use this to mark a task as deleted without permanent removal' gives a clear usage context. It does not mention when not to use the tool or point to restore_task or any permanent-deletion alternative, so there is no explicit alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_board_by_namespaceGet board by namespaceARead-onlyIdempotentInspect
Canonical lookup for a board. Resolves the namespace by slug, then the board by its 3-character code within that namespace. Membership-gated: returns an error for unknown namespace, unknown board, or non-member (indistinguishable).
| Name | Required | Description | Default |
|---|---|---|---|
| board_code | Yes | 3-character board code (case-insensitive; legacy codes may contain Unicode letters or digits). | |
| namespace_slug | Yes | Owner namespace slug (e.g. a username). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, closed-world safety, but the description adds real value beyond them: it discloses that access is membership-gated and, critically, that unknown-namespace, unknown-board, and non-member errors are indistinguishable — preventing an agent from attempting to diagnose or enumerate via retries. It does not say what is returned or how archived boards behave.
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, zero filler, and the core purpose is front-loaded before the resolution mechanics and the error semantics. Every sentence carries distinct information.
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 2-param read tool with full schema coverage, rich annotations, and no output schema, the description covers purpose, resolution order, and failure modes. The only real gap is that the return payload (a board object? which fields?) is never characterized, which matters since no output schema exists.
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%, with the board_code constraint (3 chars, case-insensitive, legacy Unicode) already documented in the schema. The description adds the ordering relationship between the two parameters (namespace resolved first, board scoped within it), which is a modest but genuine semantic addition. 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?
"Canonical lookup for a board" names a specific verb (resolve/retrieve) and resource, and the second sentence spells out the exact resolution path (namespace slug → 3-char board code). This implicitly separates it from list_boards/search_tasks, though no sibling is named 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?
Usage is only implied: the tool requires both a namespace slug and a board code, so an agent can infer it is for known-identifier fetches rather than discovery. There is no explicit "use this instead of list_boards when..." guidance or statement of prerequisites (e.g., needing membership).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_board_promptGet board promptARead-onlyIdempotentInspect
Fetch the board-level agent prompt — the markdown instructions an agent should follow when operating on this board. Read this into your context before working a board. Returns the content of the board's root file ("AGENTS.md"); null when no prompt is set.
| Name | Required | Description | Default |
|---|---|---|---|
| board_id | Yes | Board ID to read the prompt for. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, closed-world and non-destructive, so the safety profile is covered. The description adds genuinely new behavioral detail: the payload is the contents of the root AGENTS.md file and the result is null when no prompt is set — important since there is no output schema.
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 compact sentences with zero padding: the purpose and the pre-work instruction are front-loaded, followed by the return-value contract. Every clause carries information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read with no output schema, the description covers both side of the contract (what content comes back, and the null case). It does not mention error or permission conditions (e.g., board not found / not a member), a minor remaining gap.
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?
Only one parameter, and the schema documents board_id at 100% coverage ('Board ID to read the prompt for'), so the baseline is 3. The description adds no syntax, format, or validity details beyond that.
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 (fetch) and a precisely scoped resource (the board-level agent prompt / root AGENTS.md file), so the agent knows exactly what comes back. It does not explicitly name the sibling it differs from (e.g., list_board_files or update_board_file), which keeps it short of a 5.
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?
'Read this into your context before working a board' is an explicit when-to-use directive, which is more than most tool descriptions provide. There are no when-not conditions or named alternatives (e.g., use list_board_files to enumerate all files instead).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_board_settingsGet board settingsARead-onlyIdempotentInspect
Use this command to read a board's effective settings — the stored value, or the default when unset (lazy). Pass a key to read one setting; omit it to read all. Returns { key: value } object(s).
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | Optional setting key (e.g. "autoAddAssignees"). Omit to read all settings. | |
| board_id | Yes | Board ID to read settings for. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world. The description adds genuinely new behavioral context: reads are 'effective', returning the default when a value is unset (lazy), and it describes the return shape ({ key: value }). That is meaningful beyond the annotation set.
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 tight clauses in one sentence, front-loaded with the verb and resource, then behavior, then return shape. No padding 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?
No output schema exists, and the description compensates by describing the returned { key: value } object(s), plus the effective/default semantics. The main gap is the absence of a pointer to get_board_settings_schema for discovering valid keys.
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%, and the schema already documents both parameters including the 'omit to read all' behavior and an example key. The description's 'stored value or default when unset' framing adds mild semantic value but no syntax or key-naming detail beyond the schema, so the 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?
States a specific verb ('read') and resource ('a board's effective settings') and explains the effective-value semantics (stored value or lazy default). It does not distinguish itself from adjacent siblings such as get_board_settings_schema or set_board_setting, so it falls short of a 5.
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 per-parameter usage ('Pass a key to read one setting; omit it to read all'), which is helpful, but it never says when to prefer this over get_board_settings_schema (to discover keys) or set_board_setting. Usage context is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_board_settings_schemaGet board settings schemaARead-onlyIdempotentInspect
Use this command to discover which board settings exist and their types/defaults (json-schema-like). Pass a key to inspect one setting; omit for all. Board-independent metadata — call this before set_board_setting to learn valid keys and types.
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | Optional setting key to inspect. Omit for all available settings. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds real value by noting the metadata is board-independent, telling the agent no board context is required even though nearly every sibling is board-scoped.
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 compact sentences with the core action front-loaded and the prerequisite-for-write guidance last. 'Use this command to' is mild filler but nothing else is wasted.
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 single-optional-parameter read tool with full annotation coverage and no output schema, the description covers what it returns ('json-schema-like' types/defaults), how to scope the call, and when to call it. Nothing an agent needs 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% and the key parameter already documents 'Omit for all available settings'. The description's 'pass a key to inspect one setting; omit for all' largely restates the schema, adding only the downstream rationale of validating keys before a write.
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 and resource: discover board settings, their types and defaults in a json-schema-like form. It clearly differs from set_board_setting (write) but never distinguishes itself from the sibling get_board_settings, which is the most likely confusion point.
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 call conditions: pass a key to inspect one setting, omit for all, and call this before set_board_setting to learn valid keys and types. It lacks an exclusion against get_board_settings, so the 'when not to use' half is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_digestGet digestARead-onlyIdempotentInspect
Compute an on-demand digest of the calling user's tasks across all accessible boards: overdue, stale (needs attention), new assignments, open count, and recently completed. Use this to answer 'what needs my attention?' or 'what's my work summary?'.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds useful scope context ('calling user's tasks', 'across all accessible boards', computed on demand), but says nothing about cost, aggregation limits, or how large result sets are handled. Under annotation coverage the added value is modest.
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 with no filler, front-loading the operation and scope, followed by intent examples. Every clause carries information the agent can use.
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 zero-param read tool with rich annotations and no output schema, the enumerated digest sections stand in for a return-value description, which is nearly sufficient. A brief note on how 'stale' is defined or on result volume would close the remaining gap.
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?
Zero parameters, so there is no schema semantics to explain; baseline 4 applies. The description correctly implies no filtering inputs by framing the result as the caller's own digest.
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?
Specific verb 'compute ... digest' with an explicit resource scope: the calling user's tasks across all accessible boards. It also enumerates the digest sections (overdue, stale, new assignments, open count, recently completed), which makes the output concept concrete. It stops short of naming the closest sibling (my_work) so the agent must still infer the distinction.
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 a clear usage context with two sample questions ('what needs my attention?', 'what's my work summary?'), which maps well onto realistic agent intents. No explicit when-not or named alternatives, so the agent is not told when to prefer my_work or list_tasks instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_profileGet profileARead-onlyIdempotentInspect
Return the profile represented by this request's authenticated credentials. The opaque id is unique within this app and remains unchanged across token refresh, reconnection, and display-metadata changes.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | Opaque profile identifier, unique within this app and unchanged across token refresh, reconnection, and display-metadata changes. Never reassigned to another profile. |
| name | No | Display name for the authenticated profile. |
| No | Email address for display; not used as the profile identity. | |
| nickname | No | A useful label that helps users distinguish connected profiles. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description then adds genuinely non-obvious context beyond the annotations: the returned id is opaque, app-scoped, and stable across token refresh, reconnection, and display-metadata changes — exactly what an agent needs to know before caching or comparing ids. It does not, however, say anything about auth failure behavior or scope requirements.
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, both front-loaded with the essential claim: first what is returned, then why the returned id is trustworthy. There is no filler and nothing is buried.
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 an output schema present and rich annotations, the description doesn't need to explain return fields, and the stability note covers the main operational gotcha. A brief statement of when to call it (e.g., to verify identity after a token refresh) would close the remaining gap.
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 tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline for a no-parameter tool is a 4. The description correctly implies the credential context is derived from the request itself rather than passed as an argument.
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 names a specific verb ('Return') and a specific resource ('the profile represented by this request's authenticated credentials'), which makes clear this is a self-scoped identity lookup rather than an arbitrary user lookup. It stops short of distinguishing this from siblings explicitly, but no sibling tool in the list covers the same operation, so ambiguity is low.
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 phrase 'this request's authenticated credentials' implies the use case (identify the caller of the current session), but the description never states when to reach for this tool, nor does it flag any exclusions or follow-up tools. Usage is inferable rather than instructed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_project_contextGet project contextARead-onlyIdempotentInspect
Get the full project context for a board — everything needed to CONTINUE work without re-explaining: the latest session handoff (where we left off), an attention snapshot (blocked / overdue / due soon / unassigned / stale counts), the top open tasks, and recent board activity. Call this at the START of a session when the user says 'continue where we left off', 'what's the state of the project', 'resume our work', or 'remind me what we were doing' — especially in a NEW chat after a previous session saved a handoff.
| Name | Required | Description | Default |
|---|---|---|---|
| board_id | Yes | Board ID to load context for. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so safety is covered; the description adds useful context by itemizing exactly what the aggregate bundle contains (handoff, attention counts, top tasks, activity). It does not state how many 'top' tasks are returned, whether the handoff may be absent, or any cost/latency of the aggregation.
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?
Front-loaded: the first sentence defines the payload, the second handles when to call. Slightly long and list-heavy, but every clause (handoff, attention snapshot, top tasks, activity) carries real information rather than restating the name.
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?
There is no output schema, and the description compensates by enumerating the return payload contents, including the attention snapshot sub-counts (blocked / overdue / due soon / unassigned / stale). For a one-parameter read tool this is complete enough to call and interpret correctly.
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?
Single required board_id with 100% schema description coverage, so the schema already documents the parameter. The description only echoes scope with 'for a board' and adds no format or sourcing guidance (e.g., where to obtain the board_id). 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?
States a specific verb+resource ('get the full project context for a board') and then enumerates the payload: latest session handoff, attention snapshot, top open tasks, recent activity. That enumeration distinguishes it from siblings like get_board_prompt, list_tasks, and get_digest without the agent needing to open any schema.
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 says to call it at the START of a session and gives concrete trigger utterances ('continue where we left off', 'what's the state of the project', 'resume our work'), plus the key condition of a NEW chat after a saved handoff. It names no alternative tool, but the trigger conditions are precise enough that routing is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_taskGet taskARead-onlyIdempotentInspect
Use this to read one task including its description, deadline, tags, status, and assignee.
| Name | Required | Description | Default |
|---|---|---|---|
| board_id | Yes | Board ID where the task belongs. | |
| task_number | Yes | Task number in board scope. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds the payload fields an agent will receive, but says nothing beyond that — e.g., what happens if the task number doesn't exist in the board, or any permission requirements.
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 single front-loaded sentence with no filler; the purpose and the returned fields are stated before anything else. Nothing could be trimmed without losing 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?
With only two well-documented required parameters and rich annotations, the main gap left is return shape — and the description compensates by listing the fields returned despite there being no output schema. Only the missing-task/error behavior keeps it from being fully complete.
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%: board_id and task_number are both documented in the schema with their scoping semantics ('board scope'). The description adds nothing about parameters, so the baseline 3 applies — the schema does all the work here.
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 (read) and a specific resource (one task), and enumerates the fields returned (description, deadline, tags, status, assignee). 'One task' implicitly separates it from the sibling list_tasks/search_tasks, though no sibling is named 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?
'Use this to read one task' signals the single-record retrieval case, so usage is implied rather than stated. There is no explicit guidance on when to prefer list_tasks or search_tasks instead, or what preconditions (e.g., needing board_id and task_number) must hold.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invite_board_memberInvite board memberAInspect
Use this command to invite a user to a board. The invited user will receive a notification and must accept. Owner/admin only.
| Name | Required | Description | Default |
|---|---|---|---|
| role | No | Role to assign (admin or user). Default: user. Cannot assign owner role. | |
| board_id | Yes | Board ID to invite the user to. | |
| username | Yes | Telegram username of the user to invite (without @). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare that this is a mutation with non-destructive, non-idempotent semantics. The description adds useful behavioral context beyond that: the invitee receives a notification and must accept, and the caller must be owner/admin.
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 short and front-loaded: purpose first, then acceptance behavior, then permission requirement. Minor filler in 'Use this command to' keeps it from being maximally tight.
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 simple three-parameter invitation tool with a complete schema and annotations, the description supplies the key flow and permission context. It leaves some invitation edge cases and sibling differentiation implicit, but is broadly sufficient to invoke correctly.
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 all three parameters are already documented in the input schema. The description adds no additional parameter meaning or formatting guidance beyond 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?
State a specific verb and resource: invite a user to a board. Clear enough to act on, but it does not distinguish itself from the close sibling add_board_member.
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 implies usage through 'Use this command to invite' and states an owner/admin prerequisite. It does not explicitly say when to choose this instead of add_board_member or otherwise route the agent among closely related invitation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
issue_agent_keyIssue agent keyAInspect
Mint a new API key for an agent member of the organization. Use for rotation or additional keys. The plaintext key is returned once — store it immediately. Requires organization owner/admin.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Key label. Defaults to '<username> — <date>'. | |
| scope | No | Key scope label (enforcement is planned; stored today). | |
| agent_username | Yes | Username of the agent. | |
| namespace_slug | Yes | Namespace slug of the organization. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds two non-obvious behaviors beyond the annotations: the plaintext secret is returned exactly once and must be stored immediately, and the caller must be an org owner/admin. It leaves one ambiguity — whether 'rotation' invalidates the previous key or whether revoke_agent_key must be called separately.
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, front-loaded with the action, then the usage condition, then the two operational warnings. Every sentence carries information an agent needs; nothing is wasted.
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 non-idempotent mutation with no output schema, the description covers the missing piece an agent would otherwise guess at (the one-time plaintext return) plus the authorization requirement. Combined with a fully documented schema, an agent has everything needed to call it correctly.
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 the name default, the scope enum (including that enforcement is planned), and both required slugs. The description adds no parameter-level detail of its own, so the 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?
States a specific verb ('Mint') and resource ('new API key for an agent member'), with the scope of the organization. It is trivially distinguishable from the nearest sibling, revoke_agent_key, and from create_agent, without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use for rotation or additional keys' gives a concrete trigger condition, and 'Requires organization owner/admin' states a prerequisite. It stops short of naming an alternative (e.g., revoke_agent_key for retiring an old key) or explicitly excluding first-time issuance via create_agent, so it earns a 4 rather than a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_agentsList agentsARead-onlyIdempotentInspect
List the members of the organization identified by its namespace slug, including agent accounts (type='agent') with their active API-key counts and last key use. Requires organization owner/admin.
| Name | Required | Description | Default |
|---|---|---|---|
| namespace_slug | Yes | Namespace slug of the organization. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive behavior, so the description earns credit for adding what annotations cannot: the permission requirement and the fact that agent rows carry active API-key counts and last key use. It does not mention pagination or result limits, which is the remaining gap.
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, zero filler: the operation and returned data come first, the authorization constraint second. Nothing to trim.
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 single-parameter list tool with no output schema, the description covers what is listed, the special agent fields, and the access requirement. It stops short of describing result shape or pagination, but an agent has enough to call it correctly.
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% and there is a single required parameter, so the schema already documents it. The description adds only that the slug identifies an organization, which is marginal beyond 'Namespace slug of the organization' 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 ('List') plus resource ('members of the organization') and scopes it via the namespace slug, which is clearer than the bare title 'List agents'. However, it does not distinguish itself from the sibling 'list_namespace_members', which an agent may reasonably consider interchangeable.
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 states the authorization prerequisite ('Requires organization owner/admin'), which is genuine usage context. But it gives no guidance on when to choose this over 'list_namespace_members' or 'create_agent'/'delete_agent' workflows, leaving the main selection ambiguity unresolved.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_board_filesList board filesARead-onlyIdempotentInspect
List the board's named files (the multi-file-ready prompt store). v1 returns at least the root "AGENTS.md" once a prompt has been set; empty list means no prompt/files yet.
| Name | Required | Description | Default |
|---|---|---|---|
| board_id | Yes | Board ID to list files for. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered; the description adds genuinely new behavior context about the empty-list case and the guaranteed AGENTS.md root entry. It stops short of saying anything about ordering or size limits, but for a simple list operation this is solid added value.
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 tight sentences with the core purpose front-loaded and the return-value caveat second. The parenthetical 'multi-file-ready prompt store' is slightly jargon-heavy but does real explanatory work.
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 single-parameter, non-destructive list operation with full annotation coverage and no output schema, the description covers purpose and the notable empty-state semantics. Ordering, pagination, and file metadata are unstated but the annotations plus the v1 caveat make the call safe and correct.
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?
Only one parameter and schema description coverage is 100%, so the schema fully documents board_id. The description adds no syntax, format, or validity meaning beyond it, which is the expected baseline of 3.
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 and resource ('List the board's named files') and parenthetically identifies what those files are (the multi-file-ready prompt store). It implicitly distinguishes itself from get_board_prompt by talking about a set of files rather than one prompt, though it never names that sibling 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?
There is no statement of when to call this versus get_board_prompt or update_board_file, and no prerequisites or exclusions. The only contextual sentence describes what the return value means, not when to reach for the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_board_membersList board membersBRead-onlyIdempotentInspect
Use this command to see all board members and their roles (owner/admin/user).
| Name | Required | Description | Default |
|---|---|---|---|
| board_id | Yes | Board ID to list members for. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent and non-destructive, so the safety profile is covered. The description adds the role vocabulary of the response, which is useful, but says nothing about whether pending invitations are included, ordering, or pagination behavior on large boards.
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 single front-loaded sentence with zero filler; the purpose and the role vocabulary appear immediately. It is efficient, though the brevity is also the source of the missing scoping detail.
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 simple read-only list tool with full schema coverage and dense annotations, the description is adequate but thin: it leaves open whether pending invitees are returned and whether results are paginated or ordered, both of which affect how an agent interprets the output.
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?
Only one parameter and schema description coverage is 100%, with the schema itself stating 'Board ID to list members for.' The description adds no syntax or format guidance beyond that, so the 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?
States a specific verb+resource (see all board members) and even enumerates the role values returned (owner/admin/user), so an agent knows exactly what comes back. It does not explicitly distinguish itself from near-siblings like list_namespace_members or list_pending_invitations, but the resource scope (board) is 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?
'Use this command to see all board members' implies the read use case but gives no when-to-use/when-not conditions and names no alternative. Given siblings such as list_pending_invitations and invite_board_member, a sentence about whether invited-but-not-yet-joined users appear here would have resolved real ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_boardsList boardsBRead-onlyIdempotentInspect
Use this command to discover boards before creating or filtering tasks.
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | Filter boards by board code (3-character code, exact match, case-insensitive). | |
| limit | No | Optional max number of boards to return. | |
| title | No | Filter boards by title (starts-with, case-insensitive). | |
| only_archived | No | Return only archived boards. | |
| include_archived | No | Include archived boards in result. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. Beyond that the description adds nothing behavioral: no defaults for include_archived vs only_archived, no pagination/limit behavior, no note on what an empty result means.
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 single front-loaded sentence with zero filler. It is efficient, though so terse that the brevity comes at the cost of missing detail rather than being a model of denseness.
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 simple, fully annotated, zero-required-parameter list tool with no output schema, the description is just barely sufficient to select the tool. It leaves the agent guessing about the archive-flag interaction and the shape of the result.
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 all five parameters (code, title, limit, only_archived, include_archived) are already documented with match semantics. The description adds no extra meaning, so the 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 phrase 'discover boards' conveys the resource and a retrieval intent, but it is a vague verb that never states this is a filtered list operation or what it returns. It also does not distinguish it from siblings like get_board_by_namespace, which also surfaces a board.
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 an explicit workflow trigger: run this before creating or filtering tasks. That is real context an agent can act on, though no when-not conditions or alternative tools (search_tasks, get_board_by_namespace) are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_board_tagsList board tagsARead-onlyIdempotentInspect
Use this to discover which tags already exist on a board before filtering with list_tasks. Returns unique tag strings (first-seen casing), sorted case-insensitively.
| Name | Required | Description | Default |
|---|---|---|---|
| board_id | Yes | Board ID to list tags from. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/idempotent/non-destructive, so the description focuses on what the annotations cannot express: deduplication of tags, first-seen casing preservation, and case-insensitive sorting. That is genuinely useful behavioral detail. It does not mention an empty-board result or whether archived tasks contribute tags, which keeps it from a 5.
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, both load-bearing: the first gives purpose and workflow placement, the second gives return semantics. No filler and the usage cue 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 simple one-parameter read tool with no output schema, the description supplies everything an agent needs: what it returns, how results are ordered and deduplicated, and how it fits before list_tasks. Nothing material 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?
There is a single required board_id and schema coverage is 100%, with the schema itself stating 'Board ID to list tags from.' The description adds nothing about the parameter (e.g., behavior on unknown or inaccessible board IDs), so the baseline of 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?
States a specific verb and resource ('discover which tags already exist on a board') and immediately distinguishes it from the neighboring list_tasks filter flow. An agent can tell exactly what it gets back: tag strings, not tasks.
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 forward guidance: call this before filtering with list_tasks, which is the primary legitimate use. It stops short of stating when not to use it (e.g., when tags are already known or when searching tasks directly), but the intended sequencing is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_checklistList checklistARead-onlyIdempotentInspect
Use this to retrieve all checklist items for a specific task. Provide board_id + task_number.
| Name | Required | Description | Default |
|---|---|---|---|
| board_id | Yes | Board ID where the task belongs. | |
| task_number | Yes | Task number in board scope. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds only that results are scoped to one task; it says nothing about ordering, pagination, or what happens when the task has no checklist, which is the kind of context that would raise this above baseline.
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 short sentences, front-loaded with the action and followed by the required inputs. The second sentence is mildly redundant against the schema's required fields, but nothing is wasted.
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 simple read-only list tool with full schema coverage, strong annotations, and no output schema, the description is sufficient to call it correctly. Only minor gaps remain, such as item field contents and empty-result behavior.
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%, with both board_id and task_number fully documented in the schema, so the baseline is 3. The description restates the two required parameters ('Provide board_id + task_number') without adding format, constraint, or scoping detail beyond what the schema already provides.
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 names a specific verb and resource ('retrieve all checklist items') and bounds it to a single task, so an agent knows exactly what it returns. It does not distinguish itself from nearby siblings such as add_checklist_item or update_checklist_item by name, but the read-only retrieval intent is 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?
'Use this to retrieve all checklist items for a specific task' implies the use case, but there are no explicit when-not conditions or pointers to alternatives (e.g., get_task for broader task detail). Adequate but leaves routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_commentsList commentsBRead-onlyIdempotentInspect
Use this to retrieve all comments for a specific task. Provide board_id + task_number.
| Name | Required | Description | Default |
|---|---|---|---|
| board_id | Yes | Board ID where the task belongs. | |
| task_number | Yes | Task number in board scope. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds only that the result is the complete set of comments ('all'), without mentioning ordering, pagination, or whether deleted comments are included.
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 short sentences, front-loaded with the purpose before the parameter callout. The second sentence is largely redundant with the schema's required array, which keeps it from a 5.
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 simple filtered-list read tool with rich annotations and fully documented params, this is close to sufficient, but with no output schema the agent cannot learn the shape of a returned comment (author, timestamps, pagination), and the description does not fill that gap.
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%: board_id ('Board ID where the task belongs') and task_number ('Task number in board scope') are already documented. The description merely repeats that both must be provided, adding no format, scoping, or validation detail beyond 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?
States a specific verb and resource ('retrieve all comments') plus the scope ('for a specific task'), so an agent can instantly tell it apart from add_comment or delete_comment in the sibling list. It stops short of explicitly naming the write siblings it is not, which keeps it from a 5.
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?
'Use this to retrieve all comments' implies the usage context, and it names the two required inputs. There is no explicit statement of when to prefer it over list_task_activity or search_tasks, and no exclusions, so guidance remains implied rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_namespace_membersList namespace membersARead-onlyIdempotentInspect
List the unified member roster of a namespace: structural owner, explicitly added members (editable here), and organization-inherited members (org namespaces). Requires the workspace owner.
| Name | Required | Description | Default |
|---|---|---|---|
| namespace_slug | Yes | Namespace slug of the workspace. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so safety behavior is covered. The description adds useful context about roster composition and the workspace-owner authorization requirement. It does not mention pagination or return shape, so it falls short of the highest score.
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 one front-loaded sentence that states the listing purpose, roster categories, and owner prerequisite. Every phrase adds useful information, including the parentheticals about editable explicit members and org namespaces.
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 simple one-parameter read-only tool with full schema coverage and rich annotations, the description supplies the important roster composition and authorization context. It does not describe pagination or exact return fields, but the roster categories give enough sense of the output 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?
There is only one parameter, namespace_slug, and schema description coverage is 100%, so the schema already documents it. The description's phrase 'of a namespace' adds no format or syntax details beyond the schema, making the baseline 3 appropriate.
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 ('unified member roster of a namespace'), then breaks the roster into structural owner, explicitly added members, and organization-inherited members. This clearly distinguishes it from siblings such as list_board_members and list_namespaces.
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 provides a clear prerequisite: 'Requires the workspace owner.' It implies use for namespace membership listings but does not explicitly name alternatives or when not to use it. That is enough context for a simple list tool, but lacks explicit routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_namespacesList namespacesARead-onlyIdempotentInspect
List all namespaces the user can see: their personal namespace plus any organization namespaces they own or are a member of. Use this to discover where boards can be created or moved.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world behavior, so the description's main added value is the visibility scope: personal namespace plus organization namespaces the user owns or is a member of. That is useful behavioral context beyond the annotations, though it does not cover ordering, empty results, or response shape.
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 sentences, front-loads the core action and scope, and includes a concrete usage note. Every sentence adds relevant information without 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?
For a zero-parameter, read-only listing tool with rich annotations and no output schema, the description is complete enough: it explains what is listed, whose namespaces are included, and why an agent would call it. Nothing essential 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?
The tool takes zero parameters, so there is no parameter semantics to document. The baseline for a zero-parameter tool is 4, and the description does not need to compensate for missing parameter documentation.
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: 'List all namespaces'. It also clarifies the scope as the user's personal namespace plus organization namespaces they own or belong to, which distinguishes it from related tools like list_namespace_members.
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 sentence 'Use this to discover where boards can be created or moved' gives clear context for when to call the tool. However, it does not explicitly name alternatives such as list_namespace_members or state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_oauth_clientsList oauth clientsARead-onlyIdempotentInspect
List the OAuth2 clients you own (client_id, name, redirect URIs, scopes, revocation status).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and a closed-world scope, so the safety profile is fully covered. The description adds one genuinely useful behavioral fact — that results are limited to clients the caller owns, not all clients — but says nothing about pagination, ordering, or behavior when the caller owns none.
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 single sentence with the resource and ownership scope front-loaded and the returned fields packed into a parenthetical. No filler, no restatement of the title beyond what the field list adds.
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 no parameters and no output schema, the description does the needed work by naming the fields an agent will receive (client_id, name, redirect URIs, scopes, revocation status). The only real gap is the absence of pagination or result-size expectations for a list operation.
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 tool takes zero parameters and the schema is empty at 100% coverage, which establishes the baseline of 4. The parenthetical field list describes return content rather than parameters, so it neither helps nor hurts this dimension.
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?
Specific verb (List) plus resource (OAuth2 clients) with an explicit scope qualifier ('you own') and an enumeration of the returned fields. It implicitly separates itself from create_oauth_client and revoke_oauth_client by verb, but never names those siblings to make the distinction 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?
Usage is only implied: an agent can infer this is the read path for inspecting OAuth2 clients before revoking or auditing them. There is no explicit when-to-use, no mention of when a different tool (e.g., a per-client getter) is preferable, and no prerequisites stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_pending_invitationsList pending invitationsARead-onlyIdempotentInspect
Use this without board_id to see your pending invitations. With board_id, see pending invitations for that board (must be a member).
| Name | Required | Description | Default |
|---|---|---|---|
| board_id | No | Optional board ID to filter invitations for. If omitted, shows your pending invitations. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The description adds one genuinely useful behavioral fact — the caller must be a board member to use the board_id mode — but says nothing about whose invitations are returned in each mode (sent vs received) or result ordering/limits.
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 short sentences, zero filler, and the no-argument case is front-loaded before the filtered case. Every clause carries information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single optional-parameter read tool with full annotation coverage and no output schema, the description is nearly sufficient. The only real gap is clarification of what an 'invitation' is here (incoming to the caller vs. sent by them), which affects interpretation of results.
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 that board_id is an optional filter with the same omitted-behavior semantics. The description restates this almost verbatim, adding only the membership constraint, so the 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?
States a specific verb and resource (list pending invitations) and splits behavior into two clearly-scoped modes based on board_id. It is distinguishable from write-side siblings like invite_board_member or respond_to_invitation, though it never names 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?
Explicitly says when to omit board_id (your own invitations) versus when to supply it (board-level invitations), and adds the membership prerequisite. It stops short of naming alternatives such as respond_to_invitation for acting on the results.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_statusesList statusesCRead-onlyIdempotentInspect
Use this command to inspect the board status catalog and ordering.
| Name | Required | Description | Default |
|---|---|---|---|
| board_id | No | Optional board ID. Defaults to user's active board. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered. The description adds essentially nothing beyond them — no mention of permissions, whether statuses are board-scoped or global, or that ordering is returned as a stable sequence.
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?
One short sentence with no padding, front-loaded with the resource. The only cost is the filler phrase 'Use this command to,' which delays the actual 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 simple read-only list tool with rich annotations and full schema coverage, little is strictly required. However, with no output schema, the description could usefully state that it returns each status's identifier, name, and position — 'ordering' hints at this but never makes it explicit.
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?
With a single parameter at 100% schema coverage and a schema description that already explains the default-to-active-board behavior, the schema carries the full burden. The description adds no meaning about board_id or what happens when a non-active board is requested.
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 (inspect) and resource (board status catalog and ordering), which is clear enough for an agent to know it returns the list of statuses for a board. It does not name or distinguish itself from siblings such as create_status, update_status, or reorder_statuses, so the read-vs-write boundary is only inferable from the verb.
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 'Use this command to...' phrasing is a generic lead-in with no condition for when this tool is preferred over alternatives like reorder_statuses or get_board_settings. No prerequisites, exclusions, or follow-up guidance are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_task_activityList task activityARead-onlyIdempotentInspect
Use this to read the history of actions performed on a task (create, update, status changes, comments). Returns a timeline of activity entries.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Optional max number of activity entries to return (default 20). | |
| offset | No | Optional offset for pagination (default 0). | |
| board_id | Yes | Board ID where the task belongs. | |
| task_number | Yes | Task number in board scope. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world, so the safety profile is covered. The description adds the return shape (a timeline of activity entries) and the action types included, but omits ordering (oldest/newest first) and pagination behavior, which matter for a paged timeline.
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 short sentences, zero waste, with the scope-defining content front-loaded. Nothing needs to be trimmed.
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?
A simple read tool with rich annotations, a fully described schema, and no output schema, so the description need only convey purpose and return shape - both present. The only real gap is timeline ordering, which an agent may care about when paging.
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?
All four parameters are fully documented in the schema including defaults for limit (20) and offset (0), so coverage is 100% and the baseline applies. The description adds no additional meaning about board_id/task_number scoping or how limit interacts with the timeline.
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?
Names a specific verb (read) and resource (history of actions on a task) and enumerates the action types included (create, update, status changes, comments), which separates it from create/update_task. However, it never explicitly distinguishes itself from close siblings like list_comments or get_task, which surface overlapping data.
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?
"Use this to read the history..." implies the usage context but names no alternatives and gives no exclusions - an agent must infer that comment bodies come from list_comments and current state from get_task. Implied usage only.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_task_filesList task filesARead-onlyIdempotentInspect
List the attachments of a board task: id, name, size, mime type, caption. Read access requires board membership (or a public board).
| Name | Required | Description | Default |
|---|---|---|---|
| board_id | Yes | Board ID where the task lives. | |
| task_number | Yes | Task number in board scope. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive, and closed-world behavior, so the description earns credit for adding the authorization model (board membership or public board) and the shape of what is returned. It does not state pagination, ordering, or behavior for an unknown task, which keeps it below a 5.
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 short sentences, zero waste: the operation and returned fields come first, and the auth constraint follows. Nothing is repeated from the title or schema beyond necessary framing.
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 simple two-parameter read tool with no output schema, the description covers purpose, access, and the returned field set, which is enough to invoke it correctly. Missing pagination or empty-result behavior keeps it short of complete.
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%: board_id and task_number are both documented in the schema, and the description adds only the framing 'of a board task' without new syntax or constraints. Baseline 3 applies when the schema carries the parameter 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?
Specific verb plus resource: 'List the attachments of a board task', followed by the exact fields returned (id, name, size, mime type, caption). The scoping to a task (via board_id + task_number) implicitly distinguishes it from the sibling list_board_files, but no sibling is named 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 an access prerequisite ('Read access requires board membership (or a public board)') but no when-to-use guidance, no exclusions, and no pointer to the board-level alternative list_board_files. Usage is only inferable from the resource named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tasksList tasksARead-onlyIdempotentInspect
Use this to inspect task backlog by board, assignee, status, priority, tags, title substring, creation date range, and deletion state.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Optional list of tags to filter by. Tasks matching ANY of the specified tags are returned. | |
| limit | No | Optional max number of tasks to return. | |
| status | No | Optional status name filter. | |
| assignee | No | Optional assignee username filter (without @). | |
| board_id | Yes | Board ID to list tasks from. | |
| priority | No | Optional priority filter: critical, major, normal, low (aliases: high→major, middle→normal). | |
| created_to | No | Optional inclusive upper bound on createdAt as YYYY-MM-DD. | |
| created_from | No | Optional inclusive lower bound on createdAt as YYYY-MM-DD. | |
| only_deleted | No | Return only deleted tasks. | |
| title_contains | No | Optional case-insensitive substring match on task title. | |
| include_deleted | No | Include deleted tasks in the result. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the ability to filter by deletion state, but it does not explain default deletion behavior, pagination, ordering, or what the result looks like beyond what the schema already says.
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 front-loaded sentence that immediately says how to use the tool and then lists the relevant filter dimensions. It contains no filler and is appropriately sized for an overview.
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 an 11-parameter read-only list tool with complete schema coverage and clear annotations, the description is broadly complete: it identifies the tool's purpose and the filter set. Minor gaps around default deletion handling and pagination behavior are mitigated by the detailed 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 parameter schema already documents all 11 parameters precisely, including aliases, date formats, and filter behavior. The description only lists filter categories at a high level and adds no syntax or semantics beyond 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 (inspect) and resource (task backlog) and enumerates the filter dimensions, so the tool's basic function is clear. It does not explicitly differentiate this tool from the close sibling search_tasks or explain whether it is board-scoped versus cross-board.
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 clear usage context with 'Use this to inspect task backlog by...' followed by the available filters. It does not state when to prefer search_tasks, get_task, or my_work instead, but it provides enough context to know the intended use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_boardMove boardAInspect
Move a board from its current namespace to a target namespace. The board's 3-character code must be unique in the target namespace. The board URL will change. Use this to consolidate boards into an organization namespace.
| Name | Required | Description | Default |
|---|---|---|---|
| board_id | Yes | Board ID to move. | |
| namespace_slug | Yes | Target namespace slug (e.g. 'kangram'). Use list_namespaces to discover available slugs. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so safety framing is partly covered; the description still adds real value by disclosing the URL change side effect and the uniqueness precondition. It omits mutation-specific context the annotations don't cover, such as required permissions on both namespaces, whether the move is reversible, and whether old links redirect or break.
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 short sentences, each carrying distinct information: action and scope, uniqueness precondition, side effect, and intended use case. No filler and the 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 two-parameter mutation with no output schema, the description covers purpose, precondition, and post-move side effect adequately. Gaps remain around authorization requirements and whether the move can be undone, which matter for a namespace-transfer operation.
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 itself documents both board_id and namespace_slug including the list_namespaces discovery hint, so the baseline is 3. The description's remark about the 3-character code being unique in the target namespace adds useful constraint context for namespace_slug but no format or semantics beyond 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?
States a specific verb and resource plus the source/target scope ('from its current namespace to a target namespace'), which is far more precise than 'Move board' alone. It does not explicitly differentiate itself from close siblings like transfer_board_ownership, bind_board_to_group, or update_board, so an agent must infer the distinction.
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 a concrete use case ('consolidate boards into an organization namespace') and an important precondition (code must be unique in the target namespace), which tells the agent when the call is appropriate. It stops short of naming alternatives or exclusions, e.g. when to use transfer_board_ownership instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_taskMove taskAInspect
Use this to transfer a task between boards. The task gets a new number in the target board. Status is reset to target board's default if the current status doesn't exist there.
| Name | Required | Description | Default |
|---|---|---|---|
| task_number | Yes | Task number in the source board. | |
| source_board_id | Yes | Board ID where the task currently belongs. | |
| target_board_id | Yes | Board ID to move the task to. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only tell the agent this is a non-idempotent, non-destructive write. The description adds genuinely valuable consequences the agent could not infer: the task receives a new number in the target board, and status resets to the target default when the current status is absent there. It stops short of saying whether comments, checklists, or history follow the task.
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 short sentences with zero filler; the primary action is front-loaded and the two behavioral caveats follow immediately. Nothing could be cut without losing information.
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 mutation tool with no output schema, the description covers the core outcome but leaves open important questions: what happens to comments, checklist items, attachments, and activity history, and whether the source task disappears. Adequate but with clear gaps for an agent handling a task move.
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 all three parameters are already documented in the schema and the baseline of 3 applies. The description adds no further parameter-level detail such as whether task_number must refer to an open task or how board IDs are obtained.
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 and resource ('transfer a task between boards') that is clearly distinct from siblings like update_task, clone_board, and move_board. It doesn't explicitly name those alternatives, so it falls short of the 5 bar, but the purpose is 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?
The opening 'Use this to transfer a task between boards' implies the usage context, but there is no guidance on when to choose this over alternatives (e.g., clone_board plus delete_task) or any preconditions. Usage is inferable but not spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
my_workMy workARead-onlyIdempotentInspect
Returns up to 100 tasks assigned to or created by the caller across all boards they can access, ordered by most recent update. Use this to answer 'what's on my plate?' or to surface overdue/stale work. Pass namespaceSlug to scope to a single namespace.
| Name | Required | Description | Default |
|---|---|---|---|
| namespace_slug | No | Namespace slug (e.g. 'acme'), as returned by list_namespaces. Scopes tasks to boards in that namespace. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so safety is covered. The description adds meaningful context beyond that: a hard ceiling of 100 results, recency-based ordering, and cross-board scope. It does not say whether results are silently truncated at 100 or how to page past that limit, which is the one real gap.
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 tight sentences: behavior first, then use cases, then the optional scoping parameter. Nothing is padded and the most decision-relevant facts are 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 one-optional-parameter read tool with full annotation coverage and no output schema, the description covers scope, cap, ordering and usage. The only missing piece an agent would want is what happens at the 100-result boundary (truncation vs. pagination).
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% and the single parameter is fully documented in the schema, so the baseline is 3. The description reinforces the intent ('scope to a single namespace') but adds no syntax or default-behavior detail, and it refers to the parameter as 'namespaceSlug' while the schema names it 'namespace_slug' — a minor naming inconsistency.
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 and resource ('Returns ... tasks') plus the exact scope: assigned to or created by the caller, across all accessible boards. The result cap (100) and ordering (most recent update) further pin down what the tool does, distinguishing it from board-scoped siblings like list_tasks or search_tasks.
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 concrete use cases ('what's on my plate?', surfacing overdue/stale work) and explains when to pass the namespace slug. It stops short of naming alternatives such as list_tasks or search_tasks and saying when those are preferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_board_memberRemove board memberADestructiveInspect
Use this command to remove a member from a board. On group-chat-linked boards, removing a member with an explicit board_member row reverts them to a regular Telegram member (they stay on the board via the linked group). Members without a board_member row (Telegram-only) cannot be removed. Owner can remove admin/user, admin can remove user. Cannot remove owner.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | User ID to remove from the board. | |
| board_id | Yes | Board ID to remove the user from. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true and idempotentHint=false, so the safety profile is covered. The description adds non-obvious semantics the annotations can't convey: on group-linked boards the member reverts to a regular Telegram member rather than being fully removed, and role-based authorization limits.
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?
Front-loaded with the core action, then layers in the group-link caveat and permission rules. Four tight sentences, all loading-bearing; slightly dense but efficient.
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 the behavior, constraints, and permission model needed to invoke correctly, with output schema absent but return value relatively self-evident for a removal operation. Rich enough for an agent to act without trial and error.
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% and both parameters are documented in the schema, so the baseline is 3. The description adds meaning by implying board_id determines the board type behavior, but doesn't elaborate on user_id format beyond 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?
States a specific verb and resource ("remove a member from a board"), clearly distinct from siblings like add_board_member, invite_board_member, and remove_namespace_member. It doesn't explicitly name an alternative, but the purpose is 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?
Provides concrete when/when-not guidance: Telegram-only members cannot be removed, and a permission hierarchy is spelled out (owner removes admin/user, admin removes user, owner cannot be removed). It stops short of explicitly routing to sibling tools for adjacent cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_namespace_memberRemove namespace memberADestructiveInspect
Remove an explicitly-granted workspace membership (NamespaceMember row). The workspace owner cannot be removed, and members inherited from the organization are not removable here (manage them on the org surface). Explicit per-board memberships deliberately survive. Requires the workspace owner.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | No | User ID of the member (from list_namespace_members). Either username or user_id is required. | |
| username | No | Username of the member (without @). Either username or user_id is required. | |
| namespace_slug | Yes | Namespace slug of the workspace. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=false, so the description's job is to add the operational details it does: an authorization prerequisite (requires the workspace owner) and the immunity rules that determine which rows this can and cannot touch. It omits what happens to the removed user's tasks/comments and whether removal is reversible or re-invitable, which are the remaining behavioral gaps for a destructive tool.
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 tight sentences with no filler: the action comes first, then the immunity/exception rules, then the auth requirement. Every clause carries information an agent could otherwise get wrong.
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 3-parameter mutation with full schema coverage and no output schema, the description covers the action, prerequisites, and exclusion cases well. Only the post-removal effects (access revocation, orphaned assignments) are unaddressed.
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%, with both user_id and username documenting the 'either/or is required' rule and pointing to list_namespace_members for lookup. The description adds nothing about parameter semantics beyond the schema, so the baseline of 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?
States a specific verb and resource (remove an explicitly-granted workspace membership / NamespaceMember row) and immediately scopes it away from two adjacent concepts: the workspace owner and org-inherited memberships. This is enough to separate it from remove_board_member and add_namespace_member without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear exclusion conditions — the owner cannot be removed, inherited org memberships must be managed on the org surface, and per-board memberships survive. It stops short of naming the sibling to use instead (remove_board_member, list_namespace_members for discovery), so the alternative routing is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reorder_statusesReorder statusesCInspect
Provide orderedStatusIds to set deterministic status ordering for a board.
| Name | Required | Description | Default |
|---|---|---|---|
| board_id | No | Optional board ID. Defaults to user's active board. | |
| ordered_status_ids | Yes | Status IDs in desired order. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (not read-only, non-destructive), so the description could have spent its space on the real unknown: whether ordered_status_ids must be a complete list and what happens to statuses omitted from it. That key behavioral ambiguity is left unaddressed.
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 single short sentence that front-loads the required parameter. Nothing is wasted, though there is very little content to structure.
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 mutation tool with full schema coverage and annotations, the basics are covered and no output schema is needed. However, the all-or-nothing semantics of the ordering payload are missing, which is the one thing an agent must know to call this correctly.
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 both board_id (with its default to the active board) and ordered_status_ids are documented in the schema itself. The description repeats the parameter name but adds no constraint such as completeness or duplicate handling, 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 names a specific verb ('set deterministic status ordering') and resource ('status ordering for a board'), which clearly separates it from single-status siblings like update_status or list_statuses. It stops short of explicitly naming those siblings, but the action is 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 only says to supply orderedStatusIds; there is no guidance on when to use this versus update_status or create_status, no prerequisites, and no note about whether the board must already have statuses. Usage is inferable from the name only, not from the text.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
respond_to_invitationRespond to invitationAInspect
Use this command to accept or reject a pending board invitation by its token (from list_pending_invitations).
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | Invitation token (the unguessable bearer string from list_pending_invitations). | |
| accept | Yes | True to accept, false to reject. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare that the tool is non-read-only, non-idempotent, non-destructive, and closed-world. The description adds the pending-invitation state and token source, but it does not explain what accepting or rejecting does to board membership, whether the token is consumed, or what happens with an expired token.
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 well-structured sentence with the action and prerequisite front-loaded. Every clause carries useful selection or invocation information.
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 simple two-parameter mutation with annotations and no output schema, the description covers the essential selection and token-source information. It is slightly incomplete on the downstream effects of accepting or rejecting, but the core invocation context is present.
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 both parameters. The description restates that the token comes from list_pending_invitations and that the action is accept/reject, but it adds no format or semantic details beyond 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 and resource: accept or reject a pending board invitation. It also scopes the action to a token obtained from list_pending_invitations, which distinguishes it clearly from sibling tools such as list_pending_invitations and cancel_board_invitation.
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 says when to use the tool: handling a pending board invitation, with the token coming from list_pending_invitations. It does not discuss exclusions or alternatives, but the operational context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restore_boardRestore boardBInspect
Use this to recover a previously archived board.
| Name | Required | Description | Default |
|---|---|---|---|
| board_id | Yes | Board ID to restore. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=false, so the safety profile is covered structurally. The description adds one useful behavioral fact 'previously archived' establishing a state precondition, but says nothing about failure modes (board not archived, already active), permission requirements, or whether tasks/members are restored with the board. Given annotation coverage, a 3 is appropriate.
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?
One short sentence with zero filler, and the action plus the precondition are front-loaded. It is efficient but slightly under-specified rather than padded; nothing in it is wasted.
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 one-parameter mutation with annotations and no output schema, the essentials are present but the edges are unresolved: what happens if the board is not archived, what permissions are needed, and what state the restored board returns in. These are reasonable gaps for a simple tool but leave an agent guessing at the failure path.
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?
There is a single parameter with 100% schema description coverage ('Board ID to restore.'), so the schema fully documents it. The description adds no additional meaning such as where to obtain the board_id or whether archived boards appear in list_boards. Baseline 3 applies when the schema does the work.
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 names a specific action ('recover') and a specific resource ('a previously archived board'), which clearly ties it to the sibling archive_board as its inverse. It stops short of explicitly naming siblings like restore_task, so the agent must infer the board-vs-task distinction from the resource noun alone.
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?
'Use this to recover a previously archived board' implies the triggering condition (the board is currently archived), which is meaningful guidance. However, there is no explicit when-not, no mention of what to do if the board is not archived, and no note on required permissions or ownership.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restore_taskRestore taskAInspect
Use this with list_tasks onlyDeleted/includeDeleted to recover deleted tasks.
| Name | Required | Description | Default |
|---|---|---|---|
| board_id | Yes | Board ID where the task belongs. | |
| task_number | Yes | Deleted task number in board scope. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a non-read, non-destructive, non-idempotent mutation, so the bar is lowered. The description adds that the target task must be deleted, which is useful, but says nothing about permissions required, what happens if the task was never deleted or was purged, or whether the restore is reversible.
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 single sentence with no filler; every clause contributes. The action verb is slightly back-loaded after the 'Use this with' clause, but nothing is wasted.
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 two-parameter, no-output-schema mutation whose annotations cover the safety profile, the definition supplies the key prerequisite workflow. Remaining gaps around failure modes and permissions are minor at this complexity level.
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%, and both parameters carry descriptions clarifying board scoping and that the task number refers to a deleted task. The description adds no syntax or formatting detail beyond that, so the schema baseline of 3 is appropriate.
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 names the specific action (recover deleted tasks) and the tool name/title reinforce restore_task. It distinguishes itself from restore_board by implication of 'tasks,' and from delete_task by direction, though it never names a sibling 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?
It states a concrete precondition workflow: pair with list_tasks using onlyDeleted/includeDeleted to find the deleted task first. There is no explicit when-not guidance (e.g., what to do for non-deleted tasks or whether archive exists as an alternative), but the usage context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
revoke_agent_keyRevoke agent keyADestructiveInspect
Revoke an agent's API key by id. Only keys owned by agent accounts are revocable this way (humans revoke their own). Requires organization owner/admin of an org the agent belongs to.
| Name | Required | Description | Default |
|---|---|---|---|
| key_id | Yes | API key id (from list output or the web UI). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is known. The description adds authorization requirements and the ownership constraint that annotations cannot express. It does not say what happens to the agent immediately after revocation, which is the remaining behavioral gap.
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 with no padding, and the destructive action plus its scope are front-loaded before the authorization detail.
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 single-parameter destructive tool with full annotation coverage, this covers purpose, scope, and permissions adequately. The main omission is the post-revocation effect on the agent's access.
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% and the single key_id parameter is fully documented in the schema, including its source (list output or web UI). The description's 'by id' adds nothing beyond that, so the baseline of 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?
States a specific verb and resource ('Revoke an agent's API key by id') and explicitly scopes it to agent-owned keys, adding that humans revoke their own. This cleanly separates it from revoke_oauth_client and from any human key revocation path.
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 a clear applicability condition (only agent-owned keys) and a prerequisite (org owner/admin of an org the agent belongs to). It stops short of naming a concrete alternative tool for the non-agent case, but the exclusion is stated plainly enough to route an agent correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
revoke_oauth_clientRevoke oauth clientADestructiveInspect
Revoke one of your OAuth2 clients by its numeric ID. Existing tokens are not deleted but no new authorizations will be allowed.
| Name | Required | Description | Default |
|---|---|---|---|
| client_id | Yes | Numeric ID of the OAuth2 client to revoke. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, but the description adds important nuance: existing tokens are not deleted, and no new authorizations will be allowed. That clarifies the scope of the destructive action beyond the annotation alone.
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 tight sentences with no wasted language. The primary action is front-loaded, followed immediately by the key behavioral consequence.
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 simple single-parameter destructive tool with full schema coverage and annotations, the description covers purpose and the most important side effect. It could be slightly more complete by pointing to list_oauth_clients as the way to obtain client_id, but no critical information 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%, and the schema already documents client_id as the numeric ID of the OAuth2 client. The description mentions the numeric ID but adds no additional syntax, format, or lookup guidance beyond 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 and resource: revoke an OAuth2 client by numeric ID. It is clearly distinct from siblings such as create_oauth_client, list_oauth_clients, and revoke_agent_key.
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 explains what the tool does but gives no explicit guidance on when to use it versus alternatives, such as list_oauth_clients to find the client_id or create_oauth_client for the opposite action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_session_handoffSave session handoffAInspect
Save a session handoff — a durable note on the board recording where the work stands: what was done, what is next, what is blocked, and key links (PRs, issues, branches). Call this at the END of a working session so the next session (possibly a brand-new chat) can pick up exactly where you left off. Use this when the user says 'remember where we left off', 'save our progress', 'save the session state', or 'don't lose this context'. summary must be YOUR OWN concise authored recap — never a transcript or list of raw messages.
| Name | Required | Description | Default |
|---|---|---|---|
| links | No | Optional references — PR/issue URLs, branch names, doc links (e.g. ['https://github.com/o/r/pull/12', 'feat/auth-refactor']). Max 25 single-line items. | |
| summary | Yes | Your authored recap: done / next / blocked. One concise string (max 20000 chars) — not a transcript. | |
| board_id | Yes | Board ID the handoff belongs to. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (non-read-only, non-destructive, non-idempotent), and the description adds real context: the handoff is a durable board note intended for a future session, and `summary` must be an authored recap rather than a transcript. It stops short of saying what object is created or whether repeated calls create duplicate handoffs, which matters given idempotentHint=false.
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?
Front-loaded with the definition and the timing instruction, then trigger phrases, then the summary constraint. Every sentence has a job, though the `summary` warning partially duplicates the schema text and could be trimmed.
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 3-parameter mutation tool with no output schema, the description covers purpose, timing, trigger phrases, and content expectations well. It leaves the return value (e.g., a handoff ID) and duplicate-call behavior unstated, minor gaps but real ones for a save operation.
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% and the schema descriptions already define `summary` as an authored done/next/blocked recap that is not a transcript, plus `links` examples and limits. The description largely restates the `summary` constraint with added emphasis ('YOUR OWN', 'list of raw messages') rather than adding new parameter semantics, 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?
States a specific verb and resource (save a session handoff) and defines the artifact concretely: a durable note capturing done / next / blocked / key links. It is clearly distinct from every sibling, which are task/board/comment CRUD operations, and even defines the required content of the record.
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 says when to call it ('at the END of a working session so the next session can pick up') and supplies concrete trigger phrases the user might say. No sibling tool offers an alternative for this need, so the absence of a 'use X instead' line is not a gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_tasksSearch tasksARead-onlyIdempotentInspect
Use this to find tasks by text, assignee, status, priority, or attention category across all your accessible boards. All filters are optional — combine them to narrow results. Returns up to 50 tasks ordered by last updated.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Search query text (matches task title and description). | |
| status | No | Filter by completion status: 'open' (not done) or 'done'. | |
| board_id | No | Scope to a specific board ID. | |
| priority | No | Filter by priority: critical, major, normal, or low. | |
| attention | No | Filter by attention category: overdue, due_soon, blocked, stale, unassigned. | |
| assignee_id | No | Filter by assignee user ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description still adds real behavioral detail beyond that: the hard cap of 50 results and ordering by last updated. It does not say what happens when the result set exceeds 50, which is the one remaining behavioral gap.
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, front-loaded with the purpose, then usage, then return behavior — no filler. The opening enumeration is slightly long but each clause maps to a real filter dimension.
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 no output schema, the description usefully covers return shape (count cap, ordering), and all six optional parameters are documented in the schema. The missing pieces are pagination/truncation behavior and its relationship to sibling listing tools, which keeps it from a 5.
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 every parameter (including enum-free priority/attention values) is already documented in the schema. The description only recaps the filter names and notes they are optional; it omits board_id scoping and adds no syntax detail, so the 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?
States a specific verb ('find') and resource ('tasks') plus the exact filter dimensions and scope ('across all your accessible boards'). It is clear on its own, but never distinguishes itself from the similar siblings list_tasks and my_work, leaving the agent to guess which retrieval tool to pick.
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?
'All filters are optional — combine them to narrow results' gives concrete guidance on how to drive the tool and clarifies that an empty call is valid. It stops short of naming when to prefer list_tasks or my_work instead, so no exclusion criteria are offered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_board_settingSet board settingAInspect
Use this command to change a board setting. The value is a string coerced to the setting's type server-side (booleans accept on/off, true/false, 1/0, yes/no). Use get_board_settings_schema to discover available keys and types. Example: set autoAddAssignees to "off" to require explicit /addmember on task assignment.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Setting key (e.g. "autoAddAssignees"). | |
| value | Yes | New value as a string (coerced to the setting's type). Booleans: on/off, true/false, 1/0. | |
| board_id | Yes | Board ID to configure. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-read-only, non-destructive, non-idempotent behavior. The description adds genuine context the annotations don't carry: that values are coerced server-side and which boolean spellings are accepted. It does not say what happens with an unknown key or an invalid value, which for a mutation tool is the remaining behavioral gap, so a 3 rather than 4.
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 plus one example, all front-loaded: purpose, coercion semantics, discovery prerequisite, then a concrete illustration. Nothing is redundant and the example 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?
For a 3-required-parameter mutation with full schema coverage and no output schema, the essentials are covered: how to find keys, what values are accepted, and the type coercion rule. Only edge-case failure behavior (unknown key, invalid value) is unstated.
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 baseline is 3; each property already documents itself, including the boolean coercion note. The description mostly restates the schema's coercion wording, and only the pointer to get_board_settings_schema for valid keys adds new meaning.
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 and resource: 'change a board setting', with the key/value shape implicit. It names the companion discovery tool get_board_settings_schema, which helps separate it from the read-side siblings, though it never explicitly contrasts with get_board_settings or update_board.
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 clear operational context: use it to change a setting, and call get_board_settings_schema first to discover keys and types. The worked example (autoAddAssignees to "off") makes the intended use concrete. No explicit exclusions or when-not guidance, hence not a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transfer_board_ownershipTransfer board ownershipADestructiveInspect
Transfer ownership of a board from the current owner to an existing board member (admin or user role). The current owner is demoted to the specified role (admin by default). Only the current board owner can initiate a transfer. The target must already be a board member — invite them first if needed. This is an irreversible high-impact operation.
| Name | Required | Description | Default |
|---|---|---|---|
| board_id | Yes | Board ID to transfer ownership of. | |
| to_user_id | Yes | User ID of the new owner. Must already be a board member (admin or user role). | |
| demote_current_owner_to | No | Role to assign to the current owner after the transfer. Defaults to 'admin'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true and idempotentHint=false, but the description adds real value beyond them: the side effect that the current owner is demoted (default 'admin'), the authorization requirement (caller must be the owner), and an explicit irreversibility warning. It stops short of describing failure modes (e.g., invalid target ID, insufficient permissions) or whether the new owner can transfer back.
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 tight sentences, zero filler, with the core action stated first and constraints and the irreversibility warning following in priority order. Every sentence contributes a distinct fact an agent needs to act correctly.
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 3-parameter mutation with full schema coverage and destructive annotations, nothing critical is missing: actor requirement, target precondition, side effect, default, and irreversibility are all stated. No output schema exists, and return values would be minimal for a transfer confirmation, so the description carries enough.
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 each parameter is already documented in the schema, including the 'defaults to admin' behavior and the board-member constraint on to_user_id. The description restates these constraints rather than adding syntax, format, or edge-case meaning, so the 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?
States a specific verb and resource ('Transfer ownership of a board') plus the exact endpoints of the transfer (current owner → existing admin/user member), which distinguishes it from siblings like update_member_role or invite_board_member. The scope of who may be a target is stated inline, so an agent can identify the tool without opening the schema.
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 clear preconditions: 'Only the current board owner can initiate a transfer' and 'The target must already be a board member — invite them first if needed', which routes the agent to invite_board_member when the precondition fails. No explicit when-not-to-use guidance (e.g., use update_board to change other settings, or update_member_role for non-ownership role changes) is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transition_task_statusTransition task statusBInspect
Use this for explicit status moves while keeping other fields unchanged.
| Name | Required | Description | Default |
|---|---|---|---|
| status | Yes | Target status name. | |
| board_id | Yes | Board ID where the task belongs. | |
| task_number | Yes | Task number in board scope. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read-only, non-destructive, non-idempotent mutation. The description adds useful scope: only the status field is changed, other fields remain unchanged. It does not explain valid transitions, whether the status must already exist, or any 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 a single front-loaded sentence with no wasted clauses. It is concise and structurally clear, though it could be more explicit about the distinction from related tools.
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 simple three-parameter mutation with full schema coverage and safety annotations, the description covers the core scope of changing only status. It omits potentially important context such as valid status names, allowed transitions, or the need to reference existing board statuses.
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 task_number, board_id, and status are already documented in the input schema. The description does not add syntax, format, or constraint details beyond what the schema provides, so the baseline 3 is appropriate.
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 clear action: explicit status moves that leave other fields unchanged. It is specific about the resource being changed and scopes the mutation, but it does not explicitly distinguish this from sibling tools like update_task or move_task.
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 phrase 'Use this for' gives implied usage context: status-only changes rather than general task updates. However, it names no alternatives and gives no explicit when-not-to-use guidance or prerequisite conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_boardUpdate boardAInspect
Use this to edit board metadata (title, code) and/or the board-level agent prompt. The prompt is the markdown instructions an agent reads when operating on this board (stored as the root file "AGENTS.md"). Pass only the fields you want to change; omitted fields are left untouched. Pass an empty string as prompt to clear the prompt.
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | New board code (3 letters or digits A-Z/0-9, unique within the namespace). Omit to leave unchanged. | |
| title | No | New board title. Omit to leave unchanged. | |
| prompt | No | Markdown agent prompt for this board (stored as the root "AGENTS.md" file). Omit to leave unchanged; pass an empty string to clear. May include YAML frontmatter. | |
| board_id | Yes | Board ID to update. | |
| visibility | No | Set board visibility. 'private' (default) = members-only; 'public' = anyone with the link can view the board read-only (no account required). Owner/admin only. Omit to leave unchanged. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful behavioral context beyond the annotations: omitted fields remain untouched, and an empty prompt string clears the prompt. It does not cover permissions or response behavior, but the annotations already establish the non-read-only, non-destructive profile.
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, efficient, and every sentence serves a purpose. It explains the main operation, the partial-update convention, and prompt clearing without unnecessary detail.
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 schema and safety annotations, the description is largely complete for an update tool. It omits mentioning the visibility parameter and does not distinguish the tool from all related siblings, but those details are covered by the schema or are minor.
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, including visibility and board_id. The description reinforces prompt and omit/clear semantics but does not add meaning beyond what the schema already provides.
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: editing board metadata and/or the board-level agent prompt. It is clear what the tool does, but it does not explicitly distinguish itself from nearby siblings such as set_board_setting or update_board_file.
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 clearly says to use this tool to edit board metadata and the prompt, and explains that only supplied fields are changed. However, it gives no explicit exclusions or alternatives for related operations like set_board_setting.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_board_fileUpdate board fileAInspect
Upsert a named markdown file on a board. In v1 the conventional name is "AGENTS.md" (the root prompt). Omit content (or pass empty) to clear a file's body. Future versions will support multiple named files; this command is the low-level writer beneath update_board's prompt option.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | File name (path-like identifier). Use "AGENTS.md" for the root prompt. | |
| format | No | File format. Defaults to "markdown". | |
| content | No | Markdown content. Omit or pass empty to clear the file body. | |
| board_id | Yes | Board ID to write the file on. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare the safety/scope profile (not read-only, closed-world, non-idempotent, non-destructive); the description adds real behavior the annotations miss — that omitting content wipes the file body, that only one conventional file name is meaningful in v1, and that multi-file support is future work. It does not cover permissions or what happens to a file that doesn't yet exist (upsert creates it, but that's inferred from the verb rather than stated).
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, front-loaded with the verb and resource, followed by the naming convention and clearing semantics in order of usefulness. The forward-looking 'future versions will support multiple named files' clause is mild roadmap noise but arguably useful context for the v1 limitation.
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 mutation tool with full schema coverage, annotations, and no output schema, the description covers the essentials: what gets written, where, the naming convention, and how to clear a file. Missing only error/permission behavior and confirmation of create-vs-update, which are secondary here.
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 every parameter (name, format, content, board_id) is documented in the schema itself, including the AGENTS.md convention and the clear-by-empty rule. The description restates rather than extends that information, so baseline 3 is appropriate.
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 and resource ("Upsert a named markdown file on a board") and pins the v1 convention to "AGENTS.md" (the root prompt), which makes the tool unambiguous. It also positions itself as the low-level writer beneath update_board's prompt option, distinguishing it from that sibling, though it never names the read-side siblings (get_board_prompt, list_board_files).
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 concrete usage context: use "AGENTS.md" for the root prompt in v1, and omit or pass empty content to clear the body. The reference to update_board's prompt option implies the higher-level alternative, but there is no explicit 'use X instead when...' directive or exclusion list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_checklist_itemUpdate checklist itemAInspect
Use this to update a checklist item's title or done status. Provide item_id and fields to update.
| Name | Required | Description | Default |
|---|---|---|---|
| done | No | Set done status (true/false). | |
| title | No | New title for the item. | |
| item_id | Yes | Checklist item ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=false, so the safety profile is covered by structured fields. The description usefully signals a partial update ('title or done status', 'fields to update'), which is the main behavioral fact an agent needs. It does not say what happens when item_id is invalid or omitted fields, so it adds some but not rich context.
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 short sentences with the action and required identifier front-loaded; nothing is padded. It is efficient, though slightly thin for a mutation tool.
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 simple three-parameter tool with full schema coverage, complete annotations, and no output schema, the description gives enough to call it correctly. The remaining gap is error/failure behavior, which is minor here.
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 every parameter (item_id, title, done) is already documented in the schema, making 3 the baseline. The description only restates that item_id is required and that fields are optional, adding no format or constraint detail beyond 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?
States a specific verb (update) and resource (checklist item) plus the exact fields it can change (title, done status). This clearly separates it from add_checklist_item, delete_checklist_item, and list_checklist, though none are named 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?
'Provide item_id and fields to update' implies the tool is for modifying an existing item, so usage is inferable. However, there is no explicit when-to-use guidance, no note that add/delete/list siblings cover creation, removal, and enumeration, and no stated prerequisites such as the item having to exist first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_member_roleUpdate member roleAInspect
Use this command to change an existing board member's role. Owner/admin only. Cannot target the board owner or promote anyone to owner.
| Name | Required | Description | Default |
|---|---|---|---|
| role | Yes | New role to assign (admin or user). Cannot assign owner. | |
| user_id | Yes | User ID of the member whose role to change. | |
| board_id | Yes | Board ID where the member belongs. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish this is a non-read-only, non-destructive, non-idempotent mutation, so the bar is lower. The description adds genuinely useful behavior beyond that: the required caller privilege level and two hard validation constraints (owner target, owner promotion).
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 compact sentences, front-loaded with the operation and immediately followed by the two constraints that most affect invocation. 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?
For a three-parameter mutation with full schema coverage and annotations, the description covers what is needed to invoke it correctly. It omits only minor context such as what happens to the target user's prior role or any side effects on permissions.
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%, including an enum-limited role field that already documents "Cannot assign owner." The description restates that constraint but adds no new format or syntax detail, so baseline 3 is appropriate.
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 ("change an existing board member's role"), which clearly separates it from add_board_member/remove_board_member and from update_namespace_member_role by scope. It stops short of explicitly naming the sibling alternative, so it lands at 4 rather than 5.
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 concrete usage conditions: "Owner/admin only" and "Cannot target the board owner or promote anyone to owner." That is clear guidance on when the call will succeed, though it does not explicitly route the agent to an alternative tool for the excluded cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_namespace_member_roleUpdate namespace member roleAInspect
Change the role of an explicitly-granted workspace member. The owner role is structural and cannot be assigned or changed; org-inherited members are managed on the organization surface. Requires the workspace owner.
| Name | Required | Description | Default |
|---|---|---|---|
| role | Yes | New role: 'admin' or 'member'. | |
| user_id | No | User ID of the member. Either username or user_id is required. | |
| username | No | Username of the member (without @). Either username or user_id is required. | |
| namespace_slug | Yes | Namespace slug of the workspace. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare this is a non-read-only, non-destructive, non-idempotent mutation, and the description adds genuinely useful context beyond that: the caller must be the workspace owner and certain member classes are structurally out of scope. It does not explain what happens on partial failure or whether role changes take effect immediately, so it is not fully complete.
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, front-loaded with the operation, followed by the exclusion rules and the authorization requirement. Every sentence carries information an agent needs; nothing is redundant.
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 simple four-parameter mutation with no output schema and full schema coverage, the description supplies the key permission and scope constraints an agent needs to call it correctly. Missing only minor behavioral detail such as error or idempotency behavior.
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 each parameter is already documented in the schema, giving a baseline of 3. The description adds only one semantic detail beyond the schema — that 'owner' is not a valid target role — which is largely implied by the admin/member enum.
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 and resource ('Change the role of an explicitly-granted workspace member'), which clearly scopes the operation to workspace-level explicit members rather than board members. It does not name the closest sibling (update_member_role), so an agent must infer the distinction from scope wording alone.
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 concrete when-not conditions: owner role cannot be assigned or changed, and org-inherited members are handled on the organization surface. It also states the authorization prerequisite ('Requires the workspace owner'). It stops short of explicitly routing to the sibling tools that handle those excluded cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_statusUpdate statusBInspect
Update status by statusId or by boardId+code.
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | Existing status code for board+code lookup. | |
| name | No | New display name. | |
| color | No | New hex color. | |
| index | No | New sort index. | |
| board_id | No | Board ID for board+code lookup. | |
| new_code | No | New machine code value. | |
| status_id | No | Target status ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare it is a non-readonly, non-idempotent, non-destructive mutation, so the safety profile is covered. The description adds the dual addressing scheme but omits mutation semantics that matter here: whether unspecified fields are preserved (partial vs. replace), and what happens if both status_id and board_id+code are provided.
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 single front-loaded sentence with no filler. It is efficient, though for a 7-parameter mutation tool it borders on underspecified rather than optimally sized.
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?
Seven parameters, zero required, no output schema, and a mutation with no annotation detail on merge behavior. The description leaves the agent without the addressing precondition or the partial-update contract needed to call this correctly.
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 per-parameter meaning is already documented; the baseline would be 3. The description genuinely adds value by explaining the relationship between board_id and code as a paired composite key and framing status_id as the alternative lookup path, which the flat schema does not convey.
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 (update) and resource (status), plus the two addressing modes (status_id or board_id+code). This distinguishes it implicitly from create_status, delete_status, and reorder_statuses, though no sibling is named 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?
No guidance on when to use this vs. create_status/reorder_statuses, or that reordering via 'index' might be better served by reorder_statuses. Critically, required parameters = 0, so the agent gets no signal that at least one addressing mode must be supplied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_taskUpdate taskBInspect
Use this to edit task title/description/deadline/tags/assignee/status.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Replace task tags list. | |
| title | No | New title. | |
| status | No | Set status by name. | |
| assignee | No | Assign by username (without @). | |
| board_id | Yes | Board ID where the task belongs. | |
| deadline | No | New deadline string. | |
| priority | No | Set priority: critical, major, normal, or low. | |
| description | No | New description. | |
| task_number | Yes | Task number in board scope. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a non-read-only, non-destructive, non-idempotent closed-world mutation. The description adds no behavioral context beyond the field list: it does not explain partial-update semantics, whether omitted fields stay unchanged, permission requirements, or what happens when status/assignee changes.
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 efficient sentence with the action and supported fields front-loaded. There is no redundant or filler text.
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 a mutation with nine parameters, two required identifiers, and no output schema. The schema and annotations carry most of the context, but the description should at least mention identifier requirements and partial-update behavior; it also leaves out the priority field.
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 parameter schema already provides meaning for all nine parameters. The description adds little beyond naming most editable fields, and it omits priority while not mentioning the required task_number and board_id identifiers.
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 gives a specific verb (edit) and resource (task), and it enumerates fields that can be changed. The purpose is clear, but it does not distinguish this tool from close siblings such as transition_task_status or move_task.
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 phrase 'Use this to edit...' states purpose rather than usage guidance. It gives no conditions for choosing update_task over transition_task_status, move_task, or other task tools, and no prerequisites or exclusions are mentioned.
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.
2 tool updates
- Added
attach_task_file - Added
list_task_files
1 tool update
- Changed
respond_to_invitation3 fields changed- removed
Input schema / properties / invitation_idRemoved value: -{ - "description": "Invitation ID to respond to.", - "exclusiveMinimum": 0, - "maximum": 9007199254740991, - "type": "integer" -} - added
Input schema / properties / tokenAdded value: +{ + "description": "Invitation token (the unguessable bearer string from list_pending_invitations).", + "maxLength": 200, + "minLength": 1, + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "invitation_id", - "accept" -]New value: +[ + "token", + "accept" +]
1 tool update
- Added
get_profile
4 tool updates
- Added
add_namespace_member - Added
list_namespace_members - Added
remove_namespace_member - Added
update_namespace_member_role
61 tool updates
- First observed
add_board_member - First observed
add_checklist_item - First observed
add_comment - First observed
archive_board - First observed
bind_board_to_group - First observed
cancel_board_invitation - First observed
clone_board - First observed
create_agent - First observed
create_board - First observed
create_oauth_client - First observed
create_organization - First observed
create_status - First observed
create_task - First observed
delete_agent - First observed
delete_checklist_item - First observed
delete_comment - First observed
delete_status - First observed
delete_task - First observed
get_board_by_namespace - First observed
get_board_prompt - First observed
get_board_settings - First observed
get_board_settings_schema - First observed
get_digest - First observed
get_project_context - First observed
get_task - First observed
invite_board_member - First observed
issue_agent_key - First observed
list_agents - First observed
list_board_files - First observed
list_board_members - First observed
list_board_tags - First observed
list_boards - First observed
list_checklist - First observed
list_comments - First observed
list_namespaces - First observed
list_oauth_clients - First observed
list_pending_invitations - First observed
list_statuses - First observed
list_task_activity - First observed
list_tasks - First observed
move_board - First observed
move_task - First observed
my_work - First observed
remove_board_member - First observed
reorder_statuses - First observed
respond_to_invitation - First observed
restore_board - First observed
restore_task - First observed
revoke_agent_key - First observed
revoke_oauth_client - First observed
save_session_handoff - First observed
search_tasks - First observed
set_board_setting - First observed
transfer_board_ownership - First observed
transition_task_status - First observed
update_board - First observed
update_board_file - First observed
update_checklist_item - First observed
update_member_role - First observed
update_status - First observed
update_task
Related MCP Connectors
Task boards for teams and their AI agents: cards, checklists, sprints, plans and proposals.
AI-native Kanban board — connect Claude to claim, work and move your tasks over MCP.
Kanban board for teams and coding agents: manage tasks, subtasks, sprints and wiki pages via MCP.
Remote MCP for Kanban AI boards—manage projects, tasks, and comments from AI tools.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceSelf-hosted kanban board that dispatches AI agent fleets against tickets. The embedded Streamable HTTP /mcp endpoint exposes 7 tools to list projects, read boards and tickets, and create, move and comment tickets from any MCP client.29AGPL 3.0
- AlicenseNot gradedqualityAmaintenanceAgent-first project management MCP server that enables AI agents to manage tasks, spaces, lists, boards, subtasks, comments, and automations via natural language, with full audit trail and real-time sync.9,063 npmMIT
- AlicenseNot gradedqualityDmaintenanceAn AI-native kanban board MCP server where agents pull tasks via the Model Context Protocol. It provides tools for task discovery, claiming, progress updates, and review workflows.4MIT
- AlicenseNot gradedqualityDmaintenanceA Kanban board enabling AI agents and humans to collaborate on tasks through MCP tools for project and task management.88 npm1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.