Skip to main content
Glama

mcp-checklist

MCP server for reusable checklists and dated runs of them: pass, fail, not applicable, and a sign-off. Checklists you build once and run many times, and the dated record of each run that somebody signs.

Works with Claude Desktop, Claude Code, Cursor and any Model Context Protocol client. Runs on your own machine: this one has no hosted endpoint, so install it from the bundle or from source.

Install

Claude Desktop, one click. Download checklist.mcpb from the latest release and double-click it.

From source. The mirror is self-contained: every @theluckystrike/* dependency is vendored, so a fresh clone builds with no extra setup.

git clone https://github.com/theluckystrike/mcp-checklist.git
cd mcp-checklist
npm install && npm run build

Then point your client at the built entry point:

{
  "mcpServers": {
    "checklist": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-checklist/dist/index.js"]
    }
  }
}

@theluckystrike/mcp-checklist is not published on npm yet, so an npx -y @theluckystrike/mcp-checklist command will fail. The three paths above are the working ones and each is exercised by CI.

Read-only mirror of mcp-servers/servers/checklist. See MIRROR.md.

Checklists you build once and run many times, and the dated record of each run that somebody signs. A checklist is a named list of steps, optionally grouped into sections, each one required or optional. A run is one pass of that checklist against a job: every step is marked pass, fail or not applicable, with who marked it and on what day, and a note that says what was found. run_sign_off then puts a name and a date on it and freezes it.

Related MCP server: rails-mcp

The one rule that decides everything else

A run copies its checklist when it starts. If somebody edits the checklist afterwards, adds a step or deletes one, every run already in progress keeps the list it started with, and the version it was copied from is recorded on the run.

That is not a caching convenience. A checklist somebody ticked and signed has to be the list they actually saw. A run that read its steps live from the checklist would mean a signed handover certificate for eleven checks when the person signing it saw ten, with no field in the record showing that it had happened. It also means deleting a checklist leaves its runs readable and complete, which is what you want the year afterwards when somebody asks what was checked.

Two smaller rules follow from it:

  • Nothing derived is stored. The pass, fail and outstanding counts, the percentage, and whether a run can be signed off are worked out on every call from the run's own steps. A stored "complete" flag is a fact about the afternoon somebody last looked, and complete here is a reading: it appears when the last step is answered and goes away again when one is put back to pending.

  • Not applicable is not a pass. na counts as ANSWERED and never as passed. A step that was looked at and dismissed is a different fact from a step that passed, and merging the two is how a checklist reports full marks for a job where half the steps did not apply.

What blocks a signature

A required step that is unanswered, a required step that failed, an unanswered optional step, or a run with no steps. force: true signs anyway, and the exceptions stay on the record and print on the report under "Signed with exceptions". They are not lost, and they are not silent.

Install

One-click (.mcpb): download checklist.mcpb from the latest release and double-click it in Claude Desktop: https://github.com/theluckystrike/mcp-servers/releases/latest

npm publish for @theluckystrike/mcp-checklist is pending, so the npx line below returns 404 today. Build from source in the meantime; see llms-install.md.

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "checklist": {
      "command": "npx",
      "args": ["-y", "@theluckystrike/mcp-checklist"]
    }
  }
}

Claude Code

claude mcp add checklist -- npx -y @theluckystrike/mcp-checklist

Cursor

~/.cursor/mcp.json (global) or .cursor/mcp.json (project), same entry as Claude Desktop.

Tools

Tool

What it does

checklist_create

Create a reusable checklist: a name, a category, a description

checklist_item_add

Add a step: the text, a section heading, and whether it is required

checklist_item_remove

Remove a step and bump the version. Runs already under way keep it

checklist_show

One checklist, grouped by section, with a blank printable copy on request

checklist_list

Every checklist with its version, step count and how many runs came from it

checklist_delete

Delete a checklist. Its runs stay readable, because each carries its own copy

run_start

Start a dated run against a job. The steps are copied into it at this point

run_check

Mark one step pass, fail or na, with who and when and what was found

run_show

The run: every step with its answer, the counts, the failures, and what blocks sign-off

run_list

Runs newest first, filtered by checklist, status, reference, or only those with failures

run_sign_off

Sign off with a name and a date, which freezes the run

run_status

Reopen a complete run, or abandon one when the job did not happen

run_report

The run as text on every tier. Pro also writes it to out_path as a .txt file

run_delete

Delete a run. A signed-off one is refused

license_status

Which tier this install is on and where the key came from

license_activate

Store a Pro key for this server

There is also a resource, checklist://contract, carrying the snapshot rule, the item states, the run status machine, what blocks a sign-off and where this server writes; and a prompt, run_the_checklist, that walks the whole job in order.

Free vs Pro

Free

Pro

Checklists you keep

3

unlimited

Runs of them

unlimited

unlimited

Steps per checklist

up to 500

up to 500

run_show, run_list, the counts

yes

yes

The run report as text

yes

yes

Writing the report to a file with out_path

no

yes

The meter is on how many DIFFERENT checklists you keep, not on how many jobs you check. A trade with one pre-delivery check, one handover sheet and one snag list runs its whole year inside the free tier. Runs are never capped, because capping the running of a checklist would cap the only thing a checklist is for. Deleting a checklist frees a slot.

Get Pro: https://mcp.zovo.one/buy/checklist (one-time), or all servers for one price at https://mcp.zovo.one/buy/bundle

Privacy

All data stays local, in ${XDG_DATA_HOME:-~/.local/share}/mcp-servers/checklist/. There is no network call anywhere in this server, no API key, and no account. The only file it reads that it does not own is the shared business profile, for the name and address at the top of a printed report, and it never writes to it.

Built by theluckystrike. Support: support@zovo.one

Available Tools

16 tools
checklist_createCreate a checklistA

Create a reusable checklist and return its CL-NNNN id: a name, a category and an optional description. Add the steps with checklist_item_add. Free tier: 3 checklists, and unlimited runs of them.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesWhat the checklist is, e.g. Pre-delivery vehicle check or Site handover
categoryNoA grouping key, lower-cased and hyphenated, e.g. handover or safety. Default general
descriptionNoWhat this checklist is for and when to run it, printed at the top of a blank copy

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full behavioral burden. It discloses that creation returns a CL-NNNN id, that the checklist is reusable, and that the free tier allows 3 checklists with unlimited runs. It stops short of error/duplicate-name behavior, but it is materially more transparent than a bare 'Create a checklist.'

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

Conciseness5/5

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

Three short sentences pack in the core action, the fields, the return value, the follow-up sibling tool, and a quota constraint. There is no filler, and the most important information is front-loaded.

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 there is no output schema and no annotations, the description does well by explaining the return ID, parameter shape, next workflow step, and free-tier limit. It does not detail error behavior or uniqueness constraints, but for a simple creation tool this is a reasonably complete definition.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents all three parameters. The description repeats their names but adds little meaning beyond the schema; the phrase 'a name, a category and an optional description' is also slightly ambiguous about whether category is optional, though the schema clearly marks only name as required.

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

Purpose5/5

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

The description states a specific action ('Create a reusable checklist') and the resource, plus the returned artifact ('its CL-NNNN id'). It clearly distinguishes this tool from siblings like checklist_item_add, checklist_show, and checklist_delete.

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

Usage Guidelines4/5

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

The description makes the creation workflow clear and explicitly points to the next step: 'Add the steps with checklist_item_add.' It does not list exclusions or when-not-to-use conditions, but the context is sufficiently clear for an agent to choose this tool over its siblings.

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

checklist_deleteDelete a checklistA

Delete a checklist and its steps for good. Runs already started from it are untouched and stay readable: a run carries its own copy of the steps, so deleting the checklist does not erase what anybody signed.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYesMust be true. There is no undo and nothing is copied anywhere first
checklistYesThe checklist id, e.g. CL-0001, or its name when only one carries it

TDQS

A4.3/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden, and it does so well: it discloses permanent deletion, cascading deletion of steps, and the important safety property that started runs remain untouched and readable.

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

Conciseness5/5

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

Two tight sentences with zero filler. The core destructive action is front-loaded, and the second sentence provides the single most important caveat in a clear, well-structured way.

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

Completeness5/5

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

For a simple two-parameter destructive operation, the description is complete: it explains what is deleted, how confirmation works is already in the schema, and it resolves the biggest concern by explaining run preservation. No output schema is present, but the essential call semantics are fully covered.

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

Parameters3/5

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

Schema coverage is 100% and both parameters already have descriptive definitions. The tool description adds general deletion semantics but no new parameter-level meaning beyond what the schema provides, so the baseline of 3 is appropriate.

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: deleting a checklist and its steps for good. It is clearly distinct from checklist_create and checklist_item_remove, and the permanence ties directly to the tool's name and title.

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 usage by describing the deletion behavior and adds useful context that started runs are unaffected. However, it never explicitly contrasts this tool with alternatives such as checklist_item_remove or states when not to use it.

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

checklist_item_addAdd a step to a checklistA

Add one step to a checklist and return its I01-style id: the text, an optional section heading, and whether it is required. A required step that is unanswered or failed blocks sign-off; an optional one does not.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNoGuidance printed under the step, e.g. the tolerance or the standard it is checked against
textYesThe step, as the person doing it will read it, e.g. Tyre pressures checked and recorded
sectionNoA heading to group this step under, e.g. Exterior. Steps keep the order they were added within a section
positionNoInsert at this 1-based position instead of at the end. Existing steps keep their ids
requiredNoWhether sign-off is blocked while this step is unanswered or failed. Default true
checklistYesThe checklist id, e.g. CL-0001, or its name when only one carries it

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the burden. It discloses the return value (I01-style id), the effect on sign-off (required steps block sign-off, optional ones do not), and the insertion behavior (position parameter, existing steps keep ids). It doesn't mention error cases or whether the operation is reversible, but the core behavioral traits are covered.

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

Conciseness5/5

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

Two sentences, front-loaded with the main action and outcome, then a concise explanation of the required/optional distinction. No wasted words.

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 tool with 6 params, 100% schema coverage, and no output schema, the description covers the essential behavior: what it does, what it returns, and the key semantic distinction (required vs optional). It could mention error conditions or id format details, but the core is 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 100%, so the schema already documents all six parameters. The description adds context about the return id and the sign-off semantics of required, but doesn't add much beyond the schema for individual parameters. Baseline 3 is appropriate.

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

Purpose5/5

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

The description states a specific verb ('Add'), a resource ('one step to a checklist'), and the key outcome ('return its I01-style id'). It also names the fields involved (text, optional section heading, required flag), which distinguishes it from sibling tools like checklist_item_remove and checklist_create.

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

Usage Guidelines4/5

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

The description implies when to use this tool: to add a single step to a checklist, with optional section heading and required flag. It doesn't explicitly name alternatives or exclusions, but the sibling list makes the context clear. The behavior of required vs optional steps is explained, which helps an agent decide whether to set required=true.

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

checklist_item_removeRemove a step from a checklistA

Remove one step from a checklist by its I01-style id and bump the checklist version. Runs already under way keep the step they started with, so nothing anybody already ticked is rewritten.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemYesThe step id, e.g. I03, as shown by checklist_show
checklistYesThe checklist id, e.g. CL-0001, or its name when only one carries it

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral disclosure burden. It clearly indicates mutation ('Remove', 'bump the checklist version') and adds an important non-obvious behavior: active runs keep the step they started with and ticked data is not rewritten. This is meaningful context beyond a simple 'remove' statement.

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

Conciseness5/5

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

Two concise sentences with no filler. The core action and object are front-loaded, and the second sentence adds one valuable behavioral detail. 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?

For a simple two-parameter mutation with fully documented schema, the description covers the essential operational behavior: what is removed, how the item is identified, the version effect, and the effect on in-flight runs. It does not describe the return value or irreversibility, but the operation is simple enough that these are minor gaps.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already fully documents both parameters. The description's 'I01-style id' phrasing aligns with the schema's 'e.g. I03' example but adds no new semantic information beyond what is already in the input schema.

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

Purpose5/5

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

The description states a specific verb ('Remove'), a specific resource ('one step from a checklist'), and the mechanism ('by its I01-style id'). It also mentions the version bump side effect. This clearly distinguishes it from checklist_item_add and the other checklist tools.

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 intended usage is strongly implied: use it to remove a step from a checklist. However, there is no explicit guidance about when to prefer this over alternatives, no exclusions, and no mention of prerequisites or constraints beyond the description of the operation itself.

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

checklist_listList checklistsA

Every checklist with its category, version, step count and how many runs came from it. Filter by category or by a word in the name. Returns at most 500 rows, newest change first.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoOnly checklists in this category, matched after the same lower-case hyphenation applied on create
containsNoOnly checklists whose name contains this text, matched case-insensitively

TDQS

A4.3/5.0
Behavior4/5

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

No annotations are provided, so the description carries the safety and behavior disclosure. It discloses the row cap ('at most 500 rows'), ordering ('newest change first'), and implies a read-only listing. It could mention pagination or auth, but for a simple list tool the key behaviors are covered.

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

Conciseness5/5

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

Two sentences front-load the core output and then add filtering, a row cap, and sort order. No filler or repetition of the title. Every sentence contributes distinct information.

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

Completeness5/5

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

With no output schema, the description still communicates the returned fields, optional filters, row limit, and ordering. For a low-complexity list tool with two optional parameters, nothing essential is missing. It is complete enough for an agent to invoke and interpret results.

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

Parameters3/5

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

Schema coverage is 100% and each parameter already has a clear description with matching semantics. The description's 'filter by category or by a word in the name' paraphrases the schema without adding new constraints. A baseline 3 is appropriate because the schema does the work.

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 action and resource: listing every checklist, and enumerates the fields returned (category, version, step count, run count). The title reinforces the verb, and the resource clearly distinguishes it from the run_* siblings. It could name checklist_show explicitly, but the list-versus-detail distinction 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 Guidelines4/5

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

The description makes the use case clear: retrieve checklists with optional filtering by category or name substring. It doesn't explicitly name alternatives such as checklist_show for a single checklist's details, so it stops short of full routing guidance. Still, the context is self-evident for a list operation.

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

checklist_showShow one checklistA

One checklist with its steps in order, grouped by section, plus how many are required and how many runs have been started from it. Pass as_text for a blank printable copy with a box against each step.

ParametersJSON Schema
NameRequiredDescriptionDefault
as_textNoReturn a blank printable copy as plain text as well as the structured view. Default false
checklistYesThe checklist id, e.g. CL-0001, or its name when only one carries it

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden, and it does well by disclosing ordering, grouping, required counts, run counts, and the printable as_text behavior. It does not describe the response envelope or error handling, but for a read-only show tool the core behavior is transparent.

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

Conciseness5/5

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

Two sentences with no filler. The primary output content is front-loaded, and the optional as_text behavior is presented as a clear secondary instruction. Every clause earns its place.

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

Completeness5/5

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

With no output schema, the description adequately explains what the structured view contains and what the as_text branch returns. The parameters are simple and fully documented in the schema, so an agent has enough context to call the tool correctly.

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 already covers both parameters well, so the baseline is 3. The description adds meaning beyond the schema by specifying the as_text output comes 'with a box against each step,' which clarifies the printable form. This is modest but real added value.

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 resource (one checklist) and the content of the view: ordered steps, grouped by section, required-count, and run-count. It distinguishes itself from checklist_list by emphasizing 'one checklist,' though it starts with a noun phrase rather than an explicit verb like 'shows.'

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?

Usage is implied rather than explicitly stated: 'One checklist' signals this is for looking at a single checklist, and the as_text sentence explains when that option is useful. However, it does not explicitly contrast with siblings like checklist_list or run_show, nor does it state when not to use this tool.

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

license_activateActivate licenseA

Activate a Pro key (MCPL1.xxx.yyy) from checkout: verified offline against a built-in public key, saved to your config file. A wrong, malformed or expired key is refused, unsaved. license_status reads it back.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesLicense key from the checkout confirmation page

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full behavioral burden. It discloses that verification happens offline against a built-in public key, that the key is persisted to the config file, and that invalid keys are refused and left unsaved. This is substantial transparency for an activation tool, though it could mention overwriting an existing key or the exact return behavior.

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

Conciseness5/5

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

The description is two sentences with no filler. The first sentence front-loads the main action, source, verification method, and persistence. The second sentence efficiently covers error handling and points to the related read-back tool. Every clause adds value.

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 a single-parameter tool with no output schema and no annotations, the description covers activation behavior, verification mechanism, persistence, error outcomes, and how to read the result later. The only minor gap is an explicit statement of what the function returns upon success or failure, but the phrase 'refused, unsaved' implies a feedback mechanism. Overall, it is sufficiently complete for an agent to call it correctly.

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 schema already documents the 'key' parameter at 100% coverage, so the baseline is 3. The description adds meaningful semantics by giving the concrete key format ('MCPL1.xxx.yyy'), confirming the key comes from the checkout page, and explaining that malformed or expired keys will be rejected. This goes beyond the schema's one-line description.

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

Purpose5/5

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

The description states a specific action ('Activate a Pro key'), the exact key format ('MCPL1.xxx.yyy'), the source ('from checkout'), and the core mechanism ('verified offline against a built-in public key'). It also differentiates itself from the sibling license_status by noting that license_status reads the activation back, so there is no ambiguity about which tool does what.

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

Usage Guidelines4/5

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

The description gives clear context: use this when you have a Pro key from checkout that needs to be activated. It also points to license_status as the read-back tool, which implies when to use a related sibling. It does not explicitly spell out 'do not use for checking status' or list other alternatives, but the context is strong enough to avoid misuse.

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

license_statusLicense statusA

Report this server's licence state: product, tier free or pro, licence id, expiry, the key source and the upgrade URL. No arguments, no network. Explains a free-tier refusal; license_activate installs a key.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

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

Annotations are absent, so the description carries the full burden of behavioral disclosure. It discloses that the call is local ('no network') and argument-free, and it mentions a specific explanatory behavior. The word 'Report' implies read-only, though it does not explicitly state non-destructive or permission requirements; this is adequate for a status command.

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

Conciseness5/5

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

Two sentences with no filler. The first sentence lists the output fields; the second adds constraints and the sibling pointer. Every clause contributes meaningful information.

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

Completeness5/5

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

For a zero-parameter status tool with no output schema, the description lists the expected output fields, behavioral constraints, and the relevant alternative tool. Nothing an agent needs to call it correctly is missing.

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

Parameters4/5

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

The schema has zero parameters and the description reinforces this with 'No arguments'. It adds value by listing the reported fields, helping an agent understand what the empty input will yield. The baseline for zero-parameter tools is high, and the description meets it.

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

Purpose5/5

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

The description states a specific verb ('Report'), a clear resource ('this server's licence state'), and enumerates the exact fields returned. It also names the sibling 'license_activate' as the tool that does something different, so an agent can distinguish them immediately.

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

Usage Guidelines5/5

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

The description gives explicit usage constraints: no arguments, no network, and explains a free-tier refusal. It also directs the agent to license_activate when the task is to install a key, serving as an explicit pointer to the relevant alternative.

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

run_checkAnswer a step in a runA

Mark one step pass, fail or na, with who did it and when. na means the step did not apply; it counts as answered and never as passed. A step can be answered again while the run is open, and the last answer stands.

ParametersJSON Schema
NameRequiredDescriptionDefault
atNoThe day it was answered, YYYY-MM-DD. Default the run's own date
byNoWho answered it. Printed against the step on the report
runYesThe run id, e.g. RUN-2026-0001, or its title when only one carries it
itemYesThe step id, e.g. I03, as shown by run_show
noteNoWhat was found. Say why on a fail: the report prints this under the step
stateYespass, fail, na for did not apply, or pending to put the step back to unanswered

TDQS

A4/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 of explaining behavior. It usefully discloses that na never counts as passed, that re-answering overwrites the previous answer, and that the run must be open. However, it omits the pending state allowed by the schema and says nothing about effects on run status or sign-off, leaving some behavioral ambiguity.

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

Conciseness5/5

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

Three sentences with no filler. The first sentence states the core action, and the following sentences add only essential edge-case semantics. The structure is front-loaded and every sentence earns its place.

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

Completeness4/5

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

The tool is simple, the schema fully documents its parameters, and the description clarifies the most important behavioral nuances. The only notable gap is the absence of a mention of the pending reset state and any return/confirmation behavior, but these are minor for this operation.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all six parameters, including defaults, formats, and examples. The description adds prose around na semantics and the who/when intent, but does not need to compensate for missing parameter documentation.

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

Purpose5/5

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

The description uses a specific verb ('Mark') with a specific resource ('one step') and the exact allowed outcomes (pass, fail, na). This clearly distinguishes run_check from run-level sibling tools like run_sign_off, run_status, and run_report.

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

Usage Guidelines4/5

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

The description gives clear context: this tool records step-level answers, can be used again while the run is open, and the latest answer is the effective one. It does not explicitly name alternative sibling tools or state when not to use it, 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.

run_deleteDelete a runA

Delete a run for good, with every answer on it. A signed-off run is refused: it is the record of what somebody put their name to. Abandon a run you no longer want instead of deleting a signed one.

ParametersJSON Schema
NameRequiredDescriptionDefault
runYesThe run id, e.g. RUN-2026-0001, or its title when only one carries it
confirmYesMust be true. There is no undo and nothing is copied anywhere first

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It clearly states permanence ('for good'), cascading deletion ('with every answer on it'), and the refusal behavior for signed-off runs. The confirm parameter's schema reinforces this with 'no undo and nothing is copied anywhere first.'

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

Conciseness5/5

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

Three short sentences with no filler. The core action is front-loaded, the most important constraint (signed-off runs are refused) is stated immediately, and the alternative behavior is given last. Every sentence 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?

For a destructive two-parameter tool with no annotations and no output schema, the description is nearly complete: it covers purpose, permanence, cascade effects, and the key refusal case. A small gap is that it does not describe the success response or clarify what 'abandon' concretely does, but the schema and description together are sufficient for correct invocation.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds some behavioral context for the run parameter by noting signed-off runs are refused, but it does not add new syntax or format details beyond what the schema already provides for run and confirm.

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

Purpose5/5

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

The description states a specific verb and resource: 'Delete a run for good, with every answer on it.' It also distinguishes this from related run tools by emphasizing permanent deletion and the refusal of signed-off runs, so an agent can tell it apart from run_show, run_status, and run_sign_off.

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

Usage Guidelines4/5

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

The description gives clear context for when deletion is appropriate and explicitly warns against deleting signed-off runs, directing the user to 'Abandon a run you no longer want instead.' It loses a point because the suggested alternative 'abandon' is not a named sibling tool in the provided list, making the guidance slightly less actionable.

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

run_listList runsA

Runs newest first, with their checklist, progress and sign-off state. Filter by checklist, by status, by reference or to open runs only. Returns at most 500 rows.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoOnly runs in this status
checklistNoOnly runs of this checklist, by id or name
open_onlyNoOnly open and complete runs, the ones still editable. Default false
referenceNoOnly runs against this job, order or asset id, matched case-insensitively
with_failuresNoOnly runs that have at least one failed step. Default false

TDQS

A3.8/5.0
Behavior3/5

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 usefully states ordering ('newest first'), content ('checklist, progress and sign-off state'), and the 500-row limit, but it does not clarify side effects, return format, or the nuance that open_only actually means open and complete runs.

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

Conciseness5/5

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

Three short sentences deliver ordering, contents, filter options, and a maximum result count with no filler. The most important facts are front-loaded and every sentence adds value.

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

Completeness4/5

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

The tool has no output schema and no annotations, so the description must stand alone for return expectations; it does so by naming the included run state. Parameter semantics are fully covered by the schema, and the row limit is disclosed, though exact output field names and pagination behavior beyond the limit are not specified.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3 and the schema already documents every parameter. The description only summarizes filter categories ('checklist, status, reference, open only') without adding new semantic detail, and it omits the with_failures parameter entirely.

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 that this lists runs, ordered newest first, with checklist, progress, and sign-off state. It is immediately distinguishable from sibling tools like run_show, run_status, or run_start by focusing on plural listing with filtering and a row cap.

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 usage for batch retrieval of runs and lists available filters, but it does not explicitly say when to prefer this over siblings like run_show or run_status, nor mention any exclusions or alternative tools.

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

run_reportProduce the run reportA

The run as plain text on every tier: every step with its mark, who answered it, the notes, the counts and a signature block or the recorded signature. Pro also writes it to out_path as a .txt file.

ParametersJSON Schema
NameRequiredDescriptionDefault
runYesThe run id, e.g. RUN-2026-0001, or its title when only one carries it
out_pathNoWhere to write the .txt file. Pro only. Omit to get the report back as text, which every tier can do
overwriteNoReplace out_path if a file is already there. Default false, and an existing file is refused with nothing written

TDQS

A3.5/5.0
Behavior3/5

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 does disclose the output format, the report contents, and the file-writing side effect for Pro. However, it does not address the existing-file/overwrite outcome, error behavior, or whether the operation is read-only with respect to the run itself.

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 compact and front-loaded, with two sentences covering report contents and the optional file write. The only weakness is that the first sentence is a noun phrase ('The run as plain text...') rather than a complete, explicit instruction, which slightly hurts readability.

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

Completeness4/5

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

The description covers what the report contains, the text return mode, and the Pro-only file writing mode, which is sufficient for a simple 3-parameter tool. The overwrite behavior is already documented in the schema, so its absence from the description is not a significant gap.

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

Parameters3/5

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

Schema description coverage is 100%, so the parameters are already well documented. The description reinforces the out_path behavior and the '.txt' format, but adds little beyond the schema and does not mention the overwrite parameter. This fits the baseline for high schema coverage.

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 supplies the verb ('Produce') and the description specifies the resource (run report) plus its contents: every step, mark, answerer, notes, counts, and signature. It is clear, but it does not explicitly contrast itself with siblings like run_show or run_status, so the differentiation is implied rather than stated.

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 gives useful context: the text form is available on every tier, and Pro can additionally write to out_path. However, it does not state when to prefer this tool over run_show, run_status, or run_list, nor does it mention any exclusion conditions.

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

run_showShow one runA

The whole run: every step with its answer, who answered it and when, grouped by section, plus the pass, fail and outstanding counts, the failures in full, and whether it can be signed off and why not.

ParametersJSON Schema
NameRequiredDescriptionDefault
runYesThe run id, e.g. RUN-2026-0001, or its title when only one carries it

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description must carry the behavioral burden. It describes the returned content in detail and 'Show' implies a read-only operation, but it does not explicitly state that there are no side effects, what permissions are required, or how errors/edge cases behave.

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 one dense, front-loaded sentence with no filler or repetition. Every clause adds a distinct piece of useful information about what the tool returns.

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

Completeness5/5

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

For a tool with one simple, well-documented parameter and no output schema, the description comprehensively enumerates the response contents: steps, answers, authors, timing, grouping, counts, failures, and sign-off status. An agent has enough to select and invoke the tool correctly.

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?

The input schema already documents the single 'run' parameter with an example and the title fallback, giving 100% coverage. The tool description adds no additional parameter-level semantics, so the baseline score of 3 is appropriate.

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 that the tool returns the whole run with steps, answers, counts, failures, and sign-off eligibility, so an agent can tell what it does. It does not explicitly differentiate from similar siblings like run_status or run_report, which keeps it from a 5.

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

Usage Guidelines3/5

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

The phrase 'The whole run' implies this is the comprehensive-detail tool, but the description never says when to use it instead of run_status, run_check, or run_report. Usage context is only implied, not explicitly stated.

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

run_sign_offSign off a runA

Sign off a completed run with a name and a date, which freezes it. Refused while a required step is unanswered or failed, unless force is true, and either way the exceptions stay on the record and print on the report.

ParametersJSON Schema
NameRequiredDescriptionDefault
byYesWho is signing it off, as it should read on the document
runYesThe run id, e.g. RUN-2026-0001, or its title when only one carries it
dateNoThe day it was signed, YYYY-MM-DD. Default today
noteNoWhat the signature covers, or the exception being accepted
forceNoSign off even though required steps are unanswered or failed. Default false; the reasons come back either way

TDQS

A4.4/5.0
Behavior5/5

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

No annotations are present, so the description carries the full burden of behavioral disclosure. It transparently describes the freezing side effect, the refusal policy, the force override, and the fact that exceptions persist on the record and print on the report—far beyond a terse 'Signs off a run'.

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

Conciseness5/5

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

The description is two sentences with the primary action front-loaded ('Sign off a completed run with a name and a date, which freezes it') and the crucial conditions packed into the second sentence. Every clause contributes useful information; no wasted words.

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 5-parameter tool with no output schema and no annotations, this description is largely complete: it explains the freezing side effect, refusal logic, force override, and exception persistence. The only notable gap is that it does not describe what happens to the run's status after a successful sign-off beyond 'freezes it', nor what the agent should do when a refusal occurs. Still, it's adequate for an agent to invoke correctly.

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

Parameters3/5

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

Schema description coverage is 100%, with every parameter already documented (by, run, date, note, force). The description adds only high-level references to signing with a name and date and the force flag, which does not materially exceed the schema's own semantic detail. Baseline 3 is appropriate.

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 starts with a specific verb ('Sign off') on a specific resource ('a completed run') and states the effect ('freezes it'), which clearly distinguishes this from sibling tools like run_start, run_status, or run_report. No ambiguity about what this tool does.

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

Usage Guidelines4/5

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

The description provides clear context: it is for completed runs and is refused while required steps are unanswered or failed, unless force is true. It does not explicitly name alternative tools for other situations or advise when to avoid it, but the refusal conditions effectively communicate the expected usage context.

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

run_startStart a run of a checklistA

Start a dated run of a checklist and return its RUN-YYYY-NNNN id. The steps are COPIED into the run, so editing the checklist afterwards never changes a run already under way. Runs are free and never capped.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoThe day the run happened, YYYY-MM-DD. Default today
noteNo
titleYesWhat this run is against, e.g. Van BX21 KLM, February service
checklistYesThe checklist id, e.g. CL-0001, or its name when only one carries it
referenceNoThe job, order or asset id this run belongs to, e.g. WO-2026-0044. Named only; no sibling store is opened

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden, and it discloses the most important behavioral trait: steps are copied into the run so later checklist edits do not affect it. It also states the cost model (free, uncapped) and the returned id. It does not cover failure modes or prerequisites, but the core side-effect semantics are exposed.

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 definition is three short sentences with the purpose and return value front-loaded. The second and third sentences earn their place by explaining snapshot semantics and cost behavior without any wasted words.

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 5-parameter, no-output-schema, no-annotation tool, the description plus schema cover the main workflow: what is started, what is returned, and the key copy-on-start behavior. The only notable gap is that the optional note parameter is not described anywhere, and prerequisites such as the checklist needing to exist are left implicit.

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

Parameters3/5

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

Schema coverage is 80%, so the schema already documents most parameters and the description does not need to repeat them. The description adds no parameter-level meaning beyond the schema; only the optional note parameter remains undocumented in both places.

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 opening verb and object, 'Start a dated run of a checklist', name the exact action and resource, and the return value (RUN-YYYY-NNNN id) is explicitly stated. This clearly separates it from sibling run_* tools, whose verbs point to checking, showing, listing, or deleting runs.

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?

There is no explicit when-to-use or when-not-to-use guidance, and no sibling tool is named as an alternative. The intended use is only implied by the verb 'Start' in the title and first sentence, plus the reassurance that runs are free and never capped.

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

run_statusReopen or abandon a runA

Move a run back to open so a step can be answered again, or abandon it when the job did not happen. A signed-off run is refused: a signature is the point at which a run stops moving.

ParametersJSON Schema
NameRequiredDescriptionDefault
runYesThe run id, e.g. RUN-2026-0001, or its title when only one carries it
dateNoThe day the step happened, YYYY-MM-DD. Default today
noteNoWhy. Kept on the run's history and printed nowhere else
statusYesopen puts a complete run back into edit; abandoned closes it without a signature

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations present, the description carries disclosure weight. It discloses a key behavioral constraint: a signed-off run is refused because a signature is the stopping point. It also implies the tool mutates state by moving runs between 'open' and 'abandoned'. It does not cover every side effect, but it is meaningful and not misleading.

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

Conciseness5/5

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

Two sentences with no filler. The core purpose and the key restriction are front-loaded, and every phrase earns its place. The description reads naturally and is easy to scan.

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?

Despite having no output schema and no annotations, the description explains the two possible state transitions and the critical signed-off exception. It leaves out details like permissions or edge cases, but for an agent selecting this tool among siblings, it is sufficiently contextual to run the operation correctly.

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

Parameters3/5

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

Schema coverage is 100% and the parameter descriptions already clarify the run, status, date, and note fields. The description frames the status values with real-world context, but it does not add a substantial amount of meaning beyond what the schema already provides, so the baseline of 3 is appropriate.

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 title and description clearly state two specific actions: reopen a run or abandon it. It is easy to distinguish from sibling tools like run_sign_off, run_delete, and run_start because it explicitly describes the conditions under which a run is moved to 'open' or 'abandoned'.

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

Usage Guidelines4/5

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

The description gives clear, scenario-based guidance: use it for reopening a run to re-answer steps or abandoning a run when the job did not happen. It also implicitly rules out signed-off runs by stating they are refused. It does not name alternatives by name, but the context is strong and the purpose is not ambiguous.

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. 16 tool updatesv0.21.0
    • First observedchecklist_create
    • First observedchecklist_delete
    • First observedchecklist_item_add
    • First observedchecklist_item_remove
    • First observedchecklist_list
    • First observedchecklist_show
    • First observedlicense_activate
    • First observedlicense_status
    • First observedrun_check
    • First observedrun_delete
    • First observedrun_list
    • First observedrun_report
    • First observedrun_show
    • First observedrun_sign_off
    • First observedrun_start
    • First observedrun_status

TDQS

A4.2/5.0

Scored across 16 tools

Disambiguation4/5

Checklist management tools (create, item_add/remove/show/list/delete) and run tools (start/check/show/list/sign_off/status/report/delete) are clearly separated by prefix. Minor potential confusion between run_show and run_report, but their descriptions clarify different purposes (run_show is a detailed view, run_report a printable export).

Naming Consistency5/5

All tools follow a clear verb_form pattern: license_status/activate, checklist_create/item_add/remove/show/list/delete, run_start/check/show/list/sign_off/status/report/delete. Naming is consistent, predictable, and uses actions that align with the resource lifecycle.

Tool Count5/5

16 tools is well-scoped for a checklist management server covering both template lifecycle and run lifecycle. Each tool has a distinct role, with no redundancy; the count is appropriate for the domain complexity.

Completeness5/5

The server provides complete coverage: create, read, update (via item_add/remove), delete for checklists; start, check, show, list, sign-off, status change, report, delete for runs. Edge cases like abandoning runs and handling signed-off runs are addressed, leaving no obvious gaps in the workflow.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables UI auditing via browser automation, capturing per-element evidence and generating Markdown, JSON, and DOCX reports.
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Default-deny action registry, append-only spend ledger, and human sign-off audit trail (MCP tools).
    6
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Enables local engineering workflow management by consolidating tickets, QA evidence, time tracking, root cause investigation, knowledge, and reporting into a single SQLite database, allowing generation of complete ticket packages for handoffs, dailies, or career evidence.
    23
    4 npm
    MIT