Skip to main content
Glama

Server Details

Hand routine JS/TS tasks to Codemind from your agent. $0.10 per verified build; failures are free.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
91.4% over 24 days
Last Tested
Transport
Streamable HTTP · MCP 2024-11-05
URL

TDQS

A3.7/5.0

Scored across 27 tools

Disambiguation4/5

Most tools have clearly distinct purposes: build vs review vs test vs triage are separate domains, and the get_/stream_ pairs are explicitly differentiated by their descriptions (snapshot vs live follow). The main friction points are the near-miss siblings continue_build (amend acceptance criteria of a running build), continue_batch (resume unfinished stories in a Ship run), and retry_build (re-run a failed build from the same spec), which an agent could plausibly misselect without reading descriptions closely.

Naming Consistency5/5

Every name is snake_case and follows a verb_noun or verb_noun_qualifier pattern (build_feature, get_batch, stream_review, cancel_build, list_repos, notify_files_written). Even the less common shapes like build_from_spec and get_triage_diagnostics fit the same verb-first convention.

Tool Count3/5

27 tools is above the comfortable range and the surface is heavy, but the breadth is genuine: five distinct workflows (builds, batches, reviews, tests, triage) plus account, billing, repos, and usage guidance each need their own entry points. Some redundancy is arguable (get_build_spec, notify_files_written, get_usage_guide), but nothing is clearly gratuitous.

Completeness4/5

Coverage is strong: builds have create/batch/spec/cancel/continue/retry/get/stream/files, reviews and tests each have submit/get/stream, and triage, billing, repos, account provisioning, and usage guidance are present. Minor gaps remain — no list_reviews or list_tests for historical lookup, no delete/build-cleanup operation, and repos appear list-only with no attach/detach tool.

Available Tools

27 tools
build_batchAInspect

Submit several pre-decomposed stories in one call and get back one batchId to track, instead of dispatching build_feature N times yourself. Swarm is a Pro plan feature: the maximum batch size depends on the account plan (up to 50; not available on Free or the base pay-as-you-go account); a batch over the limit is refused with BATCH_SIZE_LIMIT_EXCEEDED and the limit. Each item has the same shape as a single build_feature call (storyTitle, acceptanceCriteria, stackType, existingFiles?, skipTestsFor?) plus its own repoUrl (informational only). Call get_batch with the returned batchId to check aggregate progress.

NameRequiredDescriptionDefault
itemsYes1 to 50 stories to dispatch.
webhookUrlNoFires once when every item in the batch reaches a terminal state. Must be supplied together with webhookSecret.
webhookSecretNoHMAC-SHA256 signing secret (16-256 chars) for the aggregate completion webhook. Must be supplied together with webhookUrl.
idempotencyKeyNoA repeat call with the same key returns the original batchId instead of dispatching again.

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden and does well: it discloses Pro-plan gating, an upper bound (up to 50), unavailability on Free/base pay-as-you-go, and the exact refusal signal (BATCH_SIZE_LIMIT_EXCEEDED with the limit). It does not describe partial-failure semantics within a batch or per-item error behavior, which is the remaining gap.

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

Conciseness4/5

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

Three dense sentences that are front-loaded with the batching purpose before dropping into plan limits and the follow-up call. Everything earns its place, though the plan/limit clause is information-heavy for a single sentence.

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?

No output schema exists, so the description appropriately explains the return value (one batchId) and how to consume it (get_batch for aggregate progress); webhook pairing constraints are handled in the schema. What is missing is what happens when some items in a batch fail while others succeed.

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?

Schema coverage is 100%, so the baseline is 3; the description adds real meaning beyond the schema by stating each item mirrors a build_feature call (storyTitle, acceptanceCriteria, stackType, existingFiles?, skipTestsFor?) plus repoUrl, and that repoUrl is 'informational only' — the schema leaves repoUrl completely undescribed.

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?

Specific verb+resource with explicit scope: 'Submit several pre-decomposed stories in one call and get back one batchId to track.' It directly contrasts itself with the sibling build_feature ('instead of dispatching build_feature N times yourself'), so an agent can distinguish the two without opening either schema.

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?

Names the alternative (build_feature called N times) and the condition that selects this tool (multiple pre-decomposed stories in one dispatch). It also states the plan prerequisite, the failure mode when exceeded, and the follow-up tool (get_batch with the returned batchId).

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

build_featureAInspect

Generate a feature via Codemind: takes a story title + acceptance criteria, generates the implementation and its tests, runs automated checks against the acceptance criteria before returning, and returns a buildId immediately. Call stream_build with the returned buildId to follow progress. Call get_usage_guide for detailed usage guidance. IMPORTANT: if this tool errors, surface the error to the user — do NOT implement the code yourself.

NameRequiredDescriptionDefault
examplesNoOPTIONAL call → result examples, turned directly into test cases (no LLM), so the build is verified against exactly these. Each: { target: repo-relative .ts/.tsx path of the file under test, call: a TS expression such as "clamp(5, 0, 10)", imports?: export names the call uses (default: the component's main export), expected?: JSON value (compared with toEqual) OR throws?: error class name such as "RangeError", async?: true when the call returns a promise }. Exactly one of expected / throws per example; max 50. expected is JSON, so undefined, NaN, -0 and Dates cannot be expressed; describe those in acceptanceCriteria instead. For a new file every example must fail before the implementation exists; in patch mode at least one must fail against the current file (the rest act as regression guards). Only .ts/.tsx targets are supported.
projectIdNoOpaque identifier grouping related builds for CIL codebase context — omit to skip CIL entirely.
stackTypeYesRuntime target stack (free text). JavaScript/TypeScript only at launch, e.g. "worker", "typescript", "node", "react". python, go, swift-ios, kotlin-android and rust are rejected with UNSUPPORTED_STACK_TYPE until each has measured success.
storyTitleYesShort title used to organize this build.
webhookUrlNoHTTPS URL to POST a signed payload to when the build reaches a terminal state (completed/failed). Must be supplied together with webhookSecret.
skipTestsForNoRepo-relative source paths (max 20) to opt OUT of test-file delivery for — e.g. the repo has no test framework and a scaffolded test file would be unwanted. Verification still ALWAYS runs against every component regardless of this setting — it only filters which files are DELIVERED to you, never whether verification happens. If the target project has NO test infrastructure at all, the build will very likely still fail even with this set — there is currently no fallback verification mode (e.g. typecheck-only) for that case. Explicit opt-in only, never infer from acceptanceCriteria prose.
existingFilesNoPATCH MODE — pass current content of files being modified. Without this, codegen creates new files instead of editing existing ones.
webhookSecretNoShared secret (16-256 chars) used to HMAC-SHA256-sign the webhook payload, sent in the x-codemind-v2-signature header. Must be supplied together with webhookUrl. Never echoed back.
acceptanceCriteriaYesDetailed requirements — function signatures, file paths, edge cases. Used verbatim to generate the implementation.

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 disclose meaningful traits: the operation is asynchronous (returns a buildId immediately), verification runs against the acceptance criteria before returning, and there is an explicit error-handling contract. It omits the repo side effects (that it writes implementation/test files into the project) and any auth or rate-limit expectations, leaving a gap for a mutating build tool.

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?

Front-loads the core purpose and workflow in the first sentence, then follow-up routing, then the critical failure-mode warning. Every sentence earns its place with no filler.

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 9-parameter, no-output-schema tool, the description covers the workflow, the immediate return value (buildId), and error behavior, and the schema handles parameter detail. It leaves the eventual build outputs and repo-write side effects to be inferred, which is the only notable 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 schema already documents all 9 parameters in depth. The description only restates that it takes a story title plus acceptance criteria, adding no format or constraint detail beyond the schema; baseline 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?

Names a specific verb+resource (generate a feature) and enumerates the pipeline: generate implementation and tests, run checks against acceptance criteria, return a buildId. It clearly distinguishes itself from read siblings like get_build/get_test, but never contrasts itself with the closest build siblings (build_batch, build_from_spec), so it falls short of 5.

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?

Gives explicit follow-up routing (call stream_build with the returned buildId; call get_usage_guide for details) and a clear failure-mode instruction (surface the error, do NOT implement the code yourself). It never states when to prefer this tool over build_batch or build_from_spec, so no exclusions are offered.

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

build_from_specAInspect

Submit raw PRD/plan/spec text plus a list of target repos; Codemind LLM-decomposes it into stories (each assigned to one of your declared repos, never an invented one) and dispatches them via the same path build_batch uses. Pass dryRun: true to see the decomposed story list without dispatching anything, useful for reviewing before committing. Recommended for a first-time caller: review with dryRun: true, then resubmit the (possibly edited) story list via build_batch directly — a second build_from_spec call with dryRun: false re-decomposes specText from scratch and will not reflect edits made to a prior dry run's output.

NameRequiredDescriptionDefault
reposYes
dryRunNo
deliverNoOpt in to delivery: when every story has finished, open one pull request per target repo (a draft if any story did not verify or the repo's own tests newly fail). Needs the repo attached through the GitHub App; an unattached repo is reported with nextAction attach_repo and its files stay available from get_build_files. Never merged automatically. Results appear under deliveries in get_batch.
specTextYes
maxStoriesNoDefault 20, hard ceiling 50.
webhookUrlNo
webhookSecretNo

TDQS

A4.3/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 delivers real behavioral detail: LLM decomposition, the repo-assignment invariant, dispatch parity with build_batch, and the dry-run non-persistence semantics. It stops short of disclosing auth requirements or the delivery flow (deliver is covered in the schema), so it is strong but not exhaustive.

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?

Purpose is front-loaded in the first sentence and every sentence carries operational content, but the final sentence about re-decomposition is dense and slightly convoluted. No wasted filler, though it could be tightened.

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 7-parameter tool with no annotations and no output schema, the description covers the core call flow well and the schema fills in deliver, maxStories, and existingFiles. Remaining gaps are the webhook parameters and any auth prerequisites, which keeps it short of a 5.

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 only 29%, so the description must compensate more than it does. It meaningfully explains dryRun and the repos/repo-assignment semantics, but webhookUrl, webhookSecret, and hint receive no explanation anywhere, leaving several parameters underspecified.

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 gives a specific verb and resource – submit raw spec text, decompose it into stories, and dispatch them – and explicitly ties the dispatch to the same path build_batch uses. It also states a distinguishing scope rule (each story assigned to a declared repo, never invented), so an agent can separate it from build_batch without opening either schema.

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?

It prescribes exactly when to use dryRun, names the alternative (build_batch) for committing an edited story list, and warns that a second build_from_spec call re-decomposes from scratch. This is explicit when/when-not/alternative guidance rather than implied usage.

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

cancel_buildAInspect

Cancel a running build. Has no effect on builds that already reached a terminal state.

NameRequiredDescriptionDefault
buildIdYesID of the build to cancel.

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 full burden, and it does disclose one genuine behavioral trait: the tool is a no-op on terminal builds. It omits other material traits for a mutation — permission/auth requirements, whether cancellation is reversible, whether it is synchronous or streaming, and what happens to partial build artifacts.

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, zero filler, with the core action front-loaded and the edge-case constraint immediately following. Every clause 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 single-parameter build control tool with no output schema, the description covers the action and the key edge case, which is close to sufficient. It would be complete with a note on return/confirmation behavior and any auth requirement, given there are no annotations to cover those.

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?

There is a single required parameter with 100% schema description coverage ('ID of the build to cancel'), so the schema already does the work. The description adds no format, source, or lookup guidance for buildId, which is the baseline 3 case.

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 gives a specific verb+resource ('Cancel a running build'), which is unambiguous and clearly distinct from the build/retry/continue siblings by verb. It stops short of naming an alternative like retry_build or continue_build, so an agent must infer sibling routing from the verb alone.

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?

It supplies an explicit applicability condition ('running build') and an explicit negative case ('no effect on builds that already reached a terminal state'), which tells the agent when the call is a no-op. It does not name alternative tools for the terminal-state case (e.g., retry_build), so routing guidance is incomplete.

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

continue_batchAInspect

Resume a finished Ship run (started with build_from_spec) that ended incomplete or nothing_delivered: re-dispatches only the stories that did not verify, in the same run. Verified stories are not rebuilt or billed again; a resumed story is billed once, when it first verifies. Each resumed story is told why its earlier attempt failed. At most 2 resumes per run (then RESUME_LIMIT_EXCEEDED). The same throttle, plan cap and allowance apply as for a new submission. Resuming a run with nothing left to do changes nothing. Track progress with get_batch.

NameRequiredDescriptionDefault
batchIdYes

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does so richly: billing semantics (verified stories not rebuilt or billed again, resumed stories billed once on first verification), a hard limit of 2 resumes then RESUME_LIMIT_EXCEEDED, inherited throttle/plan cap/allowance rules, and failure context passed to each resumed story. This is exactly the behavioral context an agent needs before invoking.

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

Conciseness5/5

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

Purpose and origin are front-loaded in the first clause, followed by behavior, constraints, and error condition in tight sentences. Every sentence carries distinct, decision-relevant information with no filler.

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?

No output schema or annotations exist, so the description must cover behavior end to end, which it does: preconditions, billing, limits, error code, and a progress-tracking sibling. An agent has everything needed to call this 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 0% and the single required batchId has no description, so the schema contributes nothing. The description implies batchId identifies the finished run ('resume a finished Ship run ... in the same run') but adds no format or sourcing detail. It partially compensates but not fully.

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 (resume/re-dispatch) and resource (a finished Ship run started with build_from_spec) and scopes it to stories that did not verify. An agent can distinguish this from retry_build or continue_build based on the description alone.

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?

Gives a clear triggering condition — the run ended incomplete or nothing_delivered — and notes the no-op case when nothing is left to do, plus 'Track progress with get_batch.' It does not explicitly contrast with the similarly named continue_build or retry_build siblings, leaving a routing gap.

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

continue_buildAInspect

Send corrected acceptance criteria to a running build. Applies to components that have not started generating yet; the currently-generating component finishes as originally scoped.

NameRequiredDescriptionDefault
buildIdYesID of the running build to steer.
correctedAcceptanceCriteriaYesThe new, complete acceptance criteria — replaces the original for all not-yet-started components.

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 a genuinely non-obvious partial-application rule: already-started components are unaffected and criteria replacement only applies to not-yet-started work. It omits auth needs, idempotency/multiple-call behavior, and what happens if the build already finished.

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 waste; the action is front-loaded and the scoping caveat follows immediately.

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 2-param mutation tool with no annotations and no output schema, the description covers the trickiest behavior (who is and isn't affected). It still lacks auth/permission context and failure modes, which matters more here because no annotations fill that 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 both parameters are already documented. The description adds only the replacement semantics ('replaces the original for all not-yet-started components'), which is marginal beyond the schema's own wording. Baseline 3 applies.

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?

States a specific verb+resource: 'Send corrected acceptance criteria to a running build.' This is clearly distinct from cancel_build, retry_build, or get_build. It does not name a sibling tool to contrast against, but the action is unambiguous.

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

Usage Guidelines4/5

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

Provides a clear applicability condition: only components that have not started generating are affected, and the in-flight component finishes as originally scoped. This is an explicit when-not constraint, though no alternative tool is named for the excluded case.

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

create_free_accountAInspect

Instantly provision a new anonymous Codemind account on the free plan — no credential, no human step required. Call this when build_feature (or any other tool) fails with an auth error and no CODEMIND_API_KEY is configured. Returns a tenantId and a bearer token (apiKey) usable immediately for build_feature and every other tool. The account is anonymous (no identity attached) until a person opens the claim link in the response text and signs in. If a tool call fails with an auth error and you ALREADY have a configured apiKey, call get_usage_guide with topic "auth" before calling this tool again — replacing an already-claimed account's credential here loses its identity and history. All arguments are optional; pass utm_source, utm_medium and utm_campaign, and invite, only if your human gave you them.

NameRequiredDescriptionDefault
inviteNoOptional invite code from an invite link your human gave you. Case-sensitive; pass it exactly as given. An invalid or used-up code is ignored.
ph_didNoOptional web visitor id from a setup link or command your human gave you (--ph-did). Pass it exactly as given; an invalid value is ignored.
utm_mediumNoOptional marketing medium tag, e.g. "launch". Same format as utm_source.
utm_sourceNoOptional marketing source tag, e.g. "producthunt". Lowercase letters, digits, "_", "." and "-", max 64 characters; anything else is ignored.
utm_campaignNoOptional campaign tag, e.g. "ph-2026-10-08". Same format as utm_source.

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations to lean on, the description carries the full burden and does: it discloses the return values (tenantId, apiKey bearer token), the anonymous-until-claimed lifecycle, and a real destructive consequence — replacing an already-claimed account's credential 'loses its identity and history'. That is the kind of side-effect warning an agent cannot infer from the schema.

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?

Front-loads purpose, then the trigger, then the side-effect warning. Five sentences is on the long side, but nearly every clause carries operational weight (auth precondition, sibling routing, claim-link lifecycle, credential-replacement warning), so little is wasted.

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?

No output schema exists, and the description compensates by describing the response (tenantId, bearer token, claim link in response text). Auth preconditions, optional-parameter policy, and lifecycle consequences are all covered — nothing an agent needs to invoke this 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?

Schema coverage is 100%, so the baseline is 3, but the description adds a genuine usage constraint the schema does not: 'All arguments are optional; pass utm_source, utm_medium and utm_campaign, and invite, only if your human gave you them.' That governs when to supply them rather than just their format.

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?

Opens with a specific verb+resource+scope: 'Instantly provision a new anonymous Codemind account on the free plan — no credential, no human step required.' An agent can distinguish this account-provisioning tool from the surrounding build/review/test siblings 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?

States exactly when to call it ('build_feature ... fails with an auth error and no CODEMIND_API_KEY is configured') and names the alternative plus its trigger ('if you ALREADY have a configured apiKey, call get_usage_guide with topic "auth" before calling this tool again'). When-to-use, when-not-to-use, and the sibling alternative are all explicit.

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

get_batchBInspect

Get the aggregate status of a batch submitted via build_batch.

NameRequiredDescriptionDefault
batchIdYes

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 behavioral burden. It doesn't state whether this is read-only, what 'aggregate status' values exist, whether it polls or blocks, or whether unauthenticated access is allowed. The phrase 'aggregate status' adds some semantics but leaves core behavior opaque.

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, front-loaded sentence with no wasted words. It's appropriately sized for a simple getter and easy to scan.

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?

No output schema and no annotations, so the description is the only source of behavioral and return-value information. It says what it gets but not what the aggregate status contains or how to interpret the result, leaving an agent able to call it but not to use its output confidently.

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 for the undocumented batchId parameter. It only implies batchId refers to a batch from build_batch, but gives no format, source, or validation details, leaving the required parameter underspecified.

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?

States a specific verb (Get) and resource (aggregate status of a batch), and links it to a sibling tool (build_batch) so the agent can see the submission-tracking relation. It doesn't differentiate from get_build or list_builds, but the 'aggregate status' and 'batch' phrasing is reasonably distinct.

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 tying the tool to a batch created via build_batch, so an agent knows it applies after submission. However, it gives no explicit when-to-use vs. get_build/list_builds, nor any condition or exclusion guidance.

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

get_billing_statusAInspect

Read-only: your plan, how many verified builds you have used, how many are included and left in the current allowance window, and the paid-balance draw (cents) if you have topped up. Call this to check headroom before a large batch, or to learn why a build was rejected for allowance.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/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 explicitly self-declares 'Read-only,' which is the key safety trait, plus it discloses the monetary unit (cents) and that the draw only appears if topped up. It omits auth/account prerequisites and data freshness, but for a status read this is solid disclosure.

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 'Read-only' safety signal and the returned fields, then the usage trigger. Every clause carries information and nothing is redundant.

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?

There are no parameters and no output schema, so the description must describe the return payload itself — which it does by listing the reported fields. Minor ambiguity remains around the 'allowance window' (reset cadence/definition), but an agent has enough to call and interpret the result 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 tool takes zero parameters, so there is nothing for the description to disambiguate. Baseline 4 applies; no parameter-related gaps exist.

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 gives a specific verb-implied resource (billing/plan status) and enumerates exactly what is reported: plan, verified builds used, included/remaining allowance, and paid-balance draw in cents. No sibling tool covers billing, so an agent can confidently distinguish it from get_usage_guide or list_builds.

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?

It states two concrete invocation contexts: checking headroom before a large batch and diagnosing an allowance-based rejection. That is clear when-to-use guidance. It stops short of naming alternatives or stating when not to call it, so it falls short of a 5.

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

get_buildBInspect

Get the current state of a build by ID (status and error details).

NameRequiredDescriptionDefault
buildIdYesThe build ID.

TDQS

B3.4/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 the returned content (status and error details), which is genuinely useful, but it never confirms this is a side-effect-free read, nor mentions auth requirements, polling behavior, or rate limits.

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 sentence, front-loaded with the action and resource, with the return-content qualifier attached compactly. No filler or redundancy.

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 single-parameter read tool with no output schema, the parenthetical return summary substitutes adequately for a documented response shape, and the one required param is fully described. Missing only the operational context (read-only nature, polling) that would make it fully self-contained.

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?

There is a single parameter with 100% schema description coverage ('The build ID.'), so the schema does the heavy lifting. The description's 'by ID' adds no syntax, format, or source-of-ID detail beyond what the schema already provides, matching the baseline 3 for high-coverage schemas.

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?

States a specific verb (get) and resource (build) scoped by ID, and the parenthetical '(status and error details)' signals it returns state rather than files or spec. It implicitly distinguishes itself from get_build_files/get_build_spec but never names those siblings or stream_build explicitly, so differentiation is inferential 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 Guidelines2/5

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

The description offers no when-to-use guidance, no exclusions, and no mention of alternatives such as stream_build (for live updates) or list_builds (for finding an ID). The intended use can be inferred, but nothing is stated.

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

get_build_filesAInspect

Retrieve the generated files from a completed build. Returns each file path and full content.

NameRequiredDescriptionDefault
buildIdYesThe build ID.

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 does disclose the return payload shape ('each file path and full content'), which is useful given there is no output schema, but it omits whether the operation is read-only (implied), how it behaves on an incomplete build, and whether large file sets are paginated or truncated.

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 short sentences with zero filler; the resource and the precondition are front-loaded and the return shape is stated second. Nothing in the text is redundant.

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 one-parameter read tool with no output schema and no annotations, the description covers the essential call path and pre-emptively describes the return value. It is only mildly incomplete in not addressing failure or partial-build conditions.

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?

There is a single parameter and schema description coverage is 100%, so the schema already documents buildId. The description adds no meaning beyond the schema (e.g., where buildId comes from, format expectations), which matches the baseline 3 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?

States a specific verb (Retrieve) and resource (generated files from a completed build), which is more precise than the bare name suggests. It does not, however, differentiate itself from close siblings such as get_build or get_build_spec, so an agent must infer which one returns file contents versus metadata or spec.

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 'from a completed build' implies a precondition (the build must have finished), which is real usage guidance. There is no explicit when-to-use-vs-alternative statement, no mention of what to do for in-progress builds, and no pointer to get_build or list_builds for obtaining the buildId.

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

get_build_specAInspect

Get a build's original submitted spec (storyTitle, acceptanceCriteria, stackType, existingFiles, skipTestsFor) without retrying it — useful for inspecting or reusing a prior build's spec as a template.

NameRequiredDescriptionDefault
buildIdYesThe build ID.

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 full behavioral burden, and it does disclose one important trait: this read does not retry the build and returns the *original submitted* spec rather than current state. However, it says nothing about permission requirements, error behavior for missing/invalid build IDs, or whether the spec is a snapshot versus a live view, so disclosure is partial.

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 sentence, front-loaded with the verb and resource, with the field enumeration and the key "without retrying" qualifier packed in without filler. Every clause contributes to identifying the tool or its constraints.

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?

With no output schema, the description compensates by listing the spec fields the caller can expect, which is the main missing structured information. It is nearly complete for a one-parameter read tool; only the distinction between the original and any current spec version is left slightly under-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% and there is a single trivial buildId parameter, so the baseline of 3 applies. The description adds no naming, format, or sourcing detail for buildId beyond what the schema already states.

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?

"Get a build's original submitted spec" names a specific verb and resource, and the parenthetical enumerates exactly what the spec contains (storyTitle, acceptanceCriteria, stackType, existingFiles, skipTestsFor). It implicitly separates itself from retry_build via "without retrying it," but it never explicitly contrasts with get_build or build_from_spec, so sibling differentiation is only partial.

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?

"Useful for inspecting or reusing a prior build's spec as a template" gives a concrete when-to-use condition (inspection/reuse as template) and implicitly steers toward build_from_spec for the reuse path. There is no explicit exclusion or named alternative, so it falls short of full when/when-not guidance.

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

get_reviewAInspect

Get the current state of a review by ID (status, verdict, findings) without streaming — useful for polling or inspecting a review after the fact. Use stream_review to follow a review in real time instead.

NameRequiredDescriptionDefault
reviewIdYesThe reviewId returned by review_code.

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 usefully discloses the non-streaming, snapshot nature of the call and that it is intended for polling, which is real context beyond the schema. However, it says nothing about whether the operation is read-only, permission requirements, or behavior for an unknown/expired reviewId.

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 tightly written sentences with no filler. The core purpose is front-loaded and the disambiguation against stream_review follows immediately, so nothing needs to be skimmed for.

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?

There is no output schema, so the description compensates by naming the returned fields (status, verdict, findings), which is exactly what an agent needs. The only gap is undefined error behavior for invalid or unknown reviewIds, a minor omission for such a simple lookup.

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% and the single parameter is already documented as 'the reviewId returned by review_code'. The description does not add syntax, format, or provenance details beyond what the schema already supplies, so the baseline 3 applies.

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 ('Get the current state of a review by ID') and enumerates what the state contains (status, verdict, findings). It also explicitly differentiates itself from the sibling stream_review, so an agent can select between them without opening either schema.

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?

Gives the positive case ('useful for polling or inspecting a review after the fact') and names the alternative with the condition that selects it ('Use stream_review to follow a review in real time instead'). This is explicit when/when-not/alternative guidance.

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

get_testAInspect

Get the current state of a test by ID (status, pass/fail verdict, generated verification test content) without streaming — useful for polling or inspecting a test after the fact. Use stream_test to follow a test in real time instead.

NameRequiredDescriptionDefault
testIdYesThe testId returned by test_component.

TDQS

A4.4/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 full burden, and it does meaningful work: it declares the non-streaming, one-shot snapshot behavior ('without streaming'), which is the key trait distinguishing it from stream_test, and names the returned fields. It stops short of disclosing error/not-found behavior, retention of results, or polling cost, so it is strong but not exhaustive.

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, zero filler, front-loaded with the purpose and return contents before the routing advice. Every clause 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?

With no output schema and no annotations, the description compensates by enumerating the returned fields (status, verdict, generated test content), so an agent knows what to expect. It omits failure modes (invalid/stale testId) and whether the read is cheap to poll repeatedly, which are the remaining 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?

Only one parameter (testId) and schema description coverage is 100%, with the schema itself explaining that it comes from test_component. The description adds only 'by ID', so the baseline 3 for a schema-complete single parameter 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 (get), resource (test), keying mechanism (by ID), and enumerates what it returns: status, pass/fail verdict, generated verification test content. It also explicitly distinguishes itself from the sibling stream_test, so an agent can pick between them without opening either schema.

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?

Gives both a positive condition ('useful for polling or inspecting a test after the fact') and an explicit alternative with the condition that selects it ('Use stream_test to follow a test in real time instead'). This is the when/when-not/alternative pattern done fully.

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

get_triage_diagnosticsAInspect

Returns the generated fix diff (as file paths and line counts, not full content) and before/after test-run output for one triage run, identified by the triage run id from get_triage_runs (NOT a build id and NOT an issue number). stdout/stderr are tail-truncated because test failure summaries appear at the end of output, not the install noise at the start. Full file contents are available separately via the get_build_files tool using the run's buildId. Also includes a per-LLM-call trace (stage/model/status/latency) from Analytics Engine when available, covering attempts that failed before ever reaching the before/after test comparison above.

NameRequiredDescriptionDefault
triageRunIdYesThe triage run id, as returned by get_triage_runs (the first token of each line), not the build id or issue number.

TDQS

A4.1/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 does well: it discloses that outputs are tail-truncated and why (failure summaries sit at the end, install noise at the start), that diffs are path+line counts rather than content, and that the LLM trace is conditional ('when available'). It does not describe failure behavior for an unknown/mismatched run id, leaving one behavioral gap.

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

Conciseness4/5

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

Three dense sentences with the primary return value front-loaded and parenthetical caveats kept tight; every clause carries information (truncation rationale, alternatives, trace fields). Slightly overloaded with nested asides, but no filler sentences.

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?

With no output schema, the description does the heavy lifting by enumerating the return payload (fix diff, before/after test output, per-LLM-call trace with stage/model/status/latency) and the files alternative. Only error/edge conditions and any size or pagination behavior remain unstated.

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 schema description already spells out 'the triage run id, as returned by get_triage_runs ... not the build id or issue number'. The description restates the same disambiguation in the parameter's context, adding emphasis rather than new meaning. Baseline 3 is appropriate when the schema does the heavy lifting.

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+resource ('Returns the generated fix diff ... and before/after test-run output for one triage run') and immediately differentiates itself from siblings by naming get_triage_runs (id source) and get_build_files (full contents). An agent can distinguish it from get_test, get_build, or get_build_files without opening any schema.

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

Usage Guidelines4/5

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

Gives explicit preconditions and anti-patterns: the id must come from get_triage_runs and is 'NOT a build id and NOT an issue number', and it routes to get_build_files for full file content. It stops short of stating when this tool is unnecessary (e.g. when the run is still in progress or when only a build-level view is wanted), so it is strong but not fully exhaustive.

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

get_triage_runsAInspect

Lists the issue-triage run history for one attached repo — one row per GitHub issue that was auto-triaged — including terminal status (pr_opened means a fix PR was opened and passed the repo's own test suite; needs_human means the issue wasn't judged auto-fixable; failed means the triage/build/verify pipeline errored). The repoAttachmentId is the attachment id returned by list_repos, NOT a owner/repo string. Full diagnostics (the generated diff and before/after test output) for any run id returned here are available via the get_triage_diagnostics tool.

NameRequiredDescriptionDefault
repoAttachmentIdYesThe repo attachment id, as returned by list_repos (not an owner/repo string).

TDQS

A4.1/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 does well: it decodes the terminal status values (pr_opened, needs_human, failed) and their meanings, and clarifies the repoAttachmentId format. It omits pagination/ordering behavior, keeping it out of the top tier.

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?

Front-loaded with the core action, then parenthetical status definitions and the follow-up pointer. It is a bit dense but each clause adds usable information, so little is wasted.

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?

With no output schema and no annotations, the description usefully explains the return shape (one row per issue with terminal statuses) and the diagnostics follow-up path. It is nearly complete, lacking only ordering/pagination details an agent might want.

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% with a single parameter whose schema description already states it is not an owner/repo string. The description's identical clarification adds no meaning beyond the schema, so the baseline 3 for a fully documented single param applies.

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 (Lists) and resource (issue-triage run history) with clear scope (one attached repo, one row per auto-triaged issue). An agent can distinguish it from siblings like get_triage_diagnostics without opening a schema.

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

Usage Guidelines4/5

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

Explicitly routes the agent to get_triage_diagnostics for follow-up diagnostics, which implies when this listing tool is the entry point. It does not, however, state when-not to use it or contrast with sibling listing tools such as list_repos, so it falls short of full when/when-not guidance.

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

get_usage_guideAInspect

Get detailed usage guidance for Codemind's tools — how to write effective acceptanceCriteria, when to use patch mode, how webhooks work, what to do when a build declines, common failure patterns unrelated to acceptanceCriteria quality, and how to recover from an auth error without losing an identified account. Call this before build_feature/test_component/review_code if you are unfamiliar with this tool surface, or if the same story fails repeatedly across retries; call it with topic "auth" before calling create_free_account to recover from an auth error on an existing credential.

NameRequiredDescriptionDefault
topicNoWhich part of Codemind usage to get guidance on. Defaults to overview.

TDQS

A4.3/5.0
Behavior3/5

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

No annotations are provided, so the description carries the disclosure burden. It conveys intent and call timing well, and the tool is implicitly a safe read of documentation, but it never states side effects, whether the call is read-only, or what the response contains. For a pure knowledge-retrieval tool this is adequate but 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.

Conciseness4/5

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

Purpose is front-loaded in the opening clause, and each subsequent clause maps to a topic or a routing rule rather than padding. It is dense — essentially two long sentences with embedded lists — but nothing appears redundant with the schema.

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 one-parameter, zero-required, annotation-free retrieval tool with no output schema, the description covers purpose, call timing, and topic routing well. The only real gap is the unmentioned "cloud-swarm" topic and any indication of the response shape, both minor here.

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?

Schema coverage is 100% with an enum and a per-field description, so the baseline is 3. The description lifts this above baseline by mapping topic values to concrete content (acceptanceCriteria guidance, patch mode, webhooks, error handling, auth recovery) and by prescribing "auth" for a specific recovery scenario.

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 ('Get detailed usage guidance for Codemind's tools') and then enumerates the concrete subject matter covered (acceptanceCriteria authoring, patch mode, webhooks, build declines, auth recovery). No sibling tool provides guidance, so it is trivially distinguishable from build_feature, review_code, etc.

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?

Gives explicit triggers: call before build_feature/test_component/review_code when unfamiliar with the surface, or when the same story fails repeatedly across retries. It also routes a specific case — topic "auth" before create_free_account to recover from an auth error — naming both the alternative and the condition that selects it.

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

list_buildsCInspect

List recent builds for this tenant.

NameRequiredDescriptionDefault
limitNoMax builds to return (default 20, max 50).
offsetNoPagination offset (default 0).

TDQS

C2.9/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 disclosure burden. It conveys tenant scoping, but omits ordering guarantees, what a build record contains, and whether the result set is capped or paginated beyond what the schema hints at. For a list tool with zero annotation coverage this is thin.

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 front-loaded sentence with zero filler; the scope (tenant) is stated immediately. It is efficient, though arguably terse to the point of under-specification rather than maximally useful.

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 read-only list tool with no annotations and no output schema, the definition is minimally viable. It covers scope and the schema covers pagination, but the agent gets no sense of result content, ordering, or how this differs from get_build.

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%, and both limit and offset are fully documented there with defaults and maximums. The description adds only the vague notion of recency and no parameter-level detail, so the baseline 3 applies.

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: list builds, scoped to the tenant. It reads as distinct from the singular get_build sibling by verb alone, but it never names or differentiates itself from that sibling, so an agent must infer the list-vs-get split.

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 explicit when-to-use guidance and no mention of alternatives such as get_build or stream_build. The word "recent" implies a browsing use case but gives no threshold or condition for choosing this tool over other build tools.

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

list_reposAInspect

Lists GitHub repos currently attached to the caller's tenant via Codemind Resolve (the GitHub App that automatically triages filed issues into fix PRs), and that the returned id field is the repo attachment id to pass into get_triage_runs.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations and no output schema, the description carries the full burden. It does disclose one important behavioral fact — that the returned `id` field is a repo attachment id intended for get_triage_runs — but says nothing about pagination, ordering, auth requirements, or the other fields returned.

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, front-loaded with what is listed. It is efficient, though the trailing 'and that the returned `id` field...' clause is grammatically tangled and slightly slows comprehension.

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 parameterless read-only list tool with no output schema or annotations, the description covers purpose, scope, and the key return field's downstream use. It stops short of describing the shape of the returned repo records, which is the main remaining gap.

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 takes zero parameters, so there is nothing for the description to clarify and the baseline of 4 applies. No parameter confusion is possible.

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?

States a specific verb and resource ('Lists GitHub repos attached to the caller's tenant') and scopes it to Codemind Resolve. It does not explicitly contrast with list_builds or other list_* siblings, but the resource is distinct enough that an agent can tell them apart.

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 workflow by naming get_triage_runs as the downstream consumer of the returned `id`, which is useful routing context. However, it gives no explicit when-to-use vs when-not guidance and no prerequisites.

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

notify_files_writtenAInspect

Index files into the CIL codebase context for a project — for files Codemind itself did not generate (a manual edit, another tool's output). Not needed after a normal build_feature call: a completed build's own output is indexed automatically when projectId was supplied.

NameRequiredDescriptionDefault
filesYesFiles to index, ≤10 files / ≤700KB total.
projectIdYesOpaque project identifier — same value used in build_feature calls for this codebase.

TDQS

A4.1/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 usefully discloses the automatic-indexing behavior of completed builds, but says nothing about failure semantics, whether re-indexing overwrites prior content, latency/synchronicity, or any permission requirements for a state-mutating operation.

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, zero filler, and the concrete purpose is front-loaded before the usage caveat. The second sentence exists to prevent a redundant call and therefore earns its place.

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?

No annotations and no output schema, so the description should carry more: it never describes what the caller gets back, whether the operation is synchronous, or what happens when the file-count/size limits are exceeded. It is adequate for choosing the tool but incomplete for invoking it confidently.

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% — path, content, projectId, and the ≤10 files / ≤700KB limits are all documented in the schema. The description adds no parameter-level meaning beyond what the schema already provides, so the baseline 3 applies.

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 ("Index files into the CIL codebase context for a project") and immediately scopes it to a particular class of files, which no sibling name conveys. It is clearly distinguishable from build_feature and the other build/stream siblings from the description alone.

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?

Gives an explicit when-to-use ("for files Codemind itself did not generate — a manual edit, another tool's output") and an explicit when-not-to-use ("Not needed after a normal build_feature call"). It names the competing tool and the condition (projectId supplied at build time) that makes this tool unnecessary.

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

retry_buildBInspect

Retry a failed build using the same spec (story, acceptance criteria, stack, existing files).

NameRequiredDescriptionDefault
buildIdYesID of the failed build to retry.

TDQS

B3.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 behavioral burden. It discloses that the retry uses the same spec including existing files, but says nothing about whether a new build is created, side effects on the failed build, permissions required, or any rate limits. For a mutation tool with zero annotation coverage, this is a significant gap.

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 front-loaded sentence with no filler. The verb and object lead, and the parenthetical detail about spec reuse is compact and informative. Nothing is wasted.

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 tool, the description conveys the core action and spec reuse. However, with no annotations and no output schema, it leaves open important context such as return values, whether the failed build is replaced, and any asynchronous behavior. Adequate but with clear 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%, and the single parameter buildId is fully documented in the schema as 'ID of the failed build to retry.' The description adds no additional syntax, format, or constraint information beyond the schema, so the baseline of 3 applies.

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

Purpose4/5

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

States a specific verb ('Retry') and resource ('a failed build') with the key qualifier that it reuses the same spec (story, acceptance criteria, stack, existing files). This distinguishes it from build_from_spec, which would require a fresh spec, but it does not explicitly name or contrast with sibling tools like continue_build or build_from_spec.

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 'Retry a failed build' implies the context of use, but there is no explicit guidance on when to use this versus alternatives such as continue_build, build_from_spec, or build_feature. No exclusions or prerequisites are stated.

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

review_codeAInspect

Submit code for review: bugs, security issues, silent failures, and style concerns. Give it files (path+content) and/or a unified diff. At least one of files or diff is required — submitting neither is rejected. TWO independent LLM-judge passes review it (a general correctness/security pass and a dedicated silent-failure pass) and their findings are merged into one verdict. For a genuinely useful review, ALSO supply conventions (paste this project's CLAUDE.md and RULES.md content — you already have repo access, this tool does not) so both passes can enforce project-specific rules, and relatedFiles (any existing file the change references but doesn't itself modify — an interface being implemented, a caller of a changed function, a sibling example of the real convention) so findings can be verified against actual code instead of guessed. Omitting both still works but produces a weaker review with no codebase grounding. No code generation or execution happens here — this is judgment only, not test verification (use test_component for that). Returns a reviewId immediately; call stream_review to follow progress and get the findings. Call get_usage_guide for detailed usage guidance.

NameRequiredDescriptionDefault
diffNoA unified diff. The reviewer weights changed lines most heavily. Combined with files, must not exceed 150,000 characters.
filesNoFull file contents to review. Provide when you want the reviewer to see complete files, not just a diff.
contextNoOptional story/PR description to give the reviewer intent context.
conventionsNoThis project's CLAUDE.md and/or RULES.md content (or the relevant excerpt). Strongly recommended when available — both review passes treat this as authoritative: a finding that violates a stated rule here is always blocking.
relatedFilesNoExisting files for cross-reference ONLY — never diffed, never themselves the subject of a finding. Supply an interface the change implements, a caller of a changed function, or a sibling file showing the project's real convention, so the reviewer can verify claims against real code instead of guessing.

TDQS

A4.8/5.0
Behavior5/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: it discloses the two-pass LLM-judge architecture, that findings are merged into one verdict, the rejection behavior when neither files nor diff is supplied, and the async contract (returns a reviewId immediately; call stream_review to follow progress). This is rich behavioral context beyond what any structured field provides.

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?

Front-loaded with purpose and the hard constraint, and every section maps to a real decision an agent must make. It is somewhat verbose in the conventions/relatedFiles rationale, but the length is justified by a five-parameter tool with an async contract and no annotations.

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?

No output schema exists, yet the description explains the return (reviewId) and how to retrieve findings (stream_review), plus the input rejection rule and the guidance needed to get a strong review. An agent has everything required to call it correctly and follow up.

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?

Schema coverage is 100%, so the baseline is 3. The description adds genuine meaning beyond the schema: the mutual-requirement constraint that at least one of files or diff must be present (not visible since required is empty), the authoritative/blocking weight of conventions, and the intent behind relatedFiles as cross-reference-only grounding. It largely echoes the schema wording, which caps it below 5.

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 (submit) and resource (code for review) and enumerates the review scope: bugs, security issues, silent failures, style. It explicitly distinguishes itself from siblings by naming test_component for test verification, so an agent can route correctly without opening the schema.

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

Usage Guidelines5/5

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

Gives explicit when-to-use conditions (supply files and/or a diff, at least one required), when-not (no code generation or execution; use test_component for test verification), and detailed guidance on when to add conventions and relatedFiles versus the weaker review that results from omitting them. Nothing is left to inference.

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

stream_batchAInspect

Stream live progress for a batch submitted via build_batch. Polls the batch's aggregate status periodically and emits a progress notification each tick; closes once the batch reaches a terminal status (completed or completed_with_failures). Call get_batch instead for a single point-in-time snapshot.

NameRequiredDescriptionDefault
batchIdYes

TDQS

A4.4/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 does a good job: it explains the polling model ('polls the batch's aggregate status periodically'), the per-tick notification behavior, and the exact termination condition, naming both terminal statuses (completed, completed_with_failures). It stops short of stating the poll interval, error/timeout behavior, or whether the call blocks until completion, which leaves some uncertainty about calling semantics.

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 clauses, each earning its place: the core action, the observable lifecycle, and the routing alternative. Front-loaded with the streaming behavior and no redundant restatement of the name or title.

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 single-parameter streaming tool with no annotations and no output schema, the description covers the essential contract: what triggers it, what it emits per tick, and when it closes. It omits the shape of the progress notification payload and the polling cadence, so an agent knows the lifecycle but not the payload it will receive.

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 0% and batchId has no type or format guidance, but the description supplies the key semantic link: the ID refers to a batch produced by build_batch, which tells the agent where the value comes from. No format, validation, or lookup hint is added, so it is adequate but not generous.

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 ('Stream live progress for a batch') and immediately ties the resource to its origin ('submitted via build_batch'), which identifies the correct input domain. It also distinguishes itself from the sibling get_batch by contrasting live streaming with a point-in-time snapshot.

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?

Gives an explicit alternative and the condition that selects it: 'Call get_batch instead for a single point-in-time snapshot.' The streaming use case (watching progress until a terminal state) is stated directly, so an agent can choose between the two without guessing.

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

stream_buildAInspect

Follow a build submitted by build_feature in real time. Emits a progress notification on every phase change and resolves with the final result when the build completes or fails. Use immediately after build_feature returns a buildId.

NameRequiredDescriptionDefault
buildIdYesThe buildId returned by build_feature.

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 behavioral burden and does reasonably well: it discloses streaming semantics ('emits a progress notification on every phase change') and both termination paths ('resolves with the final result when the build completes or fails'). It omits whether the call blocks, whether it can be cancelled, and any auth or timeout constraints.

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: identity of the resource first, then runtime behavior, then the call-timing rule. Every sentence earns its place and the most decision-relevant 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?

For a single-parameter streaming tool with no annotations and no output schema, the description covers what an agent needs to invoke it and what to expect back in kind (progress notifications, final result). The shape of the emitted notifications and final result is left unspecified, which is the only real 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% and the single parameter is already documented as 'The buildId returned by build_feature.' The description restates the same provenance without adding format or validity details, so the schema does the heavy lifting and the baseline 3 applies.

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 ('Follow a build ... in real time') and anchors it to the sibling that produces the input ('a build submitted by build_feature'), which implicitly separates it from polling siblings like get_build and list_builds.

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?

'Use immediately after build_feature returns a buildId' gives an explicit triggering condition and ordering relative to another tool. It does not, however, state when NOT to use it (e.g., when a build has already finished, use get_build instead), so it falls short of full alternative routing.

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

stream_reviewAInspect

Follow a review submitted by review_code in real time. Resolves with the findings and the approve/request-changes verdict.

NameRequiredDescriptionDefault
reviewIdYesThe reviewId returned by review_code.

TDQS

A3.6/5.0
Behavior3/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 usefully discloses what the tool resolves with (findings plus approve/request-changes verdict), but says nothing about failure modes, timeouts, cancellation, or whether the call blocks until completion.

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 short sentences with zero waste, and the core behavior (real-time follow, then resolve with findings and verdict) 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?

With no output schema, the description correctly explains what the tool resolves with, which is the key missing piece. It is nearly complete but omits stream/error behavior that matters for a long-running real-time call.

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 there is a single parameter, so the schema already documents reviewId. The description adds only that the id is 'returned by review_code', which the schema also states, so baseline 3 applies.

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?

States a specific verb+resource ('Follow a review ... in real time') and names the origin tool (review_code). It implicitly contrasts with the polling sibling get_review via 'in real time', but never names that sibling, so an agent must infer the streaming-vs-polling distinction.

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: the description ties it to a review submitted by review_code, suggesting it is called after that. However, it does not state when to prefer this over get_review, nor any preconditions such as the review needing to be in progress.

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

stream_testAInspect

Follow a test submitted by test_component in real time. Resolves with the pass/fail verdict and the generated verification test content.

NameRequiredDescriptionDefault
testIdYesThe testId returned by test_component.

TDQS

A3.8/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 burden and does disclose the key traits: the call streams/follows in real time and 'resolves with the pass/fail verdict and the generated verification test content.' It omits auth needs, timeouts, and failure modes, but the core behavioral profile of a long-lived streaming call is communicated.

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, zero filler. The action and its real-time nature lead, and the resolution behavior follows immediately — every clause 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 single-parameter streaming tool with no output schema, the description supplies the essential missing piece: what the call resolves with (verdict plus generated test content). It is nearly complete, lacking only edge-case behavior such as failure/timeout handling.

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?

Only one parameter exists and schema description coverage is 100%, so the schema already documents testId fully (including its origin from test_component). The description adds no syntax or format detail beyond that, so baseline 3 applies.

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?

States a specific verb and resource — follow/stream a test submitted by test_component — and the 'in real time' framing implicitly distinguishes it from the non-streaming get_test sibling. It does not name the sibling explicitly, so an agent must infer the routing rather than being told.

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

Usage Guidelines3/5

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

The phrase 'Follow a test submitted by test_component in real time' implies the usage context (after test_component has produced a testId, when you want live updates), but there is no explicit when-to-use versus get_test or when-not guidance.

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

test_componentAInspect

Run standalone cloud verification on code you already have: give it a component (filePath/exportName/signature) plus acceptance criteria, and it generates a black-box verification test, validates that test against a mechanical stub, then executes your REAL code against it in the cloud (isolate or container, per stack). No code generation happens here — use build_feature for that. Returns a testId immediately; call stream_test to follow progress and get the pass/fail verdict. Call get_usage_guide for detailed usage guidance.

NameRequiredDescriptionDefault
codeYesThe REAL implementation to test. Never shown to the model that generates the verification test.
componentYesMUST match the real code exactly — the generated verification test imports/calls by these exact names.
stackTypeYesRuntime target stack (JavaScript/TypeScript only at launch), e.g. "worker", "typescript", "node", "react".
contextFilesNoOptional ambient read-only files the code under test may import.
acceptanceCriteriaYesWhat the code must do — the verification test is generated from this alone.

TDQS

A4.4/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 and does well: it discloses the verification pipeline, that execution happens in the cloud (isolate or container per stack), that validation runs against a mechanical stub first, and that the tool is asynchronous (returns a testId immediately). It doesn't cover permissions, cost/rate limits, or failure handling, so it stops short of a 5.

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

Conciseness4/5

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

Four compact sentences, front-loaded with the core action and the pipeline, then alternatives and follow-ups. Every sentence is load-bearing, though the parenthetical detail on isolate/container and the multi-clause first sentence make it slightly denser than strictly necessary.

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 complex, async, nested-schema tool with no output schema, the description covers the workflow end to end: what it takes in, what happens internally, that it returns a testId synchronously, and which follow-up tool yields the verdict. It also routes to build_feature and get_usage_guide, leaving no obvious gap 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 schema already documents all five parameters in detail (including the exact-match constraint on component and the stub-hidden code field). The description only restates the component shape (filePath/exportName/signature) and acceptance criteria, adding no syntax or constraint detail beyond the schema, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource: 'Run standalone cloud verification on code you already have,' and describes the pipeline (generate black-box test, validate against a stub, execute real code). It explicitly distinguishes itself from siblings by ruling out code generation and naming build_feature as the alternative. An agent can tell it apart from build_* tools without reading either schema.

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?

Gives explicit when-to-use ('code you already have'), when-not-to ('No code generation happens here — use build_feature for that'), and the required follow-up ('call stream_test to follow progress and get the pass/fail verdict'), plus a pointer to get_usage_guide. Nothing is left to inference.

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. 1 tool update
    • Changedbuild_from_spec1 field changed
      • changedInput schema / properties / repos / items / properties / existingFiles / description
        Previous value: -"OPTIONAL current contents of this repo's files that the spec changes or depends on ({path, content}). Every story for this repo is built with them (a file whose path the story names is edited, the rest are read-only context). With deliver, Ship only overwrites an existing file that is supplied here AND still has exactly this content in the repo at delivery; any other existing file is never overwritten."New value: +"OPTIONAL current contents of this repo's files that the spec changes or depends on ({path, content}). With deliver and the repo attached through the GitHub App you can omit this: Ship reads the files each story names, plus their local imports, from the repo itself. Every story for this repo is built with them (a file whose path the story names is edited, the rest are read-only context). With deliver, Ship only overwrites an existing file that is supplied here AND still has exactly this content in the repo at delivery; any other existing file is never overwritten."
  2. 1 tool update
    • Changedbuild_from_spec1 field changed
      • addedInput schema / properties / repos / items / properties / existingFiles
        Added value: +{
        +  "description": "OPTIONAL current contents of this repo's files that the spec changes or depends on ({path, content}). Every story for this repo is built with them (a file whose path the story names is edited, the rest are read-only context). With deliver, Ship only overwrites an existing file that is supplied here AND still has exactly this content in the repo at delivery; any other existing file is never overwritten.",
        +  "items": {
        +    "properties": {
        +      "content": {
        +        "type": "string"
        +      },
        +      "path": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "path",
        +      "content"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
  3. 1 tool update
    • Changedbuild_from_spec1 field changed
      • addedInput schema / properties / deliver
        Added value: +{
        +  "description": "Opt in to delivery: when every story has finished, open one pull request per target repo (a draft if any story did not verify or the repo's own tests newly fail). Needs the repo attached through the GitHub App; an unattached repo is reported with nextAction attach_repo and its files stay available from get_build_files. Never merged automatically. Results appear under deliveries in get_batch.",
        +  "enum": [
        +    "pull_request"
        +  ],
        +  "type": "string"
        +}
  4. 1 tool update
    • Addedcontinue_batch
  5. 1 tool update
    • Changedcreate_free_account1 field changed
      • addedInput schema / properties / ph_did
        Added value: +{
        +  "description": "Optional web visitor id from a setup link or command your human gave you (--ph-did). Pass it exactly as given; an invalid value is ignored.",
        +  "type": "string"
        +}

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables coding agents to compile supplied files, run optional focused tests, and get static findings across ten programming languages, providing a deterministic feedback loop on the code they are about to return.
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables coding agents to load backend anti-slop rules and deterministically audit TypeScript/backend files for violations like SELECT *, SQL interpolation, N+1 calls, silent catches, stack leaks, type escapes, and TODOs, plus verify TypeScript compilation. Returns PASS/FAIL findings so agents can fix issues before shipping.
    653 npm
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to analyze code health in TypeScript/JavaScript projects, providing tools to run analysis, start a dashboard, and get summaries.
    19 npm
    3
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Lets coding agents statically scan Swift, Kotlin/Java, Dart, React Native and manifest files for crash-prone operators, main-thread deadlocks, missing accessibility labels, insecure token storage, cleartext traffic and vague permission strings, and cross-check platform APIs against Info.plist, PrivacyInfo.xcprivacy and AndroidManifest permission/exported settings. It also runs syntax or full build verification, returning FAIL on error-level findings so agents must fix issues before claiming work is done.
    736 npm
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources