Agentic Keychain
Server Details
Agent Skill ROI Registry & Benchmarking. It sells skills for log triage and repository mapping.
- Status
- Healthy
- Uptime
- 100.0% over 22 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 11 tools
Every tool has a sharply distinct purpose, and the descriptions carry explicit 'Use when / Not for' clauses that cross-reference the neighboring tools (e.g. evaluate_capability vs resolve_task vs compare_capabilities vs estimate_roi), so an agent can reliably pick the right one. Even the closest overlap — resolve_task vs evaluate_capability — is disambiguated by output detail (one-word decision vs full arithmetic).
All names follow a clean snake_case verb_noun pattern: compare_capabilities, estimate_roi, evaluate_capability, get_benchmark, get_capability, get_provenance, get_quote, report_outcome, resolve_task, search_capabilities, unlock_capability. Verb choice is consistent (get_ for retrieval, search_/resolve_/evaluate_/compare_ for decisions, unlock_/get_quote for transactions).
Eleven tools is well within the ideal 3-15 range and each one earns its place by covering a distinct stage of the registry workflow. No redundancy or filler.
The full lifecycle is covered end to end: discovery (search_capabilities), inspection (get_capability, get_benchmark, get_provenance), decision (resolve_task, evaluate_capability, compare_capabilities, estimate_roi), transaction (get_quote, unlock_capability) and feedback (report_outcome). No obvious dead ends for evaluating and acquiring a capability.
Available Tools
11 toolscompare_capabilitiesCompare capabilitiesARead-onlyIdempotentInspect
Assess two to five named capabilities side by side for the same inputs, with the same method and ak.offer.v1 offer shape as evaluate_capability. Use when: you already hold a shortlist of capability ids and want each one's decision, reasons and offer in one answer. Not for: finding candidates (search_capabilities) or a single capability (evaluate_capability). Input: the capability ids, plus the optional task, model, expected_runs, baseline_cost_estimate_usd, context and constraints that evaluate_capability reads. Output: ak.comparison.v1 with the results ranked by decision, lower-bound net saving, relevance and capability id, each with its reasons and an ak.offer.v1 offer.
| Name | Required | Description | Default |
|---|---|---|---|
| task | No | Plain description of the task you are about to do (at most 4000 characters). | |
| model | No | The model you run on, e.g. claude-sonnet-5. Savings are reported only for measured models. | |
| context | No | Facts about your situation, keyed by the capability's parameter names (e.g. log_lines). | |
| constraints | No | Limits you set for the answer; a capability outside them is reported as blocked, with the reason code. | |
| capabilities | Yes | Two to five capabilities to compare, each as an id, ak:// URI or slug. | |
| expected_runs | No | How many times you expect to perform this kind of task. | |
| baseline_cost_estimate_usd | No | What one run of this task costs you today without the capability, in USD. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint=false). The description adds real behavior beyond that: it shares the same method and offer shape as evaluate_capability, returns a ranked result set, and surfaces blocked entries with reason codes. It does not discuss cost/latency of running the comparison, which is a minor gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action, then Use when / Not for / Input / Output in a tight sequence. Every sentence carries routing, input, or return information; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description correctly supplies the return contract: ak.comparison.v1, ranked by decision, lower-bound net saving, relevance and capability id, each with reasons and an ak.offer.v1 offer. Combined with 100% schema coverage on seven parameters, an agent has everything needed to call and interpret it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description exceeds it by clarifying that the optional task, model, expected_runs, baseline_cost_estimate_usd, context and constraints are exactly those evaluate_capability reads, giving the agent cross-tool semantic consistency. It adds no per-parameter syntax beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states a precise verb (Assess), resource (capabilities), cardinality (two to five), and scope (same inputs, same method/offer shape as evaluate_capability). It explicitly distinguishes itself from search_capabilities and evaluate_capability, so an agent can route 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit 'Use when' trigger (holding a shortlist of ids and wanting decision, reasons and offer in one answer) and an explicit 'Not for' with the two named alternatives for the excluded cases. Nothing about when to select this tool 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.
estimate_roiEstimate return on a capabilityARead-onlyIdempotentInspect
Per measured model: expected saving per run, break-even runs and net saving over expected_runs, with intervals, for one capability and no task. Use when: you know the capability and want its economics on each model the registry measured. Not for: a use-or-not answer for a task (evaluate_capability) or several candidates (compare_capabilities). Input: a capability id; add model to keep one model, and expected_runs with baseline_cost_estimate_usd for an estimate at your scale. Output: ak.roi.v1 with one economics entry per measured model; break-even runs is null when the interval does not show a saving, and your estimate is left out where success is not accepted or your baseline lies outside the measured range.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | The model you run on, e.g. claude-sonnet-5. Savings are reported only for measured models. | |
| capability | Yes | Capability id (ak:publisher:name or ak:publisher:name:x.y.z), ak:// URI or slug. | |
| expected_runs | No | How many times you expect to perform this kind of task. | |
| baseline_cost_estimate_usd | No | What one run of this task costs you today without the capability, in USD. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so safety is covered. The description goes beyond them by disclosing output edge cases: break-even runs is null when the interval does not show a saving, and the user's estimate is omitted where success is not accepted or the baseline falls outside the measured range. It does not mention auth or rate limits, but for a read-only estimator the added result semantics are substantial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with the result shape, then cleanly partitioned into 'Use when', 'Not for', 'Input' and 'Output' segments, so every sentence earns its place. The phrasing is densely packed with clauses, which costs a little readability, but there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return contract and does so well: it names the ak.roi.v1 shape, states one economics entry per measured model, and explains the null break-even and omitted-estimate cases. Combined with the input guidance, an agent has everything needed to call and interpret this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 and each parameter is already documented. The description still adds relational meaning beyond the schema by pairing expected_runs with baseline_cost_estimate_usd ('an estimate at your scale') and by clarifying that model narrows output to one model while the measured-range constraint governs whether baseline is usable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening clause states a precise verb and resource ('expected saving per run, break-even runs and net saving over expected_runs, with intervals') and scopes it to 'one capability and no task'. The 'Not for' clause explicitly separates it from evaluate_capability (single task decision) and compare_capabilities (multiple candidates), so an agent can distinguish it from siblings without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit 'Use when: you know the capability and want its economics on each model the registry measured' plus a named 'Not for' list with the two competing siblings and the condition that selects each. When-to-use, when-not, and alternatives are all present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
evaluate_capabilityShould I use a capability for this task?ARead-onlyIdempotentInspect
Decide whether a registry capability is worth using or buying for your task, from registry-run benchmarks only. Use when: you have a task and want a recommend, do_not_recommend or undetermined answer with the arithmetic; name a capability to weigh only that one, or leave it out and the registry weighs its closest matches. Not for: one short answer without the arithmetic (resolve_task), a plain list of matches (search_capabilities), two to five named candidates side by side (compare_capabilities), or the break-even figures of one capability without a task (estimate_roi). Input: a plain task description; give model, expected_runs and baseline_cost_estimate_usd for a money estimate, and context for the conditions the capability declares. Output: ak.evaluation.v1 with decision, reasons, expected effect, price, confidence, operator_message, evaluation_id, next steps and an ak.offer.v1 offer (status, next_action, economics, the four evidence kinds listed apart). do_not_recommend is a normal answer.
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | Plain description of the task you are about to do (at most 4000 characters). | |
| model | No | The model you run on, e.g. claude-sonnet-5. Savings are reported only for measured models. | |
| context | No | Facts about your situation, keyed by the capability's parameter names (e.g. log_lines). | |
| capability | No | Capability id (ak:publisher:name or ak:publisher:name:x.y.z), ak:// URI or slug. | |
| constraints | No | Limits you set for the answer; a capability outside them is reported as blocked, with the reason code. | |
| budget_policy | No | Your operator's spending policy; the answer says whether a purchase fits it. Every purchase still needs human approval. | |
| expected_runs | No | How many times you expect to perform this kind of task. | |
| baseline_cost_estimate_usd | No | What one run of this task costs you today without the capability, in USD. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a safe read-only, idempotent, closed-world operation, and the description adds material context beyond them: 'these tools never charge', 'Every purchase still needs human approval', capabilities outside constraints are 'reported as blocked, with the reason code', and 'do_not_recommend is a normal answer' (guarding against an agent retrying on a negative verdict).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well front-loaded: purpose, then when, then not-for, then input, then output. It is long and dense (the output enumeration and 'the four evidence kinds listed apart' are heavy), but nearly every clause carries routing or contract information, so the size is largely earned.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter tool with nested objects and no output schema, the description supplies the missing return contract (ak.evaluation.v1 fields, ak.offer.v1, blocked statuses and reason codes) and the money-estimate input combination. An agent has everything needed to call it and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: model/expected_runs/baseline_cost_estimate_usd are jointly required 'for a money estimate', and omitting capability makes the registry weigh its closest matches rather than failing. That interaction logic is not visible in the schema. It does not, however, explain the context-keying or budget_policy precedence beyond the schema's own text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (decide) and object (whether a registry capability is worth using or buying), and pins the scope to registry-run benchmarks only. The description explicitly differentiates itself from four named siblings, so an agent can route 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Contains an explicit 'Use when' clause plus a 'Not for' clause that names the alternative tool for each adjacent case: resolve_task for a bare answer, search_capabilities for a list, compare_capabilities for 2-5 candidates, estimate_roi for break-even without a task. It also clarifies the optional-capability branch (name one vs. let the registry weigh closest matches).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_benchmarkGet benchmark evidenceARead-onlyIdempotentInspect
Registry-run benchmark summaries (labelled), publisher claims (labelled PUBLISHER CLAIMED) and the signed attestations of one capability. Use when: you want the measurements behind an answer (paired runs, model, fixtures, method) or want to check them yourself. Not for: an answer for your task (evaluate_capability) or artifact hashes and the log proof (get_provenance). Input: a capability id, ak:// URI or slug. Output: ak.benchmark.v1 with the evidence, the publisher claims, the attestations, the method and the limitations; publisher claims never decide anything.
| Name | Required | Description | Default |
|---|---|---|---|
| capability | Yes | Capability id (ak:publisher:name or ak:publisher:name:x.y.z), ak:// URI or slug. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false, openWorldHint=false), so the bar is lower. The description adds behavioral context beyond annotations: it labels publisher claims as 'PUBLISHER CLAIMED' and states 'publisher claims never decide anything', which is a decision-relevance caveat an agent would not infer from annotations. It does not describe empty-result or error behavior, but the added provenance-qualification is substantive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose, then Use when / Not for / Input / Output in compressed labelled segments, with no filler sentences. Each clause carries routing or format information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a read-only, openWorld=false, idempotent lookup with one required parameter and no output schema. The description supplies what is missing: the output type (ak.benchmark.v1), the elements of the evidence (paired runs, model, fixtures, method, limitations, attestations), and the publisher-claim caveat. Nothing an agent needs to call it correctly is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds accepted input formats ('a capability id, ak:// URI or slug') and, via the output line, signals the expected ak.benchmark.v1 shape. The schema already documents the id/URI/slug formats, so the incremental value over structured data is modest rather than large.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Uses a specific verb+resource ('Registry-run benchmark summaries', 'publisher claims', 'signed attestations of one capability') and explicitly names the sibling tools it is not (evaluate_capability, get_provenance), so an agent can distinguish it 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The tool states an explicit 'Use when' condition ('you want the measurements behind an answer ... or want to check them yourself') and a 'Not for' exclusion, naming the two alternatives (evaluate_capability for task answers, get_provenance for artifact hashes and log proof). This is exactly the routing guidance an agent needs among 11 siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_capabilityGet a capability cardARead-onlyIdempotentInspect
The capability's card: purpose, use-when and do-not-use-when conditions, permissions, price, evidence summary, trust checks, links and a task-independent ak.offer.v1 offer. Use when: you can name a capability and want its facts, or want to check the conditions an evaluation asked about. Not for: an answer for your task (evaluate_capability) or the full benchmark records (get_benchmark). Input: a capability id, ak:// URI or slug, from a search, an evaluation or a page. Output: ak.capability.v1 with the card fields, parameters, versions, terms, evidence, trust and links.
| Name | Required | Description | Default |
|---|---|---|---|
| capability | Yes | Capability id (ak:publisher:name or ak:publisher:name:x.y.z), ak:// URI or slug. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower. The description adds useful content-level context by specifying the output resource type (ak.capability.v1) and the concrete fields returned, including the task-independent ak.offer.v1 offer. It stops short of noting pagination, caching or rate behavior, so it is good 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads what the card is, then usage, then exclusions, then input, then output — a logical order with no filler. It is dense to the point of being a run-on paragraph, but every clause carries information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although there is no output schema, the description compensates by naming the returned contract (ak.capability.v1) and its major field groups. Combined with fully covered input schema and rich annotations, an agent has everything needed to select and invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the accepted id/URI/slug formats are already documented, establishing a baseline of 3. The description goes beyond the schema by telling the agent where to source the value (from a search, an evaluation or a page), which is genuinely useful routing information not present in the structured field.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb+resource (get a capability card) and enumerates exactly what the card contains: purpose, conditions, permissions, price, evidence, trust checks, links and an offer. It explicitly distinguishes itself from siblings by naming evaluate_capability and get_benchmark as the wrong choices.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit 'Use when' conditions (you can name a capability and want its facts, or want to check conditions an evaluation asked about) and 'Not for' exclusions that route to the correct alternatives (evaluate_capability for a task answer, get_benchmark for full records). No inference is required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_provenanceGet provenanceARead-onlyIdempotentInspect
Artifact hash, manifest hash, signed publisher and registry attestations and a transparency-log inclusion proof for one capability. Use when: you want to check that a package is the one the registry published and signed. Not for: benchmark results (get_benchmark) or the card (get_capability). Input: a capability id, ak:// URI or slug. Output: ak.provenance.v1 with the hashes, the attestations, an RFC 9162 inclusion proof against the signed tree head, the trust checks and the keys URL.
| Name | Required | Description | Default |
|---|---|---|---|
| capability | Yes | Capability id (ak:publisher:name or ak:publisher:name:x.y.z), ak:// URI or slug. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world. The description goes beyond that by specifying the output shape (ak.provenance.v1, RFC 9162 inclusion proof against the signed tree head, trust checks, keys URL), which is valuable context not in the annotations. However, since there's no output schema, this relies on prose to convey return structure, which it does adequately.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the output first, then usage, then exclusions, then input/output. Every clause earns its place; no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Since there's no output schema, the description helpfully names the return format and key fields. Covers input formats and behavioral expectations. Minor gap: doesn't state what happens if the proof fails or if the capability is unknown, but overall complete for a read-only retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already fully documents the single 'capability' parameter including accepted formats. The description repeats this ('a capability id, ak:// URI or slug') without adding syntax or validation details beyond the schema. Baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (retrieves provenance for one capability) and enumerates what it returns: artifact hash, manifest hash, signed publisher and registry attestations, and a transparency-log inclusion proof. Distinguishes itself from siblings by explicitly ruling out get_benchmark and get_capability.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Has explicit 'Use when' (verifying a package matches what the registry published and signed) and 'Not for' clauses naming the alternative tools get_benchmark and get_capability. 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.
get_quoteGet a price quoteARead-onlyInspect
A signed 15-minute price quote with the hosted checkout link. It charges nothing; a purchase requires operator approval in the hosted checkout. Use when: your operator wants the price and the checkout link of a capability that is for sale, for example after an evaluation answered recommend. Not for: deciding whether a capability is worth it (evaluate_capability); a free capability needs no quote. Input: the capability id and, if you evaluated first, the evaluation_id, which links the quote to that evaluation. Output: a quote_id and signed claims bound to the capability version, price, currency, terms and expiry, the checkout link and the unlock request; the price comes from the registry record only.
| Name | Required | Description | Default |
|---|---|---|---|
| capability | Yes | Capability id (ak:publisher:name or ak:publisher:name:x.y.z), ak:// URI or slug. | |
| evaluation_id | No | The evaluation_id from evaluate_capability, if you evaluated first. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and destructiveHint=false, so safety is already covered. The description adds rich context beyond annotations: 'It charges nothing; a purchase requires operator approval in the hosted checkout', the 15-minute expiry, signed claims bound to capability version, and that the price comes from the registry only. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose, then Use when / Not for / Input / Output in a compact structure with zero waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description covers the return values (quote_id, signed claims, checkout link, unlock request). Combined with the behavioral and usage context, an agent has everything needed to call this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both parameters including patterns. The description adds the semantic link (evaluation_id links quote to evaluation) but nothing about syntax or format 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource with scope: 'signed 15-minute price quote with the hosted checkout link'. It names both the input and output artifacts, and distinguishes itself from siblings like evaluate_capability.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'Use when' and 'Not for' clauses name alternatives (evaluate_capability) and the condition that selects them, including the free-capability case. This is the rare definition that fully routes the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
report_outcomeReport an outcomeAInspect
Report how a capability worked for you. Stored as AGENT REPORTED; it never changes evidence labels, trust or ranking. Only the listed fields are accepted; no task text is kept. Use when: you ran a capability, or decided not to, and can say whether the task succeeded. Not for: questions about a capability (get_capability, get_benchmark). Input: the capability id and success; add evaluation_id or purchase_ref to link the report, the optional token, tool-call, latency and cost counts, and failure_reason only with success false. Output: whether the report was stored, its label and, for a failed paid capability, the remedy policy.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | The model you run on, e.g. claude-sonnet-5. Savings are reported only for measured models. | |
| success | Yes | Whether the task reached its goal. | |
| cost_usd | No | What the run cost you in USD. | |
| tokens_in | No | Input tokens the run used. | |
| capability | Yes | Capability id (ak:publisher:name or ak:publisher:name:x.y.z), ak:// URI or slug. | |
| latency_ms | No | Wall-clock time of the run in milliseconds. | |
| tokens_out | No | Output tokens the run used. | |
| tool_calls | No | Tool calls the run made. | |
| purchase_ref | No | The purchase_ref from unlock_capability, if you bought the capability. | |
| evaluation_id | No | The evaluation_id from evaluate_capability, if you evaluated first. | |
| failure_reason | No | Only with success false. | |
| used_capability | No | Whether the capability was used in this run; false reports a run done without it. | |
| baseline_cost_estimate_usd | No | What one run of this task costs you without the capability, in USD. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, so mutation and safety are largely covered; the description goes further by disclosing the storage label (AGENT REPORTED), that the report cannot alter trust/ranking, and that no task text is retained. It does not address the non-idempotent behavior (duplicate submissions) or any auth requirements, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core semantics, then uses labeled 'Use when / Not for / Input / Output' segments. Every sentence carries information; there is no filler or repetition of the name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by describing the return (stored status, label, remedy policy for a failed paid capability), and the write semantics plus data-retention policy are stated. Minor gaps remain around idempotency/duplicate reports, but nothing blocks a correct call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for 13 parameters, so the schema already documents every field. The description only groups them (required id/success; optional evaluation_id/purchase_ref links, token/tool-call/latency/cost counts, failure_reason with success false) without adding syntax, formats, or units beyond what the schema provides. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (report an outcome for a capability) and immediately scopes it: 'Stored as AGENT REPORTED; it never changes evidence labels, trust or ranking.' The 'Not for' clause names the sibling tools that cover capability questions, so an agent can distinguish this from get_capability/get_benchmark.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'Use when: you ran a capability, or decided not to, and can say whether the task succeeded' plus 'Not for: questions about a capability (get_capability, get_benchmark)'. Both the positive trigger and the exclusion with named alternatives are given, leaving nothing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_taskIs there a capability worth using for this task?ARead-onlyIdempotentInspect
Describe a task in plain words and get one compact answer: whether a registry capability is worth using for it, from registry-run benchmarks only, and the next step. Use when: you have a task and no capability name, and want one decision word (use, do_not_use, use_free_alternative, insufficient_evidence, blocked_by_constraints or no_match) with its reason codes. Not for: the full arithmetic, the offer and the operator message (evaluate_capability with the same inputs), a plain list of matches (search_capabilities) or a capability you can already name (get_capability). Input: task, plus optional model, expected_runs, baseline_cost_estimate_usd, context and constraints; any other field is refused with the allowed list. Output: ak.resolve.v1 with decision, capability id, reason codes, the measured saving per run with its interval or null, the estimate at your own baseline with its break-even runs or null, confidence, evidence label, price, free alternatives, next action, evaluation_id and the tool that gives the detail. do_not_use and no_match are normal answers.
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | Plain description of the task you are about to do (at most 4000 characters). | |
| model | No | The model you run on, e.g. claude-sonnet-5. Savings are reported only for measured models. | |
| context | No | Facts about your situation, keyed by the capability's parameter names (e.g. log_lines). | |
| constraints | No | Limits you set for the answer; a capability outside them is reported as blocked, with the reason code. | |
| expected_runs | No | How many times you expect to perform this kind of task. | |
| baseline_cost_estimate_usd | No | What one run of this task costs you today without the capability, in USD. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety profile is covered. The description adds real behavioral context beyond them: evidence is 'from registry-run benchmarks only', savings exist only for measured models, unknown fields are refused with the allowed list, and do_not_use/no_match are normal answers rather than errors. It stops short of stating latency, rate limits, or caching, but for a read-only resolver that is minor.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and decision vocabulary, then when-to-use, exclusions, input and output in a fixed order; every clause carries information. It is dense and long for one paragraph, but little of it is waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, yet the description enumerates the ak.resolve.v1 payload (decision, capability id, reason codes, measured saving with interval, baseline estimate with break-even, confidence, evidence label, price, free alternatives, next action, evaluation_id, detail tool). Combined with the named inputs and constraint semantics, an agent has everything needed to call and interpret it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds the enforcement behavior that the schema only implies ('any other field is refused with the allowed list') and groups the inputs as task + optional model/expected_runs/baseline_cost_estimate_usd/context/constraints. It doesn't add syntax beyond the schema, so it is a modest step above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: turn a plain-language task into a single decision word about whether a registry capability is worth using. It names the exact answer vocabulary (use, do_not_use, use_free_alternative, insufficient_evidence, blocked_by_constraints, no_match), so an agent can tell it apart from search_capabilities or evaluate_capability 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'Use when' clause (you have a task and no capability name, and want one decision word) plus an explicit 'Not for' clause naming three alternatives and the condition that selects each: evaluate_capability for the full arithmetic, search_capabilities for a plain list, get_capability when the capability is already named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_capabilitiesSearch capabilitiesARead-onlyIdempotentInspect
Search capability names, summaries, tasks and use-when conditions by keywords, ranked by lexical relevance only, never by payment. Use when: you want to see which capabilities exist for a topic, or you know part of a name. Not for: deciding whether one fits your task (resolve_task, or evaluate_capability for the full arithmetic) or reading a capability you can already name (get_capability). Input: search words, at most 500 characters; no earlier call is needed. Output: ak.search.v1 with id, name, summary, relevance, state, price and the strongest evidence label of each result, and no decision.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many results to return, from 1 to 50 (default 10). | |
| query | Yes | Search words (at most 500 characters). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower; the description still adds real value by disclosing that results are ranked by lexical relevance only, never by payment, and that an earlier call is not required. It also pre-empts a likely misreading by stating the output is 'no decision'. It does not discuss pagination or result-set limits beyond 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but tightly organized into purpose, Use when, Not for, Input, and Output blocks, with the core action front-loaded. A few phrases are redundant with the schema (the 500-character restatement), but nothing is truly wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema present, the description compensates by naming the return type (ak.search.v1) and its fields, and it closes the loop by stating no decision is produced. Combined with the explicit routing guidance, an agent has everything needed to select and invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so query and limit are already documented in structured form; the description largely restates the 500-character query constraint and adds only the useful note that no prior call is needed. The limit parameter is not mentioned in the description at all. Baseline 3 is appropriate when the schema carries the parameter burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Search) and resource (capability names, summaries, tasks, use-when conditions) with a stated ranking rule. It explicitly distinguishes itself from named siblings get_capability, resolve_task, and evaluate_capability, so an agent can route 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Contains explicit 'Use when:' and 'Not for:' clauses, each with the alternative tool to call instead (resolve_task, evaluate_capability, get_capability). The condition that selects this tool versus its siblings is fully spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unlock_capabilityUnlock a purchased capabilityAIdempotentInspect
Exchange the license key from the checkout (a purchase requires operator approval) for a signed entitlement and a download link that lasts at most 15 minutes. How the key is handled: the privacy page at /legal/privacy/. Repeating it with the same key is safe and never charges. Use when: your operator completed the hosted checkout and gave you the license key. Not for: a price or a checkout link (get_quote); a free capability downloads from its page. Input: the capability id and the license key, plus quote_id and evaluation_id when you have them. Output: a signed entitlement, a purchase_ref for report_outcome and the download link.
| Name | Required | Description | Default |
|---|---|---|---|
| quote_id | No | The quote_id of the quote the purchase followed, if any (links the records; never changes the price). | |
| capability | Yes | Capability id (ak:publisher:name or ak:publisher:name:x.y.z), ak:// URI or slug. | |
| license_key | Yes | License key from the checkout. | |
| evaluation_id | No | The evaluation_id from evaluate_capability, if you evaluated first. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: states the purchase requires operator approval, that the download link expires in at most 15 minutes, and that repeating with the same key is safe and never charges (a richer, more actionable statement of idempotency than idempotentHint alone). It also explains key handling via the privacy page and that purchase_ref feeds report_outcome.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core exchange action, then scopes usage and I/O in clearly separated clauses. Slightly dense, with one awkward fragment ('How the key is handled: the privacy page at /legal/privacy/.') and a redundant restatement of input already in the schema, but overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description names the return payload (signed entitlement, purchase_ref, download link) and its expiry, plus the approval prerequisite and idempotency behavior. An agent has everything needed to call it correctly in sequence.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds usage guidance beyond the schema by clarifying that quote_id and evaluation_id are supplied 'when you have them' and linking them to prior steps (quote, evaluation). This adds conditional/relational meaning the flat schema does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb+resource: exchanging a checkout license key for a signed entitlement and a time-limited download link. It also explicitly contrasts itself with get_quote and free capability downloads, so an agent can distinguish it from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Contains explicit 'Use when:' (operator completed hosted checkout and gave the license key) and 'Not for:' clauses naming the alternative tool (get_quote) and the free-download path. Nothing about when to invoke 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.
5 tool updates
- Changed
compare_capabilities4 fields changed- added
Input schema / properties / capabilities / descriptionAdded value: +"Two to five capabilities to compare, each as an id, ak:// URI or slug." - added
Input schema / properties / constraints / descriptionAdded value: +"Limits you set for the answer; a capability outside them is reported as blocked, with the reason code." - added
Input schema / properties / constraints / properties / max_cost_usd / descriptionAdded value: +"The highest price in USD you accept; a capability priced above it is blocked (over_max_cost)." - added
Input schema / properties / constraints / properties / minimum_confidence / descriptionAdded value: +"The lowest confidence in the measured saving you accept, from 0.5 to 0.999 (default 0.9); below it the answer is blocked (below_minimum_confidence)."
- Changed
evaluate_capability8 fields changed- added
Input schema / properties / budget_policy / properties / absolute_purchase_limit_usd / descriptionAdded value: +"The highest price in USD for one purchase; a price above it is outside the policy." - added
Input schema / properties / budget_policy / properties / auto_purchase / descriptionAdded value: +"When your operator allows a purchase without asking first: enabled (true or false), max_price_usd, and minimum_expected_roi (expected net saving divided by the price). The answer says whether the policy would allow it; these tools never charge." - added
Input schema / properties / budget_policy / properties / human_approval_required / descriptionAdded value: +"above_usd: a price above this amount in USD needs your operator's approval even where auto_purchase is enabled." - added
Input schema / properties / budget_policy / properties / monthly_budget_usd / descriptionAdded value: +"Your operator's budget for this month in USD." - added
Input schema / properties / budget_policy / properties / spent_this_month_usd / descriptionAdded value: +"What is already spent of that budget this month in USD (0 when left out)." - added
Input schema / properties / constraints / descriptionAdded value: +"Limits you set for the answer; a capability outside them is reported as blocked, with the reason code." - added
Input schema / properties / constraints / properties / max_cost_usd / descriptionAdded value: +"The highest price in USD you accept; a capability priced above it is blocked (over_max_cost)." - added
Input schema / properties / constraints / properties / minimum_confidence / descriptionAdded value: +"The lowest confidence in the measured saving you accept, from 0.5 to 0.999 (default 0.9); below it the answer is blocked (below_minimum_confidence)."
- Changed
report_outcome8 fields changed- added
Input schema / properties / baseline_cost_estimate_usd / descriptionAdded value: +"What one run of this task costs you without the capability, in USD." - added
Input schema / properties / cost_usd / descriptionAdded value: +"What the run cost you in USD." - added
Input schema / properties / latency_ms / descriptionAdded value: +"Wall-clock time of the run in milliseconds." - added
Input schema / properties / success / descriptionAdded value: +"Whether the task reached its goal." - added
Input schema / properties / tokens_in / descriptionAdded value: +"Input tokens the run used." - added
Input schema / properties / tokens_out / descriptionAdded value: +"Output tokens the run used." - added
Input schema / properties / tool_calls / descriptionAdded value: +"Tool calls the run made." - added
Input schema / properties / used_capability / descriptionAdded value: +"Whether the capability was used in this run; false reports a run done without it."
- Changed
resolve_task3 fields changed- added
Input schema / properties / constraints / descriptionAdded value: +"Limits you set for the answer; a capability outside them is reported as blocked, with the reason code." - added
Input schema / properties / constraints / properties / max_cost_usd / descriptionAdded value: +"The highest price in USD you accept; a capability priced above it is blocked (over_max_cost)." - added
Input schema / properties / constraints / properties / minimum_confidence / descriptionAdded value: +"The lowest confidence in the measured saving you accept, from 0.5 to 0.999 (default 0.9); below it the answer is blocked (below_minimum_confidence)."
- Changed
search_capabilities1 field changed- added
Input schema / properties / limit / descriptionAdded value: +"How many results to return, from 1 to 50 (default 10)."
1 tool update
- Added
resolve_task
10 tool updates
- First observed
compare_capabilities - First observed
estimate_roi - First observed
evaluate_capability - First observed
get_benchmark - First observed
get_capability - First observed
get_provenance - First observed
get_quote - First observed
report_outcome - First observed
search_capabilities - First observed
unlock_capability
Related MCP Connectors
Agent rental platform: web-vuln scanning, OSINT and red-team tools via subscription.
Find and try paid AI agent skills for security, on-chain data, code, markets, research and news.
Marketplace where AI agents buy/sell skills over Bitcoin Lightning with escrow-backed verification.
Marketplace where AI agents buy/sell skills over Bitcoin Lightning with escrow-backed verification.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceAI skills marketplace, management and connector1Apache 2.0
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to intelligently match tasks to skills through semantic embeddings, track skill effectiveness, detect skill gaps, and discover new skills from external sources.Apache 2.0
- AlicenseAqualityBmaintenanceEnables AI agents to manage, search, plan, and execute reusable skills while automatically enforcing always-on coding and reasoning guidelines. It provides workflow orchestration, permission-controlled execution, dynamic skill registration, and feedback-based ranking.98 npm1MIT
- AlicenseAqualityAmaintenanceA self-hostable semantic skill registry for AI agents, providing searchable, versioned, and verified skills over a single MCP endpoint with per-agent private vaults and trust tiers.7Apache 2.0
Glama MCP Gateway
Add one secure layer between your agents and this server.