Skip to main content
Glama
hakenshi

Agentic Backlog MCP Server

by hakenshi

Agentic Backlog MCP Server

Local-first MCP server for AI backlog management.

This package runs over stdio (Node.js) and forwards MCP tool calls to a running backlog API.

Exposed tools

  • backlog.identify_project

  • backlog.health

  • backlog.version

  • backlog.list_projects

  • backlog.get_project

  • backlog.get_kanban_url

  • backlog.create_task

  • backlog.list_tasks

  • backlog.get_task

  • backlog.find_tasks_by_title

  • backlog.update_task

  • backlog.update_task_by_title

  • backlog.delete_task

  • backlog.update_task_status

  • backlog.add_task_note

  • backlog.plan_from_context

  • backlog.get_focus

  • backlog.claim_task

  • backlog.release_task

  • backlog.restore_task

  • backlog.get_board

  • backlog.get_console_table

Related MCP server: sprinter

Requirements

  • Node.js 18+

Environment

BACKLOG_API_BASE_URL=http://127.0.0.1:38117/api
BACKLOG_REQUEST_TIMEOUT_MS=1800
BACKLOG_API_FAIL_FAST_MS=15000
BACKLOG_API_FAILURE_THRESHOLD=1

Run locally

npm install
npm run build
npm start

For development:

npm run dev

MCP config example

.mcp.json file:

{
  "mcp": {
     "agentic-backlog": {
      "command": "npx",
      "args": ["-y", "@hakenshi/agentic-backlog-mcp-server"],
      "env": {
        "BACKLOG_API_BASE_URL": "http://127.0.0.1:38117/api"
      }
    }
  }
}

Notes

  • This server uses stdio transport only.

  • Do not use console.log in MCP stdio mode (stdout breaks JSON-RPC). Logs must go to stderr.

  • backlog.delete_task requires explicit confirm: "DELETE".

  • backlog.plan_from_context is preview-only by default. Set apply: true to persist changes.

  • API resilience is fail-fast: when repeated timeout/5xx errors happen, the server opens a short circuit window and returns immediate 503 errors so agent runs do not stall.

Available Tools

22 tools
backlog.add_task_noteAdd task noteC

Adds a task note through the running backlog API.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteYes
sourceNo
task_idYes
agent_idNo
session_idNo
idempotency_keyNo
apply_automationNo

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of disclosing side effects, but it only states that a note is added. It does not mention whether automations may run, whether notes are appended or replaced, or any idempotency/audit behavior implied by the optional parameters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

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

The description is short and not bloated, but the phrase 'through the running backlog API' is low-value filler. It is concise by omission rather than by economical inclusion of useful details.

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

Completeness2/5

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

For a 7-parameter mutation with no annotations and no output schema, this description is incomplete. It confirms the core operation but omits parameter semantics, return behavior, and side-effect context, especially around apply_automation and idempotency.

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

Parameters1/5

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

Schema description coverage is 0%, and the description adds nothing about the seven parameters. Field names like source, agent_id, idempotency_key, and apply_automation may be suggestive, but the description provides no meaning beyond the schema's bare types.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Adds a task note') on a clear resource, and the verb+resource combination differentiates it from sibling tools like update_task or delete_task. It does not add much beyond the title, but it is unambiguous about what the tool does.

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

Usage Guidelines2/5

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 such as update_task, update_task_status, or create_task. The agent must infer usage from the tool name and sibling list rather than from explicit context.

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

backlog.claim_taskClaim taskB

Claims a task with TTL for an agent/session to avoid multi-agent collisions.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNo
sourceNo
task_idYes
agent_idYes
session_idYes
ttl_secondsNo
idempotency_keyNo

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It mentions TTL and collision avoidance, which hints at lock/lease behavior, but does not disclose failure modes (e.g., what happens if the task is already claimed), idempotency semantics, permissions, or side effects like blocking other agents.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

The description is a single sentence that is front-loaded with the core action and includes the most important differentiator (TTL). It avoids filler, though it could afford a second sentence for critical caveats without becoming bloated.

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

Completeness2/5

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

With 7 parameters, no annotations, and no output schema, a one-sentence description leaves major gaps: return value, conflict behavior, TTL expiry semantics, and the role of idempotency_key are unexplained. An agent cannot reliably know how to handle a failed claim or retry.

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

Parameters2/5

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

Schema description coverage is 0%, so the description should compensate. It gives some context for ttl_seconds ('TTL'), agent_id, and session_id ('for an agent/session'), but provides no added meaning for idempotency_key, note, or source. The description does not explain parameter formats, defaults, or interactions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Claims'), resource ('task'), and key mechanism ('TTL', 'agent/session'), and states the purpose ('avoid multi-agent collisions'). This clearly distinguishes it from siblings like release_task and restore_task.

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

Usage Guidelines3/5

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

The description implies when to use the tool (before working on a task, to prevent concurrent agents from colliding) but does not explicitly mention alternatives, when not to use it, or follow-up actions like release_task. The context is present but exclusions and sibling comparisons are absent.

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

backlog.create_taskCreate taskC

Creates a task through the running backlog API.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
sourceNo
statusNo
agent_idNo
priorityNo
project_idYes
session_idNo
descriptionNo
external_refNo
idempotency_keyNo

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits itself, but it only says 'creates a task.' It does not mention side effects, required fields, validation rules, idempotency behavior despite the idempotency_key parameter, or what happens on success or failure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

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

The description is short and the core action is front-loaded, but the phrase 'through the running backlog API' is filler that adds little value. While concise, it is under-specified for a tool with 10 parameters and no annotations.

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

Completeness1/5

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

Given 10 parameters, no output schema, no annotations, and many sibling tools, this one-line description is severely incomplete. It lacks prerequisites, return values, behavior notes, and any context about how to use the task creation workflow. An agent must rely almost entirely on the schema and tool name.

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

Parameters1/5

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

Schema description coverage is 0% and the description adds no meaning to any of the 10 parameters. It does not explain that project_id and title are required, what status or priority enums mean, or how external_ref and idempotency_key should be used. The agent receives no parameter-level help.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Creates a task.' This clearly separates it from sibling tools like update_task, delete_task, and list_tasks at a high level. However, it lacks explicit sibling differentiation and does not indicate what kind of task or context, relying on the name and schema.

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

Usage Guidelines2/5

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

No guidance is given for when to use this tool versus alternatives such as plan_from_context, update_task, or claim_task. The description only restates the create action and does not mention prerequisites like an existing project or when to prefer another sibling.

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

backlog.delete_taskDelete taskC

Deletes a task through the running backlog API.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
task_idYes
idempotency_keyNo

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations provided, the description must carry the full burden of behavioral disclosure. It only states 'deletes a task' without disclosing that the operation is destructive, requires a confirmation string, or might be reversible. It also does not mention idempotency. This is a significant gap for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

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

The description is a single, short sentence, which is concise, but it is so sparse that it provides minimal value. It is not front-loaded with the most critical information (e.g., confirmation requirement). While not verbose, it under-specifies to the point of being nearly useless.

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

Completeness1/5

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

For a destructive tool with required parameters and no annotations or output schema, the description is severely incomplete. An agent would not know that 'confirm' must be 'DELETE', that task_id is required, or what the response looks like. The description does not enable correct invocation.

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

Parameters1/5

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

Schema description coverage is 0%, meaning the schema provides no property descriptions, and the tool description mentions none of the parameters. The required 'confirm' parameter (a safety gate) and the optional idempotency_key are completely unexplained. The description fails to compensate for the schema's lack of documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (deletes) and the resource (a task), making the purpose unambiguous. It does not differentiate from sibling tools, but no sibling performs deletion, so the verb+resource is sufficient. A higher score would require explicit scope (e.g., permanent vs. soft delete), which is absent.

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

Usage Guidelines2/5

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 update_task_status or restore_task. It does not mention that deletion is destructive, that confirmation is required, or that it might be reversible via restore_task. The description provides no context for selection.

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

backlog.find_tasks_by_titleFind tasks by titleC

Finds tasks in a project by title keywords using backlog API task list.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes
project_idYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full disclosure burden. It implies a read-only lookup and mentions the task-list API, but does not disclose match semantics (partial vs exact, case sensitivity), limit behavior, pagination, 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.

Conciseness5/5

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

A single sentence front-loads the verb and resource and contains no filler, redundancy, or repetition of schema details.

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

Completeness2/5

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

With no output schema and no annotations, the description leaves return shape, no-match behavior, and search semantics undefined. For a tool with three parameters, this is thinner than necessary for safe and correct invocation.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It effectively maps 'in a project' to project_id and 'title keywords' to query, but it says nothing about the limit parameter or value formats beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('finds') on a specific resource ('tasks in a project') with a clear selection criterion ('by title keywords'). This distinguishes it from siblings like list_tasks and get_task by the title-keyword angle, though it doesn't explicitly name those alternatives.

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

Usage Guidelines2/5

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 siblings such as list_tasks, get_task, or update_task_by_title. The description implies a title-search scenario but provides no exclusions, no alternative routing, and no conditions that select this tool.

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

backlog.get_boardGet board snapshotC

Returns board grouped snapshot from the running backlog API.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes

TDQS

C2.9/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It does disclose a read-like behavior through 'Returns', implying no mutation, and 'snapshot' suggests a point-in-time read. However, it omits any mention of authentication, failure behavior, data consistency, or side effects, so the behavioral picture is incomplete.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

The description is a single, front-loaded sentence that gets to the main point immediately. The phrase 'running backlog API' adds little value, but overall there is no unnecessary elaboration.

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

Completeness2/5

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 must fill in return-value expectations, but it only says 'board grouped snapshot' without describing what the snapshot contains or how it relates to project_id. For an agent to use it correctly, more detail about the returned data and its grouping is needed.

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

Parameters2/5

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

Schema description coverage is 0%, so the description should compensate by explaining how project_id affects the result, but it does not mention project_id at all. The schema provides only the parameter name and type, which is minimal, though 'project_id' is somewhat self-explanatory.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Returns') and identifies the resource as a 'board grouped snapshot', so it is not a tautology. However, 'grouped' is not explained, and the description does not explicitly differentiate this from sibling tools like get_project or get_kanban_url.

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

Usage Guidelines2/5

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

There is no guidance about when to use this tool versus alternatives. The description does not mention any conditions, exclusions, or sibling tools, leaving the agent to infer the appropriate context from the name alone.

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

backlog.get_console_tableGet board as console tableC

Returns a console-table style board snapshot from backlog API.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
project_idYes

TDQS

C2.4/5.0
Behavior2/5

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 implies a read-only operation but does not state side effects, authorization needs, pagination behavior, or output format details beyond 'console-table style.' This is a minimal disclosure with important gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

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

The description is a single efficient sentence with no verbose filler, which is good for conciseness. However, the phrase 'from backlog API' adds little value, and the lack of structured detail limits the effectiveness of the overall definition.

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

Completeness1/5

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

The tool has no output schema, no parameter descriptions, and no annotations, yet the description provides only a one-line summary. Important details such as what a 'console table' contains, how limit behaves, and what project_id refers to are entirely absent, leaving the tool inadequately specified.

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

Parameters1/5

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

Schema description coverage is 0%, so the description must compensate by explaining parameters, but it mentions neither project_id nor limit. An agent cannot infer what values to supply or what the limit controls, making parameter semantics essentially undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb-resource pair: 'Returns a console-table style board snapshot from backlog API.' It conveys that the tool fetches a board and formats it as a console table. However, it does not distinguish itself from the similarly named sibling backlog.get_board, so it stops short of full differentiation.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives such as backlog.get_board or backlog.list_tasks. There are no usage conditions, exclusions, or context cues that would help an agent select between the siblings.

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

backlog.get_focusGet focusB

Returns what matters now for a project: top priority, blocked, stale, and in progress tasks.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes
stale_hoursNo

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses the read-only nature ('Returns') and the categories of tasks surfaced, which is useful. However, it does not explain how 'stale' is determined (beyond the stale_hours parameter), whether the result is sorted, or what happens if no tasks match.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

The description is a single, front-loaded sentence that conveys the core purpose and the categories of tasks returned. It is concise and readable, though it could add a brief note about the stale_hours parameter without becoming bloated.

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

Completeness3/5

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

For a read-only snapshot tool with two simple parameters, the description is mostly adequate. However, the lack of any parameter explanation and the absence of an output schema mean the agent must guess at the return shape and the exact meaning of stale_hours. A brief clarification of the parameter and the response format would make it complete.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It explains the purpose of the tool but does not explicitly define project_id or stale_hours. The stale_hours parameter is only implicitly referenced by the word 'stale' in the description, leaving the agent to infer its meaning from the schema's min/max constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Returns') and resource ('what matters now for a project') and enumerates the categories of tasks included (top priority, blocked, stale, in progress). This distinguishes it from sibling tools like get_project or list_tasks, though it doesn't explicitly name a sibling alternative.

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

Usage Guidelines3/5

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

The description implies this is the tool to call when an agent needs a prioritized snapshot of a project's current focus. However, it does not explicitly state when to use this over list_tasks or get_project, nor does it mention any exclusions or prerequisites beyond the required project_id.

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

backlog.get_kanban_urlGet kanban URLC

Returns a browser URL for visual kanban from the running backlog API.

ParametersJSON Schema
NameRequiredDescriptionDefault
base_urlNo
project_idYes

TDQS

C2.8/5.0
Behavior2/5

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 states what is returned (a URL) but does not explain network behavior, error cases, authentication needs, or what the URL points to. This is thin for a tool with 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.

Conciseness5/5

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

The description is a single, front-loaded sentence with no filler. It conveys the core purpose efficiently, though it sacrifices behavioral detail for brevity.

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

Completeness2/5

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

Given two parameters, no output schema, and no annotations, the description leaves too much unspecified. An agent would not know the URL format, whether base_url can be omitted, or what failure modes exist. It is minimally adequate but not complete.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, but it does not mention either parameter explicitly. The phrase 'running backlog API' hints at base_url, and project_id is inferable from the schema, but no meaningful semantic detail is added.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns a browser URL for the visual kanban, which is a specific verb and resource. It is distinct enough from siblings like get_board and get_console_table, though it doesn't explicitly name any alternative.

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

Usage Guidelines2/5

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 siblings, and no mention of prerequisites such as needing a project_id or a running API base_url. The usage context is only implied by the phrase 'from the running backlog API.'

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

backlog.get_projectGet projectB

Returns project metadata and board summary from the running backlog API.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes

TDQS

B3.1/5.0
Behavior3/5

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

Since no annotations are provided, the description carries the full behavioral disclosure burden. It appropriately frames the operation as read-only ('Returns') and states what is returned, but it does not mention error behavior, required project identification, or any API constraints. For a simple getter this is minimally transparent but lacks depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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

The description is a single concise sentence with no filler. It front-loads the action and the returned content, making it easy to scan.

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

Completeness3/5

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

For a simple one-parameter retrieval with no output schema, the description states the main return content but omits input semantics and sibling-tool differentiation. It is adequate for basic invocation but leaves meaningful gaps.

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

Parameters2/5

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

Schema description coverage is 0%, and the description never mentions project_id or how it maps to the returned project metadata. With only an integer parameter and no explanatory text, the agent must infer the parameter's meaning from the tool title and schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly names the resource ('project metadata and board summary') and the action ('Returns'), so the purpose is evident. However, it does not distinguish this from siblings like get_board or identify_project, which may overlap in scope.

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

Usage Guidelines2/5

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

The description gives no explicit guidance on when to use this tool versus alternatives such as list_projects, identify_project, or get_board. The only contextual hint is 'from the running backlog API,' which does not help an agent choose between these related tools.

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

backlog.get_taskGet taskA

Returns a single task by id from the running backlog API.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It transparently indicates a read operation ('Returns') and single-task granularity, but it does not disclose not-found behavior, whether deleted/restored tasks are included, or any authorization requirements. Adequate but shallow.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

A single sentence with the essential 'Returns a single task by id' front-loaded. The trailing 'from the running backlog API' is somewhat redundant with the tool namespace but not costly. Overall compact and scannable.

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

Completeness3/5

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

For a simple one-parameter getter, the description plus schema is basically callable. However, with no annotations and no output schema, it omits useful context such as error handling, return shape, and read-only guarantees. It is adequate but not complete.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must add meaning. Saying 'by id' clarifies that the integer task_id parameter is the task identifier, but it adds no extra detail beyond the schema's name and type. This is sufficient for a single, well-named parameter, but not rich.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Returns a single task by id.' This clearly distinguishes it from sibling list/find tools such as list_tasks and find_tasks_by_title, and from write operations like create_task or update_task. The core 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.

Usage Guidelines3/5

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

'By id' implies this should be used when the agent already has a task_id, but the description does not explicitly contrast it with list_tasks or find_tasks_by_title, nor mention when not to use it. This is implied usage guidance rather than explicit routing.

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

backlog.healthBacklog healthA

Checks backlog API health and connectivity before mutations.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It discloses that the call is a non-destructive health/connectivity check and implies it is safe to run pre-mutation, but it does not describe what happens when the API is unhealthy (error vs. status result) or what the response contains. For a trivial read-only probe this is adequate, not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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

One eight-word sentence with zero filler. The core action ('checks health and connectivity') is front-loaded, followed immediately by the usage condition ('before mutations'). Every word earns its place.

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

Completeness4/5

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

Given the tool's minimal complexity (no parameters, no output schema, no annotations), the description covers the purpose and timing adequately. The only notable gap is return-value semantics or failure behavior, which an agent would need to learn from the live response, but for a zero-config health probe this is a minor omission.

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

Parameters4/5

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

The tool has zero parameters, so there is nothing for the description to clarify beyond the baseline of 4. Schema coverage is trivially 100% on an empty schema, and no parameter documentation is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Checks') and resource ('backlog API health and connectivity'), and the 'before mutations' phrase positions it as a pre-flight diagnostic. This clearly distinguishes it from siblings like backlog.version (version retrieval) and backlog.get_project (data lookup).

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

Usage Guidelines4/5

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

'before mutations' tells the agent explicitly when to invoke this tool, providing clear usage context. It does not name alternatives or state when not to use it (e.g., that backlog.version might also probe connectivity), so it stops 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.

backlog.identify_projectIdentify or create projectB

Detects git context and resolves/creates a project in the running backlog API (Docker app source of truth).

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNo
nameNo
descriptionNo

TDQS

B3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It discloses that the tool may create a project (via the word 'creates'), which is a mutation, but it does not explain side effects, whether the operation is idempotent, what happens if the project already exists, or what the return value is. For a tool that can mutate state, this is a significant gap, leading to a low score.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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

The description is a single sentence with no fluff, front-loading the core action and target. It is appropriately concise and free of redundant phrasing, earning a perfect score for efficiency.

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

Completeness2/5

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

With three optional parameters, no output schema, and no annotations, the description should provide extensive guidance. Instead, it only covers the general mechanism and leaves parameter usage, return values, and edge cases entirely undocumented. An agent attempting to call this tool correctly would lack essential information, making it incomplete 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.

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, but it does not explain any of the parameters (cwd, name, description). 'Detects git context' hints that cwd might be used for detection, and 'creates a project' implies name/description are used when creating, but this is not explicitly stated. An agent cannot confidently determine how to populate these parameters from the description alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's primary function: detecting git context and resolving or creating a project in the backlog API. It is distinct from sibling tools like list_projects and get_project, which read existing projects, while this tool ensures a project exists for the current context. The verb 'resolves/creates' is specific enough, but 'resolves' is slightly ambiguous—it could mean mapping context to an existing project or returning metadata. Still, the overall purpose is clear.

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

Usage Guidelines3/5

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

The description implies this tool should be used when you need a project to exist for the current git context, likely before creating or querying tasks. However, it does not explicitly state when to use it versus alternatives, nor does it mention exclusions (e.g., 'use list_projects if you only need to view projects'). The guidance is implied rather than direct, so it earns a 3.

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

backlog.list_projectsList projectsC

Lists projects from the running backlog API.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says 'Lists projects' but does not disclose return shape, pagination behavior, ordering, or whether the optional limit has a default. This leaves important runtime behavior undisclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

The description is a single concise sentence with no fluff. 'From the running backlog API' is slightly redundant given the tool name, but the structure is efficiently front-loaded and easy to parse.

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

Completeness2/5

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

For a tool with no output schema and no annotations, the description is thin. It omits what fields the list contains, the effect of `limit`, and whether there is a default limit. The call is simple enough to attempt, but an agent lacks key contextual details about the API's response behavior.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not mention the `limit` parameter at all. The agent must infer that 'limit' controls the number of returned projects from its name and min/max constraints. The description adds no semantic value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Lists projects'. This clearly identifies the operation as retrieving a collection rather than a single item. It does not explicitly distinguish itself from siblings like get_project or identify_project, 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.

Usage Guidelines2/5

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 such as get_project or list_tasks. There is no mention of exclusions, prerequisites, or a 'use this when you need all projects' framing. The usage context is only implied by the tool name and verb.

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

backlog.list_tasksList tasksC

Lists project tasks from the running backlog API.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
statusNo
project_idYes

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It only says 'Lists project tasks' without disclosing pagination behavior, default limit, ordering, whether it returns all tasks or only active ones, or any side effects. The phrase 'running backlog API' is ambiguous and doesn't clarify behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

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

The description is a single short sentence, which is concise, but it wastes the opportunity to add value. It's not poorly structured, but it's under-specified rather than efficiently informative.

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

Completeness2/5

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

Given 3 parameters, no output schema, and no annotations, the description is incomplete. An agent cannot tell what the response looks like, how to paginate, what statuses are valid, or how this differs from find_tasks_by_title. The tool is simple, but the description leaves too much to inference.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, but it doesn't explain any parameters. The schema itself has minimal descriptions (just types and enums), so an agent gets no help understanding what 'status' values mean or how 'limit' behaves. The description adds no parameter-level meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Lists') and resource ('project tasks') and mentions the 'running backlog API', which distinguishes it from generic task listing. However, it doesn't explicitly differentiate from siblings like get_task or find_tasks_by_title, though the plural 'tasks' and 'project' scope provide some clarity.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. The description doesn't mention filtering by status or limit, nor does it explain when to prefer list_tasks over find_tasks_by_title or get_task. The context of 'running backlog API' is vague and doesn't help an agent choose among the many task-related siblings.

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

backlog.plan_from_contextPlan tasks from contextC

Delegates planning to running backlog API planner endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
applyNo
sourceNo
contextYes
dry_runNo
agent_idNo
project_idYes
session_idNo
idempotency_keyNo

TDQS

C2.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. The phrase 'Delegates planning to running backlog API planner endpoint' gives only an implementation-level behavior and does not disclose whether the tool modifies backlog data, respects the apply/dry_run flags, requires authentication, or returns any planning result.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

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

The description is a single terse sentence with no wasted words, but it is under-specified rather than concisely informative. It reads like an internal implementation note, not an agent-facing description that earns its place.

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

Completeness1/5

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

Given 8 parameters, no annotations, no output schema, and no parameter documentation, the description is severely incomplete. An agent cannot determine what the planner will do, what side effects apply, what dry_run means, or what a successful response looks like.

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

Parameters1/5

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

Schema description coverage is 0% across 8 parameters, and the description adds no parameter-level meaning. The important parameters such as context, apply, dry_run, idempotency_key, and source are left completely unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title 'Plan tasks from context' clearly states the verb (plan) and resource (tasks from context), and the description reinforces this by saying planning is delegated to the backlog API planner endpoint. However, the description itself does not differentiate this tool from sibling task-related tools such as create_task or update_task.

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

Usage Guidelines2/5

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 the many sibling alternatives. It does not mention prerequisites, the relationship to create_task, or situations where dry_run vs apply should be used.

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

backlog.release_taskRelease task claimC

Releases an active task claim for the given agent/session.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNo
task_idYes
agent_idYes
session_idYes
idempotency_keyNo

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description must carry the behavioral disclosure burden. It indicates a state-changing operation but does not explain what happens to the task afterward, whether the operation is reversible, what errors occur if the claim is not active, or whether release is idempotent despite the idempotency_key parameter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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

Single sentence, front-loaded with the action and target, with no filler. Every word contributes to meaning.

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

Completeness2/5

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

For a 5-parameter mutation tool with no annotations and no output schema, this description is too thin. It omits required parameter guidance, expected return value, failure behavior, and prerequisites for releasing a claim.

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

Parameters2/5

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

Schema description coverage is 0% and the description only hints at agent_id and session_id via 'agent/session'. It does not clarify task_id, source, or idempotency_key, and it does not compensate for the schema's lack of parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('releases') and identifies the resource ('active task claim') plus scope ('for the given agent/session'). It is clear enough to distinguish this from 'claim_task' and other siblings, though it does not explicitly name an alternative.

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

Usage Guidelines2/5

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

The description does not state when to use this tool versus claim_task or restore_task, nor does it mention conditions like whether the claim must be active or whether only the owning agent/session can release it. Usage is only weakly implied by the verb 'releases'.

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

backlog.restore_taskRestore taskC

Restores a soft-deleted task within restore window.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNo
task_idYes
idempotency_keyNo

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the action and a condition, without mentioning side effects, error conditions (e.g., attempting to restore a non-soft-deleted task or outside the window), or any permission requirements. The description is minimal and leaves much unstated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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

The description is a single sentence, front-loaded with the action and resource, containing no unnecessary words. It is appropriately concise for the operation described, even though it is under-specified in other dimensions.

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

Completeness2/5

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

The tool has three parameters and no output schema, and the description only states the action and a vague constraint. It does not clarify the parameters' purposes, what happens if the task is not in the restore window, or any error handling. Given the minimal description and lack of annotations, an agent lacks sufficient context to use it reliably.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not explain any of the three parameters (task_id, source, idempotency_key). It provides no additional meaning beyond the parameter names, leaving the agent to guess their purposes. This is a significant gap since the description is the only source of parameter intent.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the action (restores), the resource (soft-deleted task), and a constraint (within restore window). It is distinct from sibling operations like delete_task or create_task, though it does not explicitly name alternatives. The purpose is unambiguous and not a tautology.

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

Usage Guidelines2/5

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

The description implies usage for restoring soft-deleted tasks but provides no guidance on when to choose this over alternatives, nor does it state exclusions or prerequisites. The phrase 'within restore window' hints at a condition but does not explain when it applies or what happens if it is not met.

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

backlog.update_taskUpdate taskC

Updates task fields through the running backlog API.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNo
reasonNo
sourceNo
statusNo
task_idYes
agent_idNo
priorityNo
session_idNo
descriptionNo
external_refNo
blocked_reasonNo
idempotency_keyNo

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations provided, the description must carry the full burden of behavioral disclosure. It only says 'updates task fields' without clarifying whether it performs partial updates, whether it is idempotent, what happens when the task is not found, or any permission requirements. The description is minimal and leaves critical behavior unstated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

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

The description is concise at one sentence, which is efficient, but it is so sparse that it sacrifices necessary information. It front-loads the action but omits any elaboration. While brevity is good, the content is under-specified, so it barely meets the minimum for conciseness.

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

Completeness1/5

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

Given the tool's complexity (12 parameters, no output schema, no annotations), the description is grossly incomplete. It does not explain what fields can be updated, whether partial updates are allowed, what the response looks like, or any constraints. An agent cannot confidently invoke this tool correctly with the information provided.

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

Parameters1/5

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

Schema description coverage is 0%, meaning the schema provides no explanations for any of the 12 parameters. The description also fails to mention any parameter semantics, leaving the agent to guess the meaning and format of fields like reason, source, agent_id, and idempotency_key. This is a significant gap that the description does not compensate for.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear action ('Updates task fields') on a specific resource ('task'), which distinguishes it from read-only siblings like get_task or list_tasks. However, it does not explicitly differentiate from update_task_by_title or update_task_status, so it relies on the tool name to signal the difference. Still, the core 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.

Usage Guidelines2/5

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. Siblings like update_task_by_title and update_task_status exist, but the description does not mention them or provide criteria for selection. An agent must infer usage context from the name alone, which is insufficient.

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

backlog.update_task_by_titleUpdate task by titleC

Finds a task by title query and updates it through the backlog API.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
titleNo
reasonNo
sourceNo
statusNo
agent_idNo
priorityNo
project_idYes
session_idNo
descriptionNo
external_refNo
blocked_reasonNo
idempotency_keyNo

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only states the basic action without disclosing key behaviors: what happens if multiple tasks match the query, whether it updates the first match or errors, whether it performs a partial or full replacement, any required permissions, or the return value. The description is too thin to inform an agent about side effects or failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

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

The description is a single, concise sentence with no wasted words. It is efficiently structured and front-loads the core action. However, its brevity is a double-edged sword: while concise, it sacrifices critical detail that is penalized in other dimensions.

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

Completeness1/5

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

This is a mutation tool with 13 parameters, no output schema, and no annotations. The description provides almost no contextual information needed to invoke it correctly: no clarification of matching semantics, update behavior, required fields, or expected response. For a tool of this complexity, the description is grossly incomplete and would leave an agent guessing on nearly every aspect of its use.

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

Parameters1/5

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

With schema description coverage at 0% and 13 parameters, the description must explain the parameters, but it only implies the 'query' parameter via 'by title query'. It does not clarify the meaning of 'title' (is it the new title?), 'status', 'priority', 'reason', 'source', or other update fields. The description adds almost no value beyond the parameter names and types, making it impossible for an agent to know how to construct a correct update.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: finds a task by title query and updates it. It uses a specific verb-resource pair and distinguishes itself from siblings like backlog.find_tasks_by_title (which only finds) and backlog.update_task (which updates by ID). The title 'Update task by title' reinforces the intent. No ambiguity about what the tool does.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives. It does not mention that this tool is for updating a task when you have its title but not its ID, nor does it warn about potential multiple matches or recommend using find_tasks_by_title first. There is no explicit when-to-use or when-not-to-use guidance, leaving the agent to infer the appropriate context.

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

backlog.update_task_statusUpdate task statusC

Moves a task between states through the running backlog API.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNo
sourceNo
statusYes
task_idYes
agent_idNo
session_idNo
blocked_reasonNo
idempotency_keyNo

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only restates the purpose and reveals nothing about transition validation, reversibility, whether blocked_reason is required when moving to 'blocked', idempotency semantics, or audit attribution - all material for a state-mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

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

The single sentence is terse and free of filler, but for an 8-parameter state-transition tool this brevity reads as under-specification rather than disciplined conciseness. It front-loads the action but earns little else.

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

Completeness2/5

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

Given 8 parameters, no annotations, no output schema, and 23 siblings including several state-transition tools, the description is far too thin. It omits state-machine context, prerequisites, and field relationships an agent needs to invoke the tool correctly.

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

Parameters2/5

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

Schema description coverage is 0% with 8 parameters, yet the description adds nothing about parameter meaning. Optional fields like reason, source, agent_id, session_id, idempotency_key, and blocked_reason are left to name-guessing; the description does not compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('moves') with a clear resource ('task') and scope ('between states'), which implicitly distinguishes it from update_task (field edits). However, it never names any sibling and the phrase 'through the running backlog API' adds no semantic content.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus the many siblings that also transition task state, such as claim_task, release_task, restore_task, or even update_task. An agent has no way to decide which state-change tool to pick.

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

backlog.versionBacklog versionA

Returns API version and protocol compatibility information.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden for behavioral disclosure. 'Returns' clearly signals a read-only, non-mutating operation, which is important. It does not, however, describe response format, error conditions, or authentication needs, though the simplicity of the tool makes these gaps minor.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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

The description is a single, well-formed sentence that immediately states the tool's output. There is no filler, repetition, or unnecessary detail—every word contributes to the meaning.

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

Completeness4/5

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

For a zero-parameter, read-only tool, this description is nearly complete. It clearly identifies what information is returned. The only minor gap is that it does not elaborate on what 'protocol compatibility information' contains; however, an agent can safely call the tool and inspect the response since there are no side effects or required inputs.

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

Parameters4/5

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

The input schema is empty and the tool takes zero parameters, so there are no parameter semantics to clarify. Per the baseline for zero-parameter tools, the description needs no additional parameter information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Returns') and resource ('API version and protocol compatibility information'), making the tool's function unmistakable. Although it doesn't explicitly name sibling tools, no sibling has a remotely similar purpose, so the description effectively distinguishes it from all alternatives.

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

Usage Guidelines3/5

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

The description implies the usage: call this tool when you need API version or protocol compatibility details. However, it does not explicitly state when to prefer it over related tools such as backlog.health, nor does it mention prerequisites. The guidance is only implied, not stated.

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

Tool Schema Changelog

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

  1. 22 tool updatesv0.1.3
    • First observedbacklog.add_task_note
    • First observedbacklog.claim_task
    • First observedbacklog.create_task
    • First observedbacklog.delete_task
    • First observedbacklog.find_tasks_by_title
    • First observedbacklog.get_board
    • First observedbacklog.get_console_table
    • First observedbacklog.get_focus
    • First observedbacklog.get_kanban_url
    • First observedbacklog.get_project
    • First observedbacklog.get_task
    • First observedbacklog.health
    • First observedbacklog.identify_project
    • First observedbacklog.list_projects
    • First observedbacklog.list_tasks
    • First observedbacklog.plan_from_context
    • First observedbacklog.release_task
    • First observedbacklog.restore_task
    • First observedbacklog.update_task
    • First observedbacklog.update_task_by_title
    • First observedbacklog.update_task_status
    • First observedbacklog.version

TDQS

C2.9/5.0

Scored across 22 tools

Disambiguation3/5

Many tools are distinct, but there are several overlapping boundaries: get_board and get_console_table both return board snapshots, update_task/update_task_by_title/update_task_status all mutate tasks, and get_focus/list_tasks overlap as list-like views. Descriptions help, but an agent could easily pick the wrong one for state changes or snapshot retrieval.

Naming Consistency4/5

Names consistently use the backlog. prefix with snake_case verb_noun construction (list_tasks, create_task, update_task). Minor deviations are bare nouns health and version and the looser get_/list_ distinction, but the overall pattern is predictable and readable.

Tool Count3/5

22 tools is on the heavy side and sits in the 16-25 borderline range. Many could be consolidated (board formats, update variants, health/version), though the broad project/task/planning/claim domain explains some of the volume.

Completeness4/5

The surface covers task CRUD well, including restore, status transitions, notes, claims, board snapshots, focus, and planning. Minor gaps exist such as no project update/delete and limited search beyond title keywords, but core agent workflows do not hit dead ends.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers