@batontasks/mcp
OfficialAllows importing tasks, history, comments, and metadata from Asana into Baton via the bulk import API.
Allows importing tasks, history, comments, and metadata from Jira into Baton via the bulk import API.
Allows importing tasks, history, comments, and metadata from Trello into Baton via the bulk import API.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@batontasks/mcpCheck my inbox and show tasks that are ready to work on."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Baton β Task Tracker for AI Agents and Humans π
Baton is a specialized task tracker built specifically for mixed teams where humans and AI agents pass work back and forth. It provides robust Approval Gates, an Agent Inbox, and a complete Audit Log to solve the "black box" problem of autonomous AI agents.
Website | API Docs | Discord/Support
π‘ Why Baton?
Traditional project management tools (Jira, Asana, Trello) are designed purely for humans. They lack the API ergonomics, strict execution guardrails, and state-machine polling required by autonomous LLM agents.
Baton implements a 4-leg relay loop:
File (Human): Anyone files a task via UI, API, or CLI.
Approve (Human): Strict Approval Gate. Agents cannot self-start; a human owner must unlock the task.
Deliver (Agent): The agent polls the inbox, executes the work, asks questions in the thread if blocked, and hands it back.
Accept (Human): The author reviews the artifacts and closes the loop (or requests a revision).
Related MCP server: TaskWarrior MCP Server
π οΈ Features for AI Engineering
Deterministic State Machine: Tracks exactly whose move it is (Human vs. Agent) so tasks never get lost in a backlog.
Server-Enforced Guardrails: AI tokens are cryptographically barred from approving, rejecting, or accepting work.
Cursor-Based Agent Inbox: Built for reliable polling. A crashed agent never loses an event or webhook notification.
Rich Context Sharing: Support for up to 5 file/screenshot attachments per comment for visual grounding.
βοΈ Quick Start & Integration
Baton supports three integration layers depending on your agentic stack:
1. Model Context Protocol (MCP Server)
Perfect for Claude Code, Claude Desktop, Cursor, or any MCP-compliant client. Add this to your mcpServers config:
{
"mcpServers": {
"baton": {
"command": "npx",
"args": ["-y", "@batontasks/mcp"],
"env": {
"BATON_TOKEN": "bt_your_secret_token_here"
}
}
}
}2. Claude Code Skill
A drop-in skill with embedded execution rules (check inbox, take work, comment, hand back):
# Check incoming approved tasks
\$ baton inbox --ack
# Claim a task
\$ baton take ERP-231
# Submit result for human review
\$ baton status ERP-231 review -m "Fixed VAT rounding bug, added 14 tests."3. Production REST API
Fully OpenAPI-compliant, token-scoped, and completely idempotent.
curl https://batontasks.com \
-H "Authorization: Bearer bt_..."π¦ Board Migration
Moving from your old stack? Baton provides a bulk import API that preserves full history, comments, original authors, and timestamps from Jira, Asana, and Trello.
π License
Distributed under the MIT License. See LICENSE for more information.
Maintained by the Baton Team. Proudly built and tracked by a mixed human-agent workflow.
Available Tools
12 toolsackC
Confirm inbox processed up to cursor
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does not specify whether this operation mutates state, what the effect of 'confirming' is, whether it is idempotent, or what permissions are needed. The single sentence leaves these critical aspects ambiguous.
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, short sentence and is front-loaded, but it is under-specified. It is concise in wording but not in conveying necessary context, so it does not fully earn 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 tool with only one parameter, no output schema, and no annotations, the description is too minimal. It omits explanation of return values, side effects, and the overall workflow context, leaving the agent with insufficient information to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only defines 'cursor' as an integer, with 0% description coverage. The description adds some meaning by stating 'up to cursor', indicating a boundary in the inbox, but it does not clarify the cursor's semantics (e.g., ID, timestamp, inclusive/exclusive) or how it is used.
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 verb ('Confirm') and a resource ('inbox processed up to cursor'), which gives some indication of purpose. However, it is vague about what 'processed' means and how 'ack' relates to the sibling 'inbox' tool, making it less specific than ideal for differentiating from alternatives.
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 is provided about when to use this tool versus alternatives like 'inbox' or 'transition'. There are no prerequisites, exclusions, or explicit context that would help an agent decide to invoke this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
approveA
Bulk approve tasks β humans only, approval belongs to the assignee's side
| Name | Required | Description | Default |
|---|---|---|---|
| refs | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden of behavioral disclosure. It mentions the assignee-only and humans-only constraints, but it does not explain the side effects of approval (e.g., status change), whether the operation is reversible, or what happens if some refs are invalid. This lacks the depth expected for a mutation tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, succinct sentence that front-loads the core action ('Bulk approve tasks') and appends essential constraints. There is no redundant wording or 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?
The tool has one parameter with no schema descriptions and no annotations. While the description covers usage constraints, it inadequately explains the 'refs' parameter, which is crucial for correct invocation. The description is not complete enough to compensate for the missing parameter documentation, even for a simple 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?
The schema description coverage is 0% for the only parameter 'refs'. The description does not explicitly state what 'refs' is, though 'Bulk approve tasks' hints that it is an array of task identifiers. This is minimal compensation for the missing schema documentation, leaving the agent to infer the parameter's 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?
The description states the tool's action explicitly: 'Bulk approve tasks', specifying the verb (approve), resource (tasks), and scope (bulk). It also distinguishes the tool from siblings by adding constraints: 'humans only, approval belongs to the assignee's side', which clarifies that this is assignee-specific and not a generic status transition.
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 provides clear context on when to use the tool: it is for bulk approvals, but only for humans and only by the assignee. It implies that the tool should not be used by non-assignees or for automated approvals, though it does not explicitly name alternative tools for such cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
commentC
Comment on a task (passes the ball to the other side)
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes | ||
| body | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only offers the vague metaphor 'passes the ball to the other side,' which hints at a workflow effect but lacks specifics about side effects, permissions, or response. This is insufficient for a mutating action.
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 brief but not effectively concise. The metaphor in parentheses detracts from clarity and does not convey useful information. It is under-specified rather than efficiently informative.
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 two required parameters, no output schema, and no annotations, the description is incomplete. It fails to specify parameter meanings, expected behaviors, or the result of the operation, leaving the agent without essential information for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain the parameters 'ref' and 'body.' It does not define what these refer to or their format. The description adds no semantic meaning beyond the schema's property names.
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 'Comment on a task' clearly identifies the action (adding a comment) and the resource (task). However, the parenthetical 'passes the ball to the other side' introduces ambiguity about whether the tool also changes assignment or state, so it doesn't fully distinguish from siblings like transition or approve.
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 is provided on when to use this tool versus alternatives. There is no mention of when commenting is appropriate, nor any exclusions or references to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_taskA
Create a task (status=new goes to the approval queue; approved requires the right over the assignee)
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| status | No | ||
| project | Yes | ||
| priority | No | ||
| description | No | ||
| assignee_actor_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses non-obvious workflow behavior: status=new enters the approval queue, and status=approved requires specific rights over the assignee. This adds transparency beyond a generic 'create a task' statement.
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 a parenthetical clarification. Every word earns its place; there is no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 6 parameters, no output schema, and no annotations. The description explains status behavior but omits the return value, default status, and details for most parameters. It is enough to get started but leaves important questions unanswered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description must compensate. It provides meaningful semantics for the status parameter (explaining new and approved), but does not explain title, project, priority, description, or assignee_actor_id, leaving significant gaps.
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 'Create a task' with a specific verb and resource, and the parenthetical about status distinguishes it from siblings like list_tasks, get_task, transition, and approve. It unambiguously signals a creation operation.
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 useful context about status behavior (new vs approved) but does not explicitly say when to use this tool versus alternatives or when not to use it. It is implied, but no alternatives or exclusions are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_taskA
Task with full comment thread and dependencies. Read before working on it.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes | "APP-123" or numeric id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the task includes a full comment thread and dependencies, which is valuable behavioral context about the response. However, it only implies read-only behavior through the word 'Read' and does not explicitly state that the operation has no side effects or mention any permissions or limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. The first sentence states the resource content, and the second gives usage guidance. Every word serves a purpose, making it appropriately sized and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get tool with one parameter and no output schema, the description conveys the key content (comment thread and dependencies) and the intended workflow (read before working). It does not explicitly confirm read-only behavior or error conditions, but it is sufficiently complete for basic use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers the only parameter 'ref' with a clear description ("APP-123" or numeric id), and the tool description adds no additional parameter semantics. Baseline 3 applies due to 100% schema description 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 identifies the resource as a task with full comment thread and dependencies, implying a retrieval operation. It does not explicitly state a verb like 'Get' but the phrase 'Read before working on it' reinforces the read/fetch intent. It distinguishes from list_tasks by emphasizing full detail, though it doesn't name the sibling.
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 'Read before working on it' provides a clear usage context: use this tool before modifying or working on a task. This is a specific when-to-use instruction, but it does not mention alternatives or exclusions, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inboxA
What happened since my cursor (subscriptions; excludes my own actions). Call ack afterwards.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It reveals cursor-based retrieval, subscription scope, exclusion of own actions, and the necessity to acknowledge afterwardsβkey behaviors that are not visible elsewhere. Missing details include whether ack is required for all items or just some, and what happens if no cursor exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with zero filler. The first sentence front-loads the core purpose, and the second gives a critical follow-up action. Every word adds value.
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 gives essential context for using the tool (cursor, subscriptions, ack), but omits details about return format, cursor handling, and error cases. With no output schema, the agent may be left guessing about the response structure, making this adequate but incomplete.
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 0% and the description does not mention the optional 'limit' parameter. The parameter is not defined beyond its schema min/max, and while 'limit' is self-explanatory, the description fails to compensate for the lack of schema documentation, leaving its role in cursor pagination unclear.
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 tool returns 'what happened since my cursor' for subscriptions, excluding the caller's own actions. It distinguishes itself from sibling tools like 'ack' (action after reading) and task management tools, though it lacks a direct verb like 'list' or 'get'.
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 instructs to 'Call ack afterwards', providing a clear usage directive. It also notes 'excludes my own actions' to set expectations. However, it does not explicitly contrast with alternatives or state when to prefer this over other tools, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_actorsB
Workspace actors (humans and agents)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only defines actors and does not state whether the operation is read-only, what the return format is, or any permission requirements. This is a significant gap even for a simple list 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?
The description is extremely concise and free of fluff, capturing the essential resource. It is a fragment rather than a full sentence, but for a simple zero-parameter tool, this brevity is acceptable. It earns its place without being verbose.
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 (0 params, no annotations, no output schema), the description defines what actors are but does not specify the return shape or any additional behavior. For a list tool, this is borderline adequate, but the lack of output schema means the agent must infer what fields are returned. A slightly more detailed description would improve completeness.
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 has zero parameters, so the schema coverage is trivially 100%. Per the rubric, a baseline of 4 is appropriate. The description adds context about the resource domain (workspace actors) which helps set expectations for the output, even though it doesn't describe parameters.
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 'Workspace actors (humans and agents)' clearly identifies the resource being acted on, and the tool name 'list_actors' supplies the verb. It differentiates from siblings like list_tasks and list_projects, though the description itself lacks an explicit 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 description provides no guidance on when to use this tool versus alternatives. It does not mention when to choose list_actors over whoami or other list tools, nor any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_projectsB
Projects visible to this token
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, placing the full burden on the description. It only hints at read-only visibility ('visible to this token') but does not explicitly state the operation is read-only, nor does it disclose return format, pagination, sorting, or any side effects. This is insufficient for safe autonomous use.
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 extremely concise, with no wasted words. It is a single phrase that gets straight to the point. While it borders on under-specification, the structure itself is efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and a very terse description, an agent cannot fully anticipate the return value or behavior. The description does not specify what is returned (e.g., project names, IDs, full objects) nor any handling details, making it inadequate for a complete understanding.
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 has zero parameters, so the schema is fully documented by default. The description adds no parameter details, which is acceptable because there are none to explain. Baseline of 4 for 0-parameter tools 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 identifies the resource (projects) and a scoping qualifier (visible to this token), making the tool's purpose clear. While it lacks an explicit verb such as 'list' or 'retrieve', the tool name 'list_projects' compensates. It distinguishes from sibling tools by resource type (projects vs tasks vs actors).
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 guidance on when to use this tool versus alternatives like list_tasks or list_actors. The description provides no context about use cases, prerequisites, or situations where a sibling tool would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tasksA
List tasks. Defaults: OPEN statuses only (no done) and brief cards without descriptions β use get_task for the full thread. If the workspace has several projects, ask the user which project (or pass nothing for all). Set include_done=true only when the user explicitly asks for closed tasks.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | ||
| ball | No | ||
| full | No | include descriptions (default false β brief cards) | |
| sort | No | ||
| limit | No | ||
| ready | No | ||
| author | No | actor id or "me" | |
| status | No | comma-separated: new,approved,in_progress,waiting,review,done | |
| project | No | ||
| assignee | No | actor id or "me" | |
| include_done | No | include done/rejected/cancelled (default false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the burden of behavioral disclosure. It reveals default behavior (OPEN statuses only, brief cards without descriptions), the alternative behavior for full details via get_task, and the conditional use of include_done. It could additionally disclose pagination or sorting defaults, but the core behaviors are transparently 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?
The description is concise: three sentences, front-loaded with the primary function, followed by behavioral defaults, an alternative, and conditional guidance. Every sentence adds value 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 list tool with 11 parameters, no annotations, and no output schema, the description provides a solid overview of defaults, filtering scope, and when to use the alternative. It does not explain every parameter, but it covers the most important behavioral nuances. Given the complexity, it is reasonably complete but could benefit from mentioning output format or 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 only 45%, so the description must compensate. It adds meaning for key parameters: include_done (explains default and when to override), full (via 'brief cards without descriptions'), and project (guidance on project filtering). However, several parameters like sort, limit, and ready remain unexplained, though enums and schema descriptions cover some of them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as "List tasks" and distinguishes it from get_task by explicitly noting that get_task is for the full thread. This is a specific verb+resource combination that differentiates it from siblings like inbox or ack.
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 provides explicit when-to-use guidance: it mentions using get_task for full details, advises asking the user about project selection when multiple projects exist, and specifies that include_done=true should only be set when the user explicitly asks for closed tasks. These are clear usage directives that help the agent decide when and how to invoke the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rank_backlogA
Reorder project backlog: passed refs get the given order, others keep their rank
| Name | Required | Description | Default |
|---|---|---|---|
| project | Yes | ||
| ordered_refs | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses a key behavioral trait: it performs a partial reorder, with only the provided refs receiving the new order while others remain unchanged. Since no annotations are provided, the description carries the full burden. However, it does not mention potential side effects, error handling for invalid refs, or whether the operation is idempotent, leaving some behavioral gaps.
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 sentence that front-loads the action ('Reorder project backlog') and immediately clarifies the behavior. Every word contributes meaning, with no filler or repetition. It is concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (2 parameters, no nested objects, no output schema), and the description covers the essential behavior: the reorder scope and the effect on non-mentioned items. It is almost complete, but the ambiguity of 'refs' and the lack of detail on what happens to ranks (e.g., whether they are renumbered contiguously) slightly detract from full completeness. Nonetheless, it provides sufficient context for a tool of this complexity.
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 0%, so the description must compensate. It clarifies that 'ordered_refs' refers to 'passed refs' and that 'project' refers to the project whose backlog is being reordered. However, it does not explain what a 'ref' is (e.g., task ID, numeric rank) or the expected format, which is critical for correct invocation. The description adds some value but not enough for full parameter understanding.
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 tool's function: 'Reorder project backlog' with a specific verb and resource. It further clarifies the ordering semantics ('passed refs get the given order, others keep their rank'), which distinguishes it from sibling tools that focus on tasks, projects, or actors. There is no other reordering tool in the sibling list, so its 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 description implies that the tool is used when you need to reorder a project backlog, but it does not explicitly state when to use it versus alternative tools or provide prerequisites (e.g., having a valid project ID). No exclusions or alternative suggestions are given. This is adequate but not explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transitionC
Change task status (take=in_progress, waiting, review, done...). 409 lists allowed targets.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes | ||
| status | Yes | ||
| comment | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The note about 409 listing allowed targets reveals some validation behavior, which is useful. However, with no annotations, the description fails to disclose important aspects such as permission requirements, success response, or the actual transition rules. The agent cannot predict what happens after invoking the 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?
The description is very brief with no filler words, and the main action is front-loaded. However, the second clause about 409 is cryptic and could be clearer, so it's not perfect.
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 annotations and no output schema, the description is incomplete. It omits allowed status transitions, the meaning of ref/comment, and success behavior. The 409 hint helps but leaves most contextual gaps open.
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 description adds partial meaning to the 'status' parameter through examples and the 'take=in_progress' mapping, but it does not explain 'ref' or 'comment'. Since schema description coverage is 0%, this is insufficient to understand the parameters.
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 tool changes task status, with a specific verb and resource. It lists example statuses, making the purpose obvious. However, it doesn't explicitly distinguish from the sibling 'approve' tool, which is a more specialized status transition.
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 hint 'take=in_progress' offers a minor usage tip, but there is no when-to-use guidance, no exclusions, and no mention of alternatives like 'approve'. The agent is left without clear direction on selecting this tool over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whoamiB
Current actor, workspace and token scopes
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose whether the tool is read-only, what authentication is required, or how token scopes are represented. It only lists the output topics without discussing side effects or security implications, which is a significant gap given the lack of structured metadata.
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 extremely concise (5 words), front-loaded with the essential content, and contains no filler or redundant information. Every word contributes meaning.
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 tool with no output schema, the description is largely sufficient. It clearly enumerates the three dimensions of the response (actor, workspace, token scopes). However, it could be slightly more complete by explicitly stating that it returns a read-only snapshot, which would clarify its side-effect-free nature.
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 input schema has zero parameters, so the baseline is 4. The description does not need to explain parameter behavior because there are no parameters to explain. It correctly avoids adding irrelevant parameter details.
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 'Current actor, workspace and token scopes' clearly identifies the tool's function as returning identity and context information. It is specific to the whoami use case and distinguishes itself from sibling tools like list_tasks or create_task. However, it lacks an explicit verb (e.g., 'get' or 'show'), which makes the purpose slightly less direct.
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 provides no guidance on when to use this tool, how it relates to alternatives, or any prerequisites. With 11 sibling tools, no differentiation or exclusions are mentioned, leaving the agent without clear selection criteria.
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.
12 tool updates
v0.1.3- First observed
ack - First observed
approve - First observed
comment - First observed
create_task - First observed
get_task - First observed
inbox - First observed
list_actors - First observed
list_projects - First observed
list_tasks - First observed
rank_backlog - First observed
transition - First observed
whoami
TDQS
Scored across 12 tools
Each tool has a clearly distinct purpose: whoami for identity, inbox/ack for notifications, list/get/create/transition/comment/approve for task operations, rank_backlog for ordering, and list_projects/list_actors for metadata. No two tools overlap in function; ack complements inbox without ambiguity.
All names use lowercase with underscores, and the majority follow a verb_noun pattern (list_tasks, get_task, create_task, list_projects, list_actors). A few single-word verbs (transition, comment, approve) and nouns (inbox, ack, whoami) deviate slightly, but the style remains predictable and readable.
With 12 tools, the server is well-scoped for a task management domain. Each tool addresses a distinct workflow step, from listing and viewing tasks to transitioning, commenting, approving, and organizing the backlog, without unnecessary redundancy or missing essentials for core usage.
The toolset covers the full lifecycle of task work: creation, retrieval, listing, status changes, comments, approval, and backlog ranking. Minor gaps include no direct update to task content or deletion, but these are typically outside the core collaborative workflow and workarounds exist (e.g., comment/transition).
Maintenance
Related MCP Connectors
Nifty's MCP server β exposes tasks, projects, messages, and files as tools for AI agents.
- mcpOAuthnet.todoist
Official Todoist MCP server for AI assistants to manage tasks, projects, and workflows.
Manage Superlist tasks and lists in plain language from any MCP-compatible AI agent.
MCP server exposing the Backtest360 engine API as tools for AI agents.
Related MCP Servers
- AlicenseAqualityFmaintenanceModel Context Protocol server for Task Management. This allows Claude Desktop (or any MCP client) to manage and execute tasks in a queue-based system.10173 npm215MIT
- AlicenseNot gradedqualityAmaintenanceMCP server that wraps TaskWarrior command-line tool. Provides 22 tools for task management, GTD workflow, and habit tracking.9 npm9MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that wraps the Taskwarrior CLI to allow AI assistants to create, query, modify, and manage tasks directly from agentic coding tools.7 npmMIT
- FlicenseNot gradedqualityDmaintenanceA task manager MCP server that demonstrates all three MCP primitives (tools, resources, prompts). Enables users to manage tasks, read task summaries and details, and run structured planning/review prompts through natural language.-