Skip to main content
Glama

Server Details

Check agent replies, lint policies, export regression tests and verify caller-trusted proof bundles.

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
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
–

TDQS

A4.1/5.0

Scored across 6 tools

Disambiguation4/5

Each tool has a distinct role: catalog search, catalog fetch, reply checking, policy linting, regression export, and bundle verification. The only mild overlap is between policy_check, validate_policy, and export_regression, since all three involve policy evaluation, but the descriptions make the boundaries reasonably clear.

Naming Consistency4/5

All names are snake_case and mostly follow a verb_noun pattern (policy_check, validate_policy, verify_bundle, export_regression). The bare verbs 'search' and 'fetch' deviate slightly from that pattern but remain unambiguous.

Tool Count5/5

Six tools is a well-scoped set for a verification/checking server, and each tool maps to a distinct workflow stage (discover docs, fetch docs, check replies, lint policy, export regression, verify proofs). No tool feels redundant or missing at this count.

Completeness4/5

The surface covers discovery (search/fetch), policy validation, reply checking, regression export, and proof verification, forming a coherent read-only lifecycle. Minor gaps exist around constructing or issuing policies/bundles, but these may be intentional for a verification-only service.

Available Tools

6 tools
export_regressionExport a regression testA
Read-onlyIdempotent
Inspect

Run policy_check with caller-supplied records (no receipts or required-signature mode) and return it as a CI regression: curbi.regression JSON with each reply's expected verdict and rules, plus a dependency-free node:test file that replays it against the Check API. Expectations come from the checker, never from the caller. Nothing is stored. A pass grants no execution authority.

NameRequiredDescriptionDefault
casesNoUp to 50 replies checked against the same policy. Send reply or cases, not both.
replyNoOne agent reply to check. Send reply or cases, not both.
titleNoTitle for the regression file.
policyYesYour rules. Set at least one of prices, forbid or actions; validate_policy lints a policy before use. Ready-made policies: https://curbi.io/policies/
recordNoWhat actually happened, supplied by the caller and not verified by Curbi. A claimed action passes only when its operation is DONE here.
verifyNoExports use caller records, so only "optional" is accepted.
versionNoRegression format version.

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the read-only, idempotent, and non-destructive annotations, it discloses that expectations are checker-derived, nothing is stored, and a pass grants no execution authority. It also explains that the generated test subsequently replays the regression against the Check API, clarifying an important runtime behavior.

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

Conciseness5/5

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

Four compact sentences front-load the operation and outputs, then efficiently cover expectation provenance, persistence, and authority. Although the opening sentence is dense, every clause contributes useful scope or behavioral information and there is 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?

Despite the complex nested inputs and absence of an output schema, the description identifies the source operation, supported record mode, both generated artifacts, their CI purpose, and key trust and storage constraints. Together with the fully documented schema, this provides enough context to invoke the tool and interpret its outputs correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents the inputs comprehensively. The description helpfully relates records and replies to policy_check and checker-derived expectations, but most parameter-specific meaning and constraints still come entirely from the structured schema.

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

Purpose5/5

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

The description states that the tool runs policy_check and exports the result as curbi.regression JSON plus a dependency-free node:test file. This specific CI-export purpose clearly distinguishes it from directly checking a policy with policy_check or using the other siblings.

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

Usage Guidelines4/5

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

The CI-regression framing establishes the intended workflow, while "caller-supplied records" and "no receipts or required-signature mode" scope the supported scenario. It does not explicitly say when to use policy_check instead or provide other when-not routing guidance.

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

fetchFetch a Curbi documentation summaryA
Read-onlyIdempotent
Inspect

Fetch the first-party catalog summary for an id returned by search. Returns a canonical URL and a link to full documentation; does not retrieve caller URLs.

NameRequiredDescriptionDefault
idYesAn id returned by search, for example "doc:pricing".

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds value beyond that by disclosing what comes back (a canonical URL plus a link to full documentation) and what is out of scope (caller URLs), which matters because there is no output schema.

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

Conciseness5/5

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

Two short sentences, no filler, with the core action and the search-derived id requirement front-loaded before the scope exclusion. Every clause carries information an agent would otherwise have to guess.

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 rich annotations, the description covers purpose, precondition, return shape and scope limits. The only minor gap is that the format of the 'link to full documentation' field is not hinted at, which is acceptable given the simplicity of the tool.

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 schema's own example ('doc:pricing') already shows the id format. The description adds only the provenance rule (an id returned by search), which is useful but marginal; baseline 3 applies 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.

Purpose4/5

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

States a specific verb and resource: fetch the first-party catalog summary for an id. It explicitly ties itself to the sibling 'search' as the source of the id and narrows scope with 'does not retrieve caller URLs', so an agent can tell it apart from search and from any caller-URL tool.

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 precondition for use: the id must have come from search, which effectively sequences the two tools. It also carves out an exclusion ('does not retrieve caller URLs'), but it does not name an alternative tool for that case or state when to prefer another sibling.

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

policy_checkCheck an agent replyA
Read-onlyIdempotent
Inspect

Check one reply or up to 50 replies against explicit prices, forbidden phrases and supplied outcome records. Deterministic, no model calls. Caller records are unverified; receipt verification is unavailable here. A pass grants no execution authority.

NameRequiredDescriptionDefault
casesNoUp to 50 replies checked against the same policy. Send reply or cases, not both.
replyNoOne agent reply to check. Send reply or cases, not both.
policyYesYour rules. Set at least one of prices, forbid or actions; validate_policy lints a policy before use. Ready-made policies: https://curbi.io/policies/
recordNoWhat actually happened, supplied by the caller and not verified by Curbi. A claimed action passes only when its operation is DONE here.
verifyNo"required" also needs a Curbi-signed receipt for each claimed action.
versionNoChecker version. Omit for the current one.

TDQS

A3.7/5.0
Behavior4/5

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

With readOnlyHint and idempotentHint already supplied, the description still adds meaningful behavior: deterministic with no model calls, caller records are unverified, receipt verification is unavailable, and a pass grants no execution authority. Those caveats materially change how an agent should trust the result; only the return/finding shape is left undisclosed.

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?

Four short sentences, front-loaded with the core action and scale, followed by the most consequential caveats (determinism, unverified records, no authority). No sentence is redundant or padded.

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 tool with six parameters, deep nesting, and no output schema, the description covers inputs and trust boundaries but says nothing about what a check returns or what a 'finding' looks like. The schema hints at 'forbid:<id>' findings, yet the description never explains the result, leaving a real gap for an agent that must interpret the output.

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 six parameters, nested records, and enums are already well documented in the schema itself. The description adds only the 'one or up to 50' batching notion, which mirrors the schema's minItems/maxItems, 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 gives a specific verb and resource ('Check one reply or up to 50 replies') plus the three rule families it enforces (explicit prices, forbidden phrases, supplied outcome records). It also implicitly separates itself from receipt-oriented siblings by stating 'receipt verification is unavailable here', though it never names validate_policy or verify_bundle directly.

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

Usage Guidelines3/5

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

Usage is implied rather than stated: the tool checks replies against a policy, so an agent can infer it should be called after composing a reply. There is no explicit when-to-use/when-not guidance, and no routing to validate_policy for policy linting or to verify_bundle for receipt checks, even though those siblings exist.

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

validate_policyValidate and lint a policyA
Read-onlyIdempotent
Inspect

Check a policy against the same schema rules as policy_check, then lint it: no rules at all, duplicate or overlapping price items, duplicate forbid ids or phrases, prices that cannot be stated in cents, and rules the checker never fires on (probed with the shipped checker). Returns valid, errors and warnings. Nothing is stored. A valid policy is not a complete one, and grants no execution authority.

NameRequiredDescriptionDefault
policyYesYour rules. Set at least one of prices, forbid or actions; validate_policy lints a policy before use. Ready-made policies: https://curbi.io/policies/

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the readOnly/idempotent/non-destructive annotations, it explicitly states 'Nothing is stored', enumerates the concrete lint checks performed (empty rule set, duplicate/overlapping price items, duplicate forbid ids or phrases, non-cent prices, rules the shipped checker never fires on), and discloses the return fields (valid, errors, warnings). It also adds a substantive caveat that validity implies neither completeness nor execution authority, which the annotations cannot convey.

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 a dense but purposeful lint list, then two short caveat sentences. Every clause carries information, though the middle enumeration is long enough that it reads as a run-on relative to the compact framing around it.

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 nested-object validation tool with no output schema, the description covers inputs' intent, side effects (none), and the shape of results (valid/errors/warnings), so an agent can call it and interpret the outcome. It does not describe error object structure or how many findings to expect, which is a minor gap given the depth of the nested schema.

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?

With a single required parameter and 100% schema description coverage, the schema already carries the field-level meaning; the description adds value by naming the specific conditions that make a policy invalid (duplicate forbid ids, unrepresentable prices, overlapping price items, dead rules), which are cross-field semantics the schema cannot express.

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 opens with a specific verb and resource ('Check a policy... then lint it') and immediately positions itself relative to the sibling policy_check ('the same schema rules as policy_check, then lint it'), so an agent can tell it apart from the sibling 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 Guidelines4/5

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

The relationship to policy_check is explicit — this tool validates by the same schema rules and then adds linting — which effectively tells the agent to prefer this one when lint coverage is wanted. It stops short of a stated when-not or a full alternatives list (e.g. fetch, verify_bundle), so it is clear context rather than complete routing guidance.

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

verify_bundleVerify a Curbi proof bundle offlineA
Read-onlyIdempotent
Inspect

Run the open Curbi Proof verifier (curbi.proof/0.1) on a bundle with the public keys you choose: signatures, key windows, RFC 9162 inclusion under the signed log head, attestation binding and history consistency. Keys are required and are the trust anchor; keys inside the bundle are never trusted here. Test keys verify only with allowTest. Pure computation: no network, nothing stored. A verified bundle shows what a trusted key signed and logged; it does not show that the provider action happened, and grants no authority.

NameRequiredDescriptionDefault
keysYesJWKS you trust, e.g. a saved copy of https://curbi.io/.well-known/curbi-receipt-keys.json
modeNo"fresh" also checks keys are currently valid; "archival" checks them at signing time.
knownNoLog heads you saw before, to check the log is append-only.
bundleYesA curbi.proof/0.1 bundle to verify.
allowTestNoAccept test keys. Default false.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, closed-world), and the description adds real behavioral context beyond them: 'Pure computation: no network, nothing stored' and the crucial caveat that a verified bundle proves what a trusted key signed and logged but not that the provider action occurred and 'grants no authority'. That materially shapes how an agent reports results.

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

Conciseness5/5

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

The verification scope is stated first, followed by trust constraints and then the semantic caveat, so the most decision-relevant content is front-loaded. Sentences are dense but each carries distinct information, with no filler or repetition of schema text.

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 five-parameter verifier with no output schema, the description covers purpose, trust model, purity, and interpretation limits well. The remaining gap is the shape of the result (pass/fail structure, which check failures are surfaced), which an agent must discover by calling it.

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 description coverage is 100%, so the baseline is 3, but the description adds meaning the schema cannot: keys are the trust anchor and must come from the caller, keys embedded in the bundle are never trusted, and test keys require allowTest. It does not elaborate on the mode or known-log-head parameters beyond what the schema already says.

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

Purpose5/5

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

The description names a specific verb and resource ('Run the open Curbi Proof verifier (curbi.proof/0.1) on a bundle') and enumerates exactly what is checked: signatures, key windows, RFC 9162 inclusion, attestation binding, history consistency. That specificity implicitly separates it from siblings like validate_policy or policy_check, which operate on policy rather than cryptographic bundles.

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 conditions rather than alternatives: 'Keys are required and are the trust anchor', 'Test keys verify only with allowTest', and 'keys inside the bundle are never trusted here'. It does not explicitly say when to prefer this over a sibling tool, but the prerequisites and constraints are clear enough to guide invocation.

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. 6 tool updates
    • First observedexport_regression
    • First observedfetch
    • First observedpolicy_check
    • First observedsearch
    • First observedvalidate_policy
    • First observedverify_bundle

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources