Agentic Endpoints
Server Details
Pay-per-call tools for autonomous agents, settled in USDC on Base via x402.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 24 tools
Most tools target clearly distinct resources or operations, aided by domain prefixes like meetings_, vault_, reach_, and once_key_. The main overlap is meetings_search versus meetings_summarize, though their descriptions explicitly guide when to use excerpts versus a written answer. Similarly, reach and reach_report differ mainly in scope and are adequately distinguished.
Tool names are consistently snake_case and mostly follow a predictable resource_action pattern within families such as meetings_get, vault_store, and once_key_claim. Minor deviations exist for standalone tools like compress, scrape, and reach, but the set remains readable and coherent.
At 24 tools, the server is on the heavy side for a single MCP surface. The tools are grouped into several coherent domains, but the overall count is high enough that discovery and selection may become cluttered for an agent.
Core lifecycles are mostly covered: vault has store/retrieve/list/exists/delete/rotate, once_key has claim/complete/release, and meetings support import/list/get/search/summarize. Minor gaps include no obvious meeting delete/update tool and no MCP tool for buying credits, though the latter is referenced as an external endpoint.
Available Tools
24 toolscompressCompress text to a token budgetARead-onlyIdempotentInspect
Reduce text to fit a token budget, preserving whole sentences and reporting before/after token estimates. Costs $0.010 in USDC on Base, paid via the x402 protocol, or from a credit token — call credits_trial for free credit if you have neither.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text to compress | |
| strategy | No | Compression strategy (default extractive) | |
| credit_token | No | Optional. A credit token from credits_trial or /credits/buy. Supplying it pays for this call from that balance, so no x402 payment or wallet is needed. | |
| target_tokens | No | Approximate token budget |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes | The compressed text |
| ratio | Yes | compressed_length / original_length. Lower is more aggressive. |
| strategy | No | Strategy applied, echoing your request |
| original_length | Yes | Input length in characters |
| compressed_length | Yes | Output length in characters |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses a behavior not present in annotations: the call costs $0.010 paid via x402 or a credit token, plus it promises whole-sentence preservation and before/after token estimates. These are meaningful runtime traits beyond the readOnly/idempotent hints, and there is no contradiction with the annotations.
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?
Two sentences with no filler: the first states the operation and its guarantee, the second states cost and payment alternatives. The most important information is front-loaded and every clause supports an invocation decision.
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 an output schema present and full parameter documentation in the schema, the description needs only to add what schemas don't show: cost, payment route, and the credits_trial fallback. It covers those; a small gap is that it doesn't mention the strategy default, but that is already in the input schema.
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 schema already documents text, strategy, credit_token, and target_tokens. The description adds only high-level context (whole-sentence preservation, cost) rather than new parameter-level detail, matching the baseline for full schema coverage.
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?
Description opens with a specific verb and object ('Reduce text') and defines a precise goal: fit a token budget while preserving whole sentences and reporting before/after estimates. This clearly separates it from siblings like meetings_summarize and names the resource it acts on.
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 supplies important context for when to use the tool (when text must fit a token budget) and directly handles the payment prerequisite by pointing to credits_trial. It does not explicitly exclude alternatives or tell an agent when not to use compress, so the guidance remains implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
credits_balanceCheck how much credit a token has leftARead-onlyIdempotentInspect
Free. Reports the remaining balance on a credit token so you can tell 'out of credit' apart from 'the call failed', which otherwise look identical from the outside. This tool is free; no payment is required.
| Name | Required | Description | Default |
|---|---|---|---|
| credit_token | Yes | The credit token to check |
Output Schema
| Name | Required | Description |
|---|---|---|
| currency | No | Always 'USD' |
| balance_usd | Yes | Credit remaining, in dollars |
| balance_micros | No | Credit remaining in integer micro-dollars, the authoritative figure |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, and the description does not contradict them. It adds useful behavioral context that the tool is free and intended as a diagnostic check, which goes beyond the structured annotations.
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?
The description is short and front-loaded, but the word 'free' appears twice: once in the opening sentence and again in the final sentence. This redundancy means not every sentence earns its place, though the overall length is still appropriate.
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 the single parameter, full schema coverage, existing output schema, and annotations covering safety traits, the description is complete. It includes the key diagnostic purpose and cost information an agent needs to use the 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 the schema fully documents the credit_token parameter. The description adds no additional parameter-level meaning beyond calling it a credit token, which aligns with the baseline score of 3.
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 description clearly states it reports the remaining balance on a credit token, using a specific verb and resource. It does not explicitly differentiate itself from sibling tools like credits_trial, so it falls just short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear use case: distinguishing 'out of credit' from 'the call failed'. It does not mention when not to use the tool or name alternatives, but the diagnostic purpose is clear enough for an agent to select it appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
credits_trialGet free credit to try the paid toolsAIdempotentInspect
Free, and the first tool to call if any other tool has told you payment is required. Returns a credit_token carrying $0.10 of credit — roughly ten calls at the standard price — with no wallet, no signature, no account and no email. Pass the returned token as the credit_token argument to any paid tool and it will run without an x402 payment. One allowance per caller: asking again returns the same token and whatever balance is left on it, never a refill. When it runs out, buy more with the /credits/buy endpoint. This tool is free; no payment is required.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| next | No | What to do when it runs out |
| note | No | Why a second request returns the same token rather than more credit |
| trial | Yes | Always true; distinguishes this from purchased credit |
| usage | No | How to spend the token |
| exhausted | Yes | True when the allowance is spent. Asking again will not refill it, so buy credit or pay per call. |
| balance_usd | Yes | Credit remaining, in dollars |
| granted_usd | No | Size of the one-off allowance |
| credit_token | Yes | The token to pass as `credit_token` to any paid tool. Shown here and derivable again from the same caller, but not recoverable from us. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations say readOnlyHint=false but idempotentHint=true and destructiveHint=false, which aligns with 'one allowance per caller' returning the same token without side effects. The description adds high-value context beyond annotations: no wallet, signature, account, or email required; no x402 payment; the exact value and approximate call count; and the non-refill behavior. It clarifies the stateful allowance semantics and downstream token use.
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 core value (free, first tool to call), then covers return value, usage, limits, and alternatives in four compact sentences. Every sentence adds unique information without repetition or fluff.
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 a zero-param, free tool with an output schema, the description covers purpose, usage, return value semantics (token and value), limitations (one allowance, no refill), and the alternative purchase path. It is complete enough for an agent to invoke and use it 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?
There are zero parameters, so baseline is 4. The description explains how to use the returned credit_token as an argument to paid tools, which is useful integration guidance beyond the empty schema. No parameter syntax is needed, but it could mention whether the token is passed as a string or object if relevant.
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 description states a specific verb and resource: it grants free credit and returns a credit_token worth $0.10. It also distinguishes itself from siblings by naming itself as the first tool to call when another tool reports payment required, and explicitly contrasts with /credits/buy as the refill path.
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 when-to-use guidance: call this first if any tool says payment is required. It also states when not to expect more: one allowance per caller, asking again returns the same token, and refills come from /credits/buy. This is precise routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meetings_getRead one meeting in fullARead-onlyIdempotentInspect
Fetch a single meeting by meeting_id, including its full transcript when it was imported as queryable. Use this after meetings_search has identified the meeting you want. A 'content_missing' status means the record exists but its stored text could not be found -- that is a broken record, not an empty meeting, so do not report it as one. Costs $0.005 in USDC on Base, paid via the x402 protocol, or from a credit token — call credits_trial for free credit if you have neither.
| Name | Required | Description | Default |
|---|---|---|---|
| namespace | Yes | Isolation scope holding your meetings | |
| meeting_id | Yes | Returned by meetings_import or meetings_search | |
| credit_token | No | Optional. A credit token from credits_trial or /credits/buy. Supplying it pays for this call from that balance, so no x402 payment or wallet is needed. | |
| namespace_token | Yes | One-time token issued by the first call that claimed this namespace. Required for every later call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| title | No | Meeting title |
| status | Yes | 'ok' on success |
| ciphertext | No | Client-encrypted transcript, for private meetings |
| meeting_id | Yes | Identifier of the meeting |
| transcript | No | Plaintext transcript, for queryable meetings |
| visibility | No | 'queryable' or 'private' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly, idempotent), the description discloses the conditional transcript inclusion ('when it was imported as queryable'), the meaning of 'content_missing' as a broken record rather than an empty meeting, and the concrete $0.005 cost with x402/credit token alternatives. These are exactly the behavioral details an agent needs that the schema 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, each doing distinct work: scope, usage ordering, error interpretation, and payment. It is front-loaded with the primary purpose and contains no filler or repeated schema 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?
For a single-record read tool, the description covers when to call it, what is included, how to interpret a problematic response, and how the call is paid. The presence of an output schema means return-value detail is not needed in the description, and annotations cover safety and idempotency.
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%, with every parameter already explained, including the meaning of meeting_id and credit_token. The description adds no new parameter-level syntax or constraints, so per the baseline rule it scores 3.
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 description opens with a specific verb and resource: 'Fetch a single meeting by meeting_id, including its full transcript.' The phrase 'after meetings_search has identified the meeting you want' distinguishes it from the search sibling, and the title reinforces the one-record scope. This is unambiguous and immediately telegraphs the tool's niche.
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?
Explicitly states 'Use this after meetings_search has identified the meeting you want,' giving a clear when-to-use directive. It also covers the payment fallback path via credits_trial. However, it does not explicitly contrast with meetings_list or state when not to use it, so it earns a 4 rather than a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meetings_importImport a meeting transcriptAInspect
Store a transcript so it can be searched later. Accepts a raw WebVTT or SRT export straight from Zoom, Teams, Meet or a notetaker -- you do NOT need to strip timestamps or parse it first, and cues split across timing boundaries are merged so phrases still match. visibility is a required decision and cannot be guessed for you: 'queryable' stores plaintext, indexes it, and means this service can read it; 'private' stores ciphertext you encrypted yourself, which is unreadable here and therefore NEVER searchable. Send transcript for queryable and ciphertext for private -- the mismatched combinations are refused rather than silently doing the wrong thing. The first import into a namespace returns a namespace_token shown exactly once; save it or the namespace is unrecoverable. Costs $0.010 in USDC on Base, paid via the x402 protocol, or from a credit token — call credits_trial for free credit if you have neither.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Human-readable meeting title | |
| source | No | Optional hint about the export format. Ignored if it disagrees with the file: WebVTT and SRT are detected from the content itself, unpacked into speaker-attributed text, and any speakers found are added to participants. Plain text is stored verbatim. | |
| namespace | Yes | Isolation scope, e.g. my-meetings-<uuid> | |
| ciphertext | No | Client-side encrypted transcript. Only valid with visibility 'private'. | |
| transcript | No | Plaintext transcript. Only valid with visibility 'queryable'. | |
| visibility | No | 'queryable' (plaintext, searchable, readable by this service) or 'private' (ciphertext, never searchable). Defaults to private. | |
| occurred_at | No | ISO-8601 time the meeting happened | |
| credit_token | No | Optional. A credit token from credits_trial or /credits/buy. Supplying it pays for this call from that balance, so no x402 payment or wallet is needed. | |
| participants | No | Optional attendees | |
| namespace_token | No | One-time token issued by the first call that claimed this namespace. Required for every later call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | Present alongside a newly issued namespace_token |
| status | Yes | 'imported' on success |
| meeting_id | Yes | Identifier for later meetings_get calls |
| searchable | No | False for private meetings, which are never searchable |
| size_bytes | No | Stored size |
| visibility | No | 'queryable' or 'private' |
| namespace_token | No | Issued only on the first import into a namespace, shown exactly once |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the annotations, which only say the operation is not read-only, not open-world, not idempotent, and not destructive. It discloses concrete behavioral consequences: the first import creates a namespace_token shown exactly once, losing it makes the namespace unrecoverable, the call costs $0.010, private imports are never searchable, and mismatched transcript/visibility pairs are refused. This is rich, honest behavioral disclosure.
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?
The description is long but every sentence earns its place: purpose, input format flexibility, privacy/searchability trade-offs, one-time token handling, and cost/payment. It is front-loaded with the core purpose and then builds outward into operational details. There is no filler or redundant restating of the schema.
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 the tool's complexity, the description covers almost everything an agent needs: raw format handling, cue merging, visibility semantics, namespace token persistence, and payment. An output schema exists, so detailed return values do not need to be explained. The only notable gap is the inconsistency between the description's claim that visibility is required and the schema's optional default, which leaves room for agent misinterpretation.
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 already solid. The description adds valuable cross-parameter semantics: transcript is paired with 'queryable', ciphertext with 'private', namespace_token is required for later calls, and credit_token is an alternative payment path. However, it creates some confusion by calling visibility a 'required decision that cannot be guessed' while the schema lists it as optional with a default of 'private'. This tension prevents a top score.
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 description immediately states a specific action and resource: 'Store a transcript so it can be searched later.' It also explains that raw WebVTT/SRT inputs are accepted directly, which clearly distinguishes this ingestion tool from sibling tools like meetings_get, meetings_search, and meetings_summarize. It is not a tautology and meaningfully expands on the title.
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 description gives strong contextual guidance: it says when to use the tool (raw transcript from Zoom/Teams/Meet/notetaker), removes a common preprocessing burden, and even routes users without credit to credits_trial. However, it does not explicitly state when to prefer this tool over related siblings like vault_store or compress, so it stops short of full when-not/alternatives guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meetings_listList your meetingsARead-onlyIdempotentInspect
List the meetings in a namespace newest first, with titles, dates, participants and whether each one is searchable. Never returns transcripts. Useful for orienting before a search, and for finding meetings that are private and therefore invisible to meetings_search. Costs $0.005 in USDC on Base, paid via the x402 protocol, or from a credit token — call credits_trial for free credit if you have neither.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results, 1-500 (default 100) | |
| namespace | Yes | Isolation scope holding your meetings | |
| credit_token | No | Optional. A credit token from credits_trial or /credits/buy. Supplying it pays for this call from that balance, so no x402 payment or wallet is needed. | |
| namespace_token | Yes | One-time token issued by the first call that claimed this namespace. Required for every later call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | Number of meetings returned |
| status | Yes | 'ok' on success |
| meetings | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description substantially extends the annotations: it reveals the newest-first ordering, the transcript-exclusion behavior, the ability to list private meetings, and the exact cost/payment paths including the credits_trial fallback. None of this contradicts the readOnly, idempotent, or openWorld annotations.
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?
Every sentence earns its place: core behavior, key limitation, usage context, and payment instructions. The description is front-loaded with the action and result shape, and it is not padded with redundant restatements of the title or schema.
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 the output schema and full parameter documentation, the description is complete enough for an agent to select and invoke the tool correctly. It covers ordering, visibility scope, the transcript limitation, cost, payment options, and how to get free credit, leaving no critical operational gap.
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%, with each parameter already documented meaningfully. The description adds no extra parameter-level semantics, so the baseline of 3 applies rather than requiring compensation for missing schema detail.
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 description names a specific verb ('List'), a resource ('meetings in a namespace'), and the exact fields returned: titles, dates, participants, and searchable status. It also differentiates itself from meetings_search by stating it can surface private meetings that search cannot see.
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 description gives clear use cases: orienting before a search and finding private meetings invisible to meetings_search. It also states that transcripts are never returned, which is a useful exclusion, though it does not explicitly name meetings_get as the alternative for transcript retrieval.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meetings_searchSearch your meeting transcriptsARead-onlyIdempotentInspect
Ask a question across every meeting you have imported as queryable, and get back ranked excerpts with the meeting they came from. This is the tool to use when the user refers to something that was said, agreed, or decided in a call -- 'what did we decide about pricing', 'who owned the migration', 'when did we say we would ship'. Returns 'searched_meetings' and 'private_meetings_skipped': meetings imported as private are encrypted and CANNOT be searched, so if searched_meetings is 0 an empty result means nothing was searched, NOT that the topic was never discussed. Use meetings_get to read a full transcript once you have found the right meeting. Costs $0.010 in USDC on Base, paid via the x402 protocol, or from a credit token — call credits_trial for free credit if you have neither.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results, 1-50 (default 10) | |
| query | Yes | FTS5 match expression. Use quotes for phrases, e.g. "budget review". Prefer a few distinctive words over a whole sentence. | |
| namespace | Yes | Isolation scope holding your meetings | |
| credit_token | No | Optional. A credit token from credits_trial or /credits/buy. Supplying it pays for this call from that balance, so no x402 payment or wallet is needed. | |
| namespace_token | Yes | One-time token issued by the first call that claimed this namespace. Required for every later call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | Number of matches returned |
| query | No | The match expression that was run |
| status | Yes | 'ok' on a successful search |
| matches | Yes | Ranked excerpts, best first |
| searched_meetings | No | How many meetings were actually searched. If 0, an empty result means nothing was searchable, NOT that the topic was never discussed. |
| private_meetings_skipped | No | Encrypted meetings that could not be searched |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already mark the tool read-only and idempotent, and the description adds substantial beyond that: private meetings are encrypted and skipped, searched_meetings=0 means nothing was searched rather than the topic never arose, and the call costs $0.010 paid via x402 or credit token. These are exactly the non-obvious behaviors an agent needs to interpret results and avoid surprise payment failures.
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?
Every sentence earns its place: purpose, use-case triggers, return-value caveat, sibling routing, and cost disclosure. It is front-loaded with what the tool does and only then adds caveats, with no filler or repetition.
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 a tool with an output schema already present, the description covers all essential operational context: ranking behavior, private-meeting exclusion, empty-result interpretation, cost, payment method, and fallback credit path. An agent has everything it needs to select, call, and interpret 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 the schema already documents all five parameters, including FTS5 match syntax, namespace/token requirements, and the optional credit_token. The description reinforces high-level usage but does not need to add parameter-level detail; 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 and resource: asking a question across imported meetings and receiving ranked excerpts with the meeting source. It clearly distinguishes itself from meetings_get, which reads a full transcript, and the example queries make the search intent concrete.
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?
Explicitly states when to use this tool: whenever the user references something said, agreed, or decided in a call. It also routes to meetings_get for reading a full transcript after the right meeting is found, and warns that private meetings cannot be searched, setting correct expectations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meetings_summarizeAnswer a question from your meetingsARead-onlyIdempotentInspect
Ask a plain-language question and get a written answer grounded in the user's own meeting transcripts, with the meeting id cited after each claim. Prefer this over meetings_search when the user wants an ANSWER ('what did we decide about pricing?', 'who owned the migration?') rather than a list of excerpts to read themselves. Pass the question as the user asked it -- this is NOT FTS5 syntax, and the terms actually searched come back as terms so you can check the retrieval. IMPORTANT: a 'no_matches' status means no answer was generated, and 'searched_meetings': 0 means every meeting is private and NOTHING was read -- neither is evidence the topic was never discussed, and you must not report it as such. Meetings imported as private are encrypted and can never contribute to an answer; private_meetings_skipped says how many were left out. A 'truncated' meeting in consulted had only part of its transcript read, so its silence on a point is not evidence either. Costs $0.050 in USDC on Base, paid via the x402 protocol, or from a credit token — call credits_trial for free credit if you have neither.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max meetings to consult, 1-8 (default 5) | |
| question | Yes | The question in plain language, as the user asked it. Not a search expression. | |
| namespace | Yes | Isolation scope holding your meetings | |
| credit_token | No | Optional. A credit token from credits_trial or /credits/buy. Supplying it pays for this call from that balance, so no x402 payment or wallet is needed. | |
| namespace_token | Yes | One-time token issued by the first call that claimed this namespace. Required for every later call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| model | No | The model that produced the answer |
| terms | No | The search terms derived from the question |
| answer | No | The grounded answer with [meeting_id] citations, or null when nothing was summarised. |
| status | Yes | 'ok' when an answer was generated. 'no_matches', 'unusable_question' and 'content_missing' all mean NO answer was produced and must not be read as the topic being absent. |
| question | No | The question as asked |
| consulted | No | The meetings the answer was actually built from |
| ai_generated | No | True: `answer` was written by an AI model |
| searched_meetings | No | Queryable meetings available to search. 0 means nothing was read. |
| private_meetings_skipped | No | Encrypted meetings that could not contribute to the answer |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, and the description adds substantial behavioral context beyond them: no_matches means no answer was generated, zero searched_meetings means everything private and nothing read, private meetings are encrypted and skipped, truncated meetings cannot serve as evidence, and the cost/payment model. No contradiction with annotations exists.
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?
The description is longer than average but every sentence earns its place: purpose, usage rule, anti-pattern warning, failure semantics, privacy caveat, truncation caveat, and cost. It is front-loaded with the core action and differentiator, then layers critical operational warnings that directly affect how an agent should interpret results.
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 the output schema exists, the description need not explain return structure, and it instead covers the non-obvious semantics an agent needs to reason correctly: what no_matches and searched_meetings:0 really mean, the limitation of private and truncated meetings, and the payment path. Nothing needed for correct invocation or interpretation is missing.
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 beyond the schema: it clarifies that question is plain language, not a search syntax, that the terms actually searched come back for verification, and that credit_token can pay from a balance obtained via credits_trial or /credits/buy. This supplements structure without repeating it.
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 description opens with a specific verb and resource: ask a plain-language question and get a written answer grounded in meeting transcripts with cited meeting ids. It explicitly differentiates from meetings_search by describing the exact user intent that selects this tool, so an agent can distinguish it without opening the sibling 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?
Gives explicit when-to-use guidance: prefer meetings_summarize over meetings_search when the user wants an answer rather than a list of excerpts to read. It also instructs to pass the question exactly as the user asked it and explicitly warns that this is not FTS5 syntax, which prevents a common misuse.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
once_key_claimClaim an action exactly onceAIdempotentInspect
Atomic idempotency witness. Claims a {namespace, action_key} pair exactly once, so a fleet of agents cannot perform the same side effect twice. Call this BEFORE any non-idempotent action such as sending an email, charging a card, or posting an order. Returns one of: 'claimed' — you won, do the work, then call once_key_complete; 'in_progress' — another agent holds a live lease, wait retry_after seconds and do NOT do the work; 'duplicate' — already done, and the 'result' field carries the original outcome, so use it instead of repeating the work; 'held' — another agent claimed this key, set no lease, and has NOT completed it: there is no result and there may never be one, so do NOT do the work and do NOT treat it as done, because the key stays locked until expires_at; 'conflict' — the same key was claimed with a different payload hash, so your key derivation is wrong. Backed by a strongly consistent Durable Object; this is not something an agent can safely reimplement locally. Costs $0.010 in USDC on Base, paid via the x402 protocol, or from a credit token — call credits_trial for free credit if you have neither.
| Name | Required | Description | Default |
|---|---|---|---|
| ttl | No | Claim lifetime in seconds (default 86400) | |
| lease_ttl | No | Seconds you have to call once_key_complete before the claim is treated as abandoned and another agent may take it over. Set this if your work could crash partway. Omit it to hold the claim for the full ttl, which guarantees nothing else can ever run the side effect. | |
| namespace | Yes | Isolation scope, e.g. your application name | |
| action_key | Yes | Stable identifier for the action being claimed | |
| credit_token | No | Optional. A credit token from credits_trial or /credits/buy. Supplying it pays for this call from that balance, so no x402 payment or wallet is needed. | |
| payload_sha256 | No | Optional hash of the action payload. If it differs from the stored hash, the result is a conflict. | |
| namespace_token | No | One-time token issued by the first call that claimed this namespace. Required for every later call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | Present alongside a newly issued namespace_token |
| result | No | The recorded result, present when status is 'duplicate'. |
| status | Yes | 'claimed' means you own the action and must perform it. 'duplicate' means someone already did: do NOT repeat the side effect, use `result` instead. |
| receipt | No | Payment receipt |
| namespace | No | Isolation scope |
| action_key | Yes | The key that was claimed |
| claimed_at | No | ISO-8601 claim time |
| expires_at | No | ISO-8601 expiry of the claim record |
| has_result | No | Distinguishes a recorded null result from no result at all |
| namespace_token | No | Issued only on the first claim in a namespace, shown exactly once |
| lease_expires_at | No | Call once_key_complete before this or the claim may be taken over |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only provide basic flags (readOnlyHint: false, idempotentHint: true). The description goes far beyond that by explaining the underlying consistency (strongly consistent Durable Object), cost details ($0.010 USDC), payment methods (x402 or credit token), lease semantics (lease_ttl vs ttl, abandonment, takeover), and the meaning of 'held' (key stays locked until expires_at). It also clarifies that 'conflict' indicates a key derivation error. None of these are in the annotations, and there is 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?
The description is long but every clause earns its place. It opens with the core purpose, then the invocation timing, then the return-value contract, then cost/payment. The information is dense yet logically ordered, with no fluff. For a tool with five distinct outcomes and a payment model, this level of detail is necessary and well-structured.
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 the complexity (7 params, 5 return states, payment integration), the description is remarkably complete. It covers all return values, retry behavior, lease expiration, cost, payment fallback, and the recommendation to use credits_trial. It even notes what not to do in each scenario. An agent has everything needed to invoke this correctly without further investigation.
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?
The schema already documents all 7 parameters with 100% coverage, so the baseline is 3. The description adds value by explaining the relationship between lease_ttl and ttl, the consequence of omitting lease_ttl (hold for full ttl), the requirement of namespace_token for later calls, and the conflict semantics tied to payload_sha256. It doesn't restate each parameter's schema description but gives usage-oriented context that helps an agent choose and set them correctly.
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 description states a specific verb ('claims'), a concrete resource ('{namespace, action_key} pair'), and the exact purpose: to ensure a side effect is performed exactly once across a fleet of agents. It distinguishes itself from siblings like once_key_complete and once_key_release by clarifying that this is the entry point before any non-idempotent action. The primary behavior is unmistakable.
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 explicitly says 'Call this BEFORE any non-idempotent action' and lists concrete examples (email, charge card, post order). It then enumerates the five possible return values and the precise action an agent should take for each (e.g., wait retry_after seconds, use the result, do not do the work). It also mentions the fallback to credits_trial for free credit and warns against reimplementation. This leaves no ambiguity about when and how to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
once_key_completeRecord the outcome of a claimed actionAIdempotentInspect
Free. Records the result of work you performed under a claim from once_key_claim. Every later claim of that action_key returns 'duplicate' along with this result, which is what lets another agent continue without repeating the side effect. Always call this after the work succeeds — a claim with no recorded result leaves every other agent unable to learn what happened. Completion is final and cannot be overwritten. This tool is free; no payment is required.
| Name | Required | Description | Default |
|---|---|---|---|
| ttl | No | How long to retain the result, in seconds (default 86400) | |
| result | No | Any JSON value describing the outcome, up to 16 KB serialized. Store large payloads elsewhere and record a reference. | |
| namespace | Yes | Isolation scope used when the key was claimed | |
| action_key | Yes | The action_key you claimed | |
| namespace_token | No | One-time token issued by the first call that claimed this namespace. Required for every later call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | No | The stored result, replayed to later claimants. |
| status | Yes | 'completed' |
| action_key | Yes | The key whose outcome was recorded |
| expires_at | No | When the recorded result is discarded |
| has_result | No | Distinguishes a recorded null result from no result at all |
| completed_at | No | ISO-8601 completion time |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond annotations by disclosing that completion is final and cannot be overwritten, that later claims return 'duplicate' with the recorded result, and that recording is what allows another agent to continue. It also notes the tool is free. These are meaningful behavioral traits not captured by annotations alone.
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?
The description is front-loaded with the core purpose and immediate cost signal ('Free'), then explains consequences and finality. It is slightly redundant by stating 'Free' at the start and again at the end, but overall every sentence earns its place.
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 the output schema exists and parameter coverage is 100%, the description supplies all necessary behavioral context: when to call, what happens afterward, how it affects other agents, and finality. No critical operational detail is missing for correct invocation.
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 parameters are already well documented. The description adds only minimal reinforcement ('action_key you claimed', 'result' of the work) and does not need to compensate for missing parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('Records'), a clear resource ('the result of work you performed under a claim from once_key_claim'), and distinguishes it from the related once_key_claim tool by explaining the post-claim completion role. This is immediately clear and differentiated.
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 explicitly states when to call the tool: 'Always call this after the work succeeds.' It also explains the consequence of not calling it, which guides correct usage. It does not mention the alternative failure path via once_key_release, but the primary usage condition is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
once_key_releaseRelease a claim whose work failedAIdempotentInspect
Free. Surrenders a claimed action_key so a retry can start immediately instead of waiting out the lease. Call this when the work you claimed fails. Refuses if the key was already completed, because releasing it would discard the recorded result and allow the side effect to run twice. This tool is free; no payment is required.
| Name | Required | Description | Default |
|---|---|---|---|
| namespace | Yes | Isolation scope used when the key was claimed | |
| action_key | Yes | The action_key to release | |
| namespace_token | No | One-time token issued by the first call that claimed this namespace. Required for every later call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | 'released' |
| action_key | Yes | The key that was surrendered |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses a key refusal behavior: releasing an already completed key is refused because it would discard the recorded result and risk running the side effect twice. This goes beyond the annotations by explaining failure semantics and safety rationale. No contradiction with annotations.
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?
Mostly efficient and informative, but the free/no-payment point is stated twice ('Free.' and 'This tool is free; no payment is required.'), wasting a sentence. Otherwise tightly written and front-loaded.
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 a moderate-complexity tool with full schema coverage and an output schema, the description covers what the tool does, when to call it, and the important refusal behavior. An agent has enough to invoke it correctly and avoid dangerous misuse.
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 parameters are already fully documented. The description adds little param-specific detail, but the baseline of 3 applies because the schema carries the load.
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 ('surrenders'/'release') and resource ('claimed action_key'), with a clear effect: letting a retry start immediately. This distinguishes it from sibling claim/complete operations even though those tools aren't named.
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?
Explicitly says 'Call this when the work you claimed fails' and explains the benefit over waiting out the lease. It does not name an alternative tool for success cases, but the condition is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pdf_parseExtract text from a PDFARead-onlyIdempotentInspect
Extract text from a PDF by URL. Handles compressed streams, PDF 1.5+ object streams and ToUnicode CMaps, and reports encrypted or image-only documents honestly instead of returning garbage. Costs $0.020 in USDC on Base, paid via the x402 protocol, or from a credit token — call credits_trial for free credit if you have neither.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | HTTPS URL of the PDF | |
| max_pages | No | Optional page cap | |
| credit_token | No | Optional. A credit token from credits_trial or /credits/buy. Supplying it pays for this call from that balance, so no x402 payment or wallet is needed. |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | The PDF that was fetched |
| pages | Yes | |
| page_count | Yes | Pages extracted |
| extracted_at | No | ISO-8601 extraction time |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only, idempotent, and open-world. The description adds valuable behavioral disclosures beyond that: how it handles compressed streams, PDF 1.5+ object streams, ToUnicode CMaps, and that it returns honest diagnostics for encrypted or image-only PDFs instead of garbage. It also surfaces the cost and payment flow, which materially affects invocation.
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?
Two sentences with no filler. The first sentence states the core action; the second packs meaningful capability, failure behavior, and payment details. Every sentence earns its place and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only extraction tool with a full output schema, the description covers what the tool does, what PDF complexities it handles, how it behaves on problematic inputs, and how to pay. The only implicit requirement, that the URL be HTTPS, is already specified in the schema. Nothing needed for correct invocation is missing.
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 schema already documents all three parameters. The description adds a little color around the credit_token payment flow and 'by URL' framing, but it does not significantly extend parameter meaning beyond what the schema provides. 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?
The description opens with a specific verb and resource: 'Extract text from a PDF by URL.' It clearly identifies the tool's core function and distinguishes it from sibling tools like scrape or meetings_* by being PDF-specific and text-extraction-focused.
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 description makes clear when the tool applies (PDFs by URL) and provides practical context about payment methods and the credits_trial alternative. It does not explicitly name excluded cases or alternative tools, but the purpose is specific enough that the usage context is evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reachCheck whether agents can reach a URLARead-onlyIdempotentInspect
Send one GET to a URL as each of nine common clients (curl, node, Python urllib, Python requests, libwww-perl, a Chrome browser, GPTBot, ClaudeBot, Googlebot) and report which are refused and why, such as a Cloudflare 1010 block on Python's urllib. Also reports robots.txt blocks on AI crawlers, whether /llms.txt exists, and whether the http-to-https redirect keeps POST bodies. Use before relying on a site or API from code, or to check your own. Read-only; private addresses are refused. Costs $0.010 in USDC on Base, paid via the x402 protocol, or from a credit token — call credits_trial for free credit if you have neither.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public HTTP(S) URL to check | |
| credit_token | No | Optional. A credit token from credits_trial or /credits/buy. Supplying it pays for this call from that balance, so no x402 payment or wallet is needed. |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | The URL that was scanned |
| status | Yes | 'ok' when the scan ran |
| clients | Yes | One row per client identity |
| summary | No | One sentence stating the result |
| verdict | Yes | 'pass' (every client reached), 'shadowed' (some refused while others reached: the fixable finding), 'refused' (all refused) or 'unreachable' |
| llms_txt | No | Whether /llms.txt is a real text file |
| robots_txt | No | robots.txt status and the AI crawlers it shuts out of the whole site |
| scanned_at | No | ISO-8601 time of the scan |
| http_redirect | No | How http:// redirects to https://, and whether POST survives it |
| measured_from | No | Where the scan ran, and what that means for the results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the readOnlyHint/openWorldHint/idempotentHint annotations by disclosing that private addresses are refused, that AI-crawler robots.txt behavior and /llms.txt presence are probed, and that POST-body preservation across http-to-https redirects is tested. It also states the exact cost ($0.010 USDC on Base), the payment mechanism (x402 or credit token), and the free-credit fallback.
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?
Purpose and client list are front-loaded in the first sentence, with secondary behaviors and payment details following. The nine-client parenthetical is long but each entry is informative rather than filler; overall it earns most of its length for a tool with this many facets.
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?
A read-only tool with an output schema and full annotation coverage needs no return-value documentation, and the description still explains what categories of findings appear and what it will not do (private addresses). Authentication/payment prerequisites are fully covered, so an agent has everything required to invoke 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 description coverage is 100%, so the schema already explains both url and credit_token, including the token's origin and purpose. The description only adds the pricing context around credit_token and the private-address restriction on url, which is useful but marginal against a fully documented 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 description names a specific action (send one GET as each of nine named clients) and the exact resource (a URL), plus the concrete outputs it reports (refusals, robots.txt AI-crawler blocks, /llms.txt, POST-body redirect behavior). It does not, however, distinguish itself from siblings like reach_report, reach_report_rescan, or reach_report_status, so an agent must infer the difference between a one-off check and a persistent report.
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?
"Use before relying on a site or API from code, or to check your own" gives explicit context for when to call it, and the closing sentence routes to credits_trial when the caller lacks payment. No exclusion criteria or direct sibling comparison (e.g., when to prefer reach_report for ongoing monitoring) is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reach_reportFull reachability report for a site ($69)AInspect
Order a full reachability report for one site: up to 20 pages, each checked from nine common clients. Returns a report_id and report_url at once; the pages are scanned in the background, about ten seconds each. The finished report gives the likely cause of every refusal with exact fix steps and a reproducing curl command, a prioritised fix list, and three free re-scans within 30 days. Use reach_report_status to read it. For a single quick check use the reach tool instead. Costs $69.00 in USDC on Base, paid via the x402 protocol, or from a credit token — call credits_trial for free credit if you have neither.
| Name | Required | Description | Default |
|---|---|---|---|
| urls | Yes | 1 to 20 public HTTP(S) URLs on one site (at most 3 hostnames) | |
| credit_token | No | Optional. A credit token from credits_trial or /credits/buy. Supplying it pays for this call from that balance, so no x402 payment or wallet is needed. |
Output Schema
| Name | Required | Description |
|---|---|---|
| pages | No | Pages that will be scanned |
| status | Yes | 'accepted' once the report is queued |
| report_id | Yes | Keep this: it is the only way to read the report |
| report_url | No | The report as a web page |
| eta_seconds | No | Roughly how long until the report is complete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare a generic non-readonly, non-destructive profile (openWorldHint=false, idempotentHint=false), which is thin for an async paid batch job. The description adds the crucial behavior: a report_id/report_url is returned immediately while scanning happens in the background (~10s per page), the deliverable contents, three free re-scans in 30 days, and the exact payment rails (x402/USDC on Base or credit token).
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 action and delivery model, and nearly every sentence carries distinct information (async timing, report contents, read-back tool, alternative tool, pricing). Minor redundancy between the title's '$69' and the trailing 'Costs $69.00' sentence keeps it from a 5.
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 a paid, async, multi-url tool the description covers delivery semantics, cost, payment paths, follow-up tools, and alternatives. An output schema exists, so it correctly does not need to enumerate return fields.
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 both parameters (urls, credit_token) are already documented in the schema, including the 1-20/3-hostname limit. The description adds only a general mention of credit-token payment, which the schema already covers in more detail; 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 ('Order a full reachability report for one site') plus concrete scope ('up to 20 pages, each checked from nine common clients'). It also explicitly contrasts itself with the sibling tools reach and reach_report_status, so an agent can route 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 when-to-use routing: 'Use reach_report_status to read it' and 'For a single quick check use the reach tool instead.' It even handles the no-payment prerequisite by naming credits_trial for free credit, which removes the most likely invocation failure.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reach_report_rescanRe-scan a reachability report after fixingAInspect
Free, up to three times within 30 days of ordering. Re-runs every page of a finished report so you can confirm a fix worked; the report then shows what was fixed, what remains and anything new. This tool is free; no payment is required.
| Name | Required | Description | Default |
|---|---|---|---|
| report_id | Yes | The report_id of a finished report |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | No | Which scan this is; the paid scan is 0 |
| status | Yes | 'accepted', or 'busy', 'exhausted' or 'expired' with a reason |
| rescans_remaining | No | Free re-scans left |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare it is not read-only, not idempotent, not destructive, but say nothing about cost or limits. The description adds genuinely useful behavior beyond them: it is free, capped at three uses within 30 days of ordering, and no payment is required — real quota and billing context an agent could not infer from the annotations.
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 key constraint and the core behavior, but the last sentence ('This tool is free; no payment is required') restates the opening 'Free' clause, wasting space on a duplicate rather than adding 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?
With an output schema present, the description need not explain return values, and it correctly focuses on purpose, quota, and outcome. For a one-parameter tool with annotations, this is essentially complete; only explicit sibling routing 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% and the single report_id parameter is fully documented in the schema as 'the report_id of a finished report'. The description adds no syntax, format, or constraint detail beyond that, so the 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?
Specific verb+resource: 'Re-runs every page of a finished report' names the action and the target precisely, and the 'after fixing / confirm a fix worked' framing separates it from reach_report (create) and reach_report_status (poll). An agent can select it 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The trigger condition is clear: run this after a fix to confirm it worked on a finished report. The quota ('up to three times within 30 days of ordering') implicitly bounds when it can be used. It does not explicitly name alternative tools such as reach_report_status for checking progress, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reach_report_statusRead a reachability reportARead-onlyIdempotentInspect
Free. Returns a reachability report by its report_id: progress while it scans, then the prioritised findings with causes, fix steps and reproducing commands, the per-page evidence, and a comparison with the previous scan after a re-scan. This tool is free; no payment is required.
| Name | Required | Description | Default |
|---|---|---|---|
| report_id | Yes | The report_id returned when the report was ordered |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | 'scanning' or 'complete' |
| summary | No | Count of findings by severity |
| findings | No | Prioritised findings: severity, title, cause, fix steps, reproducing command, affected URLs |
| progress | No | Pages scanned so far, of the total |
| report_id | Yes | The report |
| comparison_with_previous_run | No | After a re-scan: fixed, remaining and new findings |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and closed-world, so safety is covered. The description adds genuinely new context in a payment-oriented toolset: it is free and requires no payment, stated twice. It also discloses the stateful return behavior (progress vs. findings, re-scan comparison), which annotations do not convey.
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?
The return-content enumeration is well front-loaded and informative, but the payment claim is stated twice ('Free.' at the opening and again as 'This tool is free; no payment is required.'), which is pure redundancy. Removing the duplicate would leave a tight, high-value sentence.
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?
An output schema exists, so return values need not be spelled out, yet the description usefully summarises the shape of results across the scanning and completed phases. Combined with complete schema coverage and annotations, an agent has enough to call this correctly; only the explicit relationship to sibling reach/reach_report_rescan is missing.
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% and the single report_id parameter is fully documented there, so the schema carries the load. The description only restates that the report is addressed 'by its report_id' and adds no format, provenance or validation detail 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?
States a specific verb and resource ('Returns a reachability report by its report_id') and enumerates the two response states an agent will encounter: in-progress while scanning, then prioritised findings with causes, fix steps and reproducing commands. This also implicitly distinguishes it from sibling reach_report_rescan, which starts a new scan rather than reading one.
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 mention of 'progress while it scans' implies this is the tool to poll after ordering a report, and 'a comparison with the previous scan after a re-scan' hints at follow-up after reach_report_rescan. However, no alternative is named and no explicit when/when-not condition is given; the agent must infer the polling workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scrapeFetch a page as text or markdownARead-onlyIdempotentInspect
Fetch a URL and return readable text or markdown, optionally narrowed by CSS selector. Requests to private, loopback and link-local addresses are refused, and every redirect hop is re-validated. Costs $0.010 in USDC on Base, paid via the x402 protocol, or from a credit token — call credits_trial for free credit if you have neither.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | HTTPS URL to fetch | |
| format | No | Output format (default text) | |
| selector | No | Optional CSS selector to extract just part of the page | |
| credit_token | No | Optional. A credit token from credits_trial or /credits/buy. Supplying it pays for this call from that balance, so no x402 payment or wallet is needed. |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | The page that was fetched |
| title | No | Document title, when the page has one |
| format | No | 'text', 'markdown' or 'html', echoing your request |
| content | Yes | Extracted content in the requested format |
| extracted_at | No | ISO-8601 fetch time |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond readOnly/idempotent annotations, the description discloses SSRF protections ('private, loopback and link-local addresses are refused, and every redirect hop is re-validated') and a concrete cost/payment model ($0.010 USDC via x402 or credit token). These are non-obvious behaviors an agent must know 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no filler: main capability first, then security constraint, then cost/payment. Every sentence adds distinct value, and the structure front-loads the action an agent needs to identify the tool.
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 a four-parameter tool with full schema coverage, an output schema, and readOnly/idempotent annotations, the description adds the missing operative constraints: network restrictions, redirect safety, and payment/credit behavior. Nothing essential for correct selection or invocation is omitted.
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 schema already documents URL, format, selector, and credit_token. The description adds lightweight context for selector ('narrowed by CSS selector') and payment, but does not materially extend the parameter semantics 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?
Description uses a specific verb-resource pairing: 'Fetch a URL and return readable text or markdown, optionally narrowed by CSS selector.' This clearly differentiates scrape from siblings like pdf_parse or meetings_search; an agent knows exactly what resource it acts on and what it produces.
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's usage context is clear: fetching a URL for readable text/markdown, with optional CSS selector. It does not name competing tools for exclusion, but it does give conditional payment guidance ('call credits_trial for free credit if you have neither'), which helps an agent decide when a prerequisite is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vault_deleteDelete a stored secretADestructiveIdempotentInspect
Permanently delete an item. Requires the namespace_token. Costs $0.005 in USDC on Base, paid via the x402 protocol, or from a credit token — call credits_trial for free credit if you have neither.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Item key | |
| namespace | Yes | Isolation scope | |
| credit_token | No | Optional. A credit token from credits_trial or /credits/buy. Supplying it pays for this call from that balance, so no x402 payment or wallet is needed. | |
| namespace_token | Yes | One-time token issued by the first call that claimed this namespace. Required for every later call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| key | Yes | The key that was removed |
| status | Yes | 'deleted' |
| namespace | No | Isolation scope |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (destructive, idempotent, non-read-only), the description discloses key side effects: deletion is permanent, a namespace_token is required, and the call costs $0.005 in USDC paid via x402 or a credit token. This is exactly the kind of cost and access context an agent needs before executing a destructive operation.
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?
Two compact sentences cover the action, precondition, cost, payment method, and fallback credit path with no filler. The essential destructive action is front-loaded, and every clause adds useful 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?
Given the rich schema, the annotations (especially destructiveHint and idempotentHint), and the presence of an output schema, the description supplies the important missing context: payment side effects, required auth token, and the free-credit fallback. An agent has enough to decide whether to call this tool and what prerequisites must be satisfied.
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?
The input schema already documents all four parameters comprehensively at 100% coverage, including the optional credit_token and the nature of the namespace_token. The description adds a helpful pointer to credits_trial for free credit, but it does not substantially expand parameter meaning 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 description opens with 'Permanently delete an item', giving a clear verb and resource, and the title narrows it to deleting a stored secret. This separates it from sibling tools like vault_store and vault_retrieve, leaving no ambiguity about what operation is performed.
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 states the necessary precondition ('Requires the namespace_token') and when an alternative payment path applies ('call credits_trial for free credit if you have neither'). It does not explicitly discuss a when-not-to-use case or name a sibling alternative, but the destructive nature and token requirement provide sufficient context for an agent to invoke it correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vault_existsTest whether a key existsARead-onlyIdempotentInspect
Check for a key without returning its ciphertext. Requires the namespace_token. Costs $0.005 in USDC on Base, paid via the x402 protocol, or from a credit token — call credits_trial for free credit if you have neither.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Item key | |
| namespace | Yes | Isolation scope | |
| credit_token | No | Optional. A credit token from credits_trial or /credits/buy. Supplying it pays for this call from that balance, so no x402 payment or wallet is needed. | |
| namespace_token | Yes | One-time token issued by the first call that claimed this namespace. Required for every later call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| key | Yes | The key that was checked |
| exists | Yes | Whether the key is present. Cheaper than a retrieve. |
| namespace | No | Isolation scope |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint and idempotentHint, and the description adds meaningful behavioral context: it returns no ciphertext, requires the namespace_token, costs a specific amount, and explains the two payment paths. This goes well beyond the structured annotations, particularly around cost and authentication.
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?
The description is concise and front-loaded: the core behavior appears first, followed by the essential prerequisite and cost information. Every sentence adds necessary operational detail without redundancy or fluff.
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 the output schema exists, return values need not be described. The description covers the key behavioral, authentication, and cost details needed to invoke the tool. It misses only explicit sibling differentiation for when to choose this over vault_retrieve, so it is nearly complete but not perfectly so.
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. The description reinforces the namespace_token requirement and references credit_token indirectly, but adds little semantic detail beyond what the schema already provides. This is adequate but not exceptional.
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 description states a specific verb and resource: 'Check for a key' and explicitly notes it does so 'without returning its ciphertext,' making it clearly distinct from vault_retrieve. The title reinforces the existence-testing purpose. It is immediately obvious what this tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys clear context around prerequisites and cost, but does not explicitly name alternatives such as vault_retrieve or state when an agent should prefer this tool over them. The phrase 'without returning its ciphertext' implies an existence-only use case, but this is not made explicit enough for definitive routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vault_listList the keys in a vault namespaceARead-onlyIdempotentInspect
List the keys held in a namespace with their metadata: alg, size, timestamps. Never returns ciphertext — use vault_retrieve for that. Each item's updated_at is the version to pass back as if_match on a conditional store. Use this when you have stored secrets and need to know what is there. Costs $0.005 in USDC on Base, paid via the x402 protocol, or from a credit token — call credits_trial for free credit if you have neither.
| Name | Required | Description | Default |
|---|---|---|---|
| namespace | Yes | Isolation scope | |
| credit_token | No | Optional. A credit token from credits_trial or /credits/buy. Supplying it pays for this call from that balance, so no x402 payment or wallet is needed. | |
| namespace_token | Yes | One-time token issued by the first call that claimed this namespace. Required for every later call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | Number of entries |
| items | Yes | Metadata only — ciphertext is never included here |
| status | Yes | 'listed' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds significant behavioral context beyond the annotations: it explicitly states the tool never returns ciphertext, lists the metadata fields returned (alg, size, timestamps), explains that updated_at serves as the version for conditional stores, and discloses the exact cost and payment mechanism. It does not contradict the readOnlyHint or idempotentHint annotations.
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?
Three sentences, each earning its place: the first states the core purpose, the second highlights the security boundary and alternative, and the third gives usage context and cost. Information is front-loaded and there is no filler or 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?
The description covers purpose, constraints, alternative routing, practical usage ('updated_at ... as if_match'), and cost/payment options. Combined with the output schema and annotations, the agent has everything needed to decide when to call this tool and how to interpret its response.
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. The description adds little parameter-specific meaning beyond the schema; it references credit tokens and namespace context but does not clarify any parameter beyond what the schema already states. This is adequate but does not go beyond the structured fields.
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 description states a specific verb and resource: 'List the keys held in a namespace with their metadata'. It distinguishes itself from siblings by explicitly saying 'Never returns ciphertext — use vault_retrieve for that.' This makes it immediately clear what the tool does and how it differs from related tools.
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 description gives explicit guidance: 'Use this when you have stored secrets and need to know what is there.' It also names the alternative tool for retrieval of secret values ('use vault_retrieve for that') and provides a conditional path for free credit via credits_trial. This is strong, actionable usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vault_retrieveRetrieve an encrypted secretARead-onlyIdempotentInspect
Retrieve a previously stored ciphertext. Requires the namespace_token. Costs $0.02 in USDC on Base, paid via the x402 protocol, or from a credit token — call credits_trial for free credit if you have neither.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Item key | |
| namespace | Yes | Isolation scope | |
| credit_token | No | Optional. A credit token from credits_trial or /credits/buy. Supplying it pays for this call from that balance, so no x402 payment or wallet is needed. | |
| namespace_token | Yes | One-time token issued by the first call that claimed this namespace. Required for every later call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| alg | No | Algorithm label you supplied at store time |
| key | Yes | The key that was read |
| status | Yes | 'retrieved' |
| receipt | No | Payment receipt |
| namespace | No | Isolation scope |
| ciphertext | Yes | Exactly the bytes you stored. Decrypt these yourself. |
| created_at | No | ISO-8601 creation time |
| expires_at | No | Expiry, or null if it never expires |
| updated_at | No | ISO-8601 last write |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the description doesn't need to restate that. It adds valuable behavioral context: the $0.02 cost on Base, the x402 payment requirement, the credit_token alternative, and the namespace_token prerequisite. It also clarifies this returns a ciphertext, not a decrypted secret.
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?
Two sentences with no fluff. The first sentence states the core action; the second covers prerequisites and cost, including a pointer to credits_trial. Every clause earns its place.
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 a simple read tool with full schema coverage, an output schema, and idempotent/read-only annotations, the description is nearly complete. It covers cost, prerequisites, and payment alternatives. Missing details like error behavior are minor and the output schema likely covers return values.
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 description doesn't need to repeat parameter details. The description does add context about the payment flow and the credit_token alternative, but it doesn't explain individual parameters beyond what the schema already states. 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?
The description opens with a specific verb and resource: 'Retrieve a previously stored ciphertext.' This clearly distinguishes it from sibling tools like vault_list (list keys) and vault_exists (check existence). The phrase 'previously stored' also implies it is the counterpart to vault_store.
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 description gives clear context for when to call it: to retrieve a stored ciphertext, and it specifies the required namespace_token and payment options. It does not explicitly name alternative tools or exclusion criteria, but the purpose is unambiguous enough that an agent can infer when it is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vault_rotate_tokenRotate a vault namespace tokenADestructiveInspect
Free. Mints a new namespace_token and immediately invalidates the current one, which you must present to authorize the rotation. Do this whenever the token may have been exposed — a leaked token is otherwise permanent, unrevocable read and delete access to every secret in the namespace. There is no recovery if you lose the token. This tool is free; no payment is required.
| Name | Required | Description | Default |
|---|---|---|---|
| namespace | Yes | Isolation scope | |
| namespace_token | Yes | One-time token issued by the first call that claimed this namespace. Required for every later call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| notice | No | Human-readable warning that the old token is now invalid |
| status | Yes | 'rotated' |
| namespace_token | Yes | The new token, shown exactly once. The previous one stops working. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations mark the operation as destructive and non-read-only, and the description goes further by disclosing immediate invalidation, irreversibility, the need to present the current token, and permanent unrevocable access if leaked. This adds significant behavioral context beyond the annotations.
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?
The description is front-loaded with the core behavior and risk in compact sentences. It is slightly padded by repeating 'free' at the start and again at the end, but the overall structure is 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 both parameters fully documented in the schema and an output schema present, the description covers everything needed to decide and invoke correctly: trigger conditions, required authorization, consequences, and irreversibility.
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. The description adds value by clarifying that the namespace_token must be the current token and that rotation produces a new one, disambiguating the schema's 'first call' phrasing.
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 description states the exact action—'Mints a new namespace_token and immediately invalidates the current one'—on a specific resource. It is unambiguous and clearly distinct from sibling tools like vault_delete or once_key_claim.
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 explicitly says when to use the tool ('whenever the token may have been exposed') and explains the stakes if you don't. It does not mention alternatives or explicitly state when not to use, preventing a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vault_storeStore an encrypted secretADestructiveIdempotentInspect
Store client-side encrypted data. This service holds no key that could decrypt it and never sees plaintext; note that the item key, namespace, alg label and size ARE stored in the clear. The first store claims the namespace and returns a namespace_token shown only once — store it immediately, because it is required by every later call and cannot be recovered. Pass if_match with an item's updated_at for a compare-and-swap write, or if_absent to create only; either returns status 'precondition_failed' rather than silently clobbering a concurrent write. Costs $0.02 in USDC on Base, paid via the x402 protocol, or from a credit token — call credits_trial for free credit if you have neither.
| Name | Required | Description | Default |
|---|---|---|---|
| alg | No | Algorithm label recorded alongside the item (default aes-256-gcm) | |
| key | Yes | Item key | |
| ttl | No | Item lifetime in seconds | |
| if_match | No | Only write if the item's current updated_at equals this. Use it whenever you are updating a value you read earlier, or a concurrent writer's change is lost silently. | |
| if_absent | No | Only write if the key does not already exist. Fails with status 'precondition_failed' if it does. | |
| namespace | Yes | Isolation scope | |
| ciphertext | Yes | Encrypt before sending. Plaintext here would be a mistake. | |
| credit_token | No | Optional. A credit token from credits_trial or /credits/buy. Supplying it pays for this call from that balance, so no x402 payment or wallet is needed. | |
| namespace_token | No | One-time token issued by the first call that claimed this namespace. Required for every later call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| alg | No | Algorithm label you supplied; the service never decrypts |
| key | Yes | The key that was written |
| status | Yes | 'stored' |
| receipt | No | Payment receipt |
| namespace | No | Isolation scope |
| created_at | No | ISO-8601 creation time |
| expires_at | No | Expiry, or null if it never expires |
| size_bytes | No | Stored ciphertext size |
| updated_at | No | ISO-8601 last write |
| namespace_token | No | Issued only on the first store into a namespace, shown exactly once |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond annotations: discloses that the first store claims the namespace and returns a one-time token, that the token cannot be recovered, that metadata is stored in the clear, and that conditional writes return 'precondition_failed' instead of clobbering. No contradiction with annotations.
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?
The description is long but every sentence carries critical information. It is front-loaded with the core purpose and security model, then token handling, concurrency, and cost. The structure is logical, though a slightly tighter wording could be possible without losing content.
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 a complex tool with 9 parameters, an output schema, and annotations, the description covers essential aspects: security, token lifecycle, concurrency safety, cost, and payment alternatives. It also mentions the precondition_failed status. The output format is presumably in the output schema, so not needed here.
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%, but the description adds significant context: explains the one-time nature of namespace_token, the compare-and-swap semantics of if_match, the create-only behavior of if_absent, and the credit_token payment path. This adds value 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 description clearly states the tool stores client-side encrypted data, explains the security model (no key, never sees plaintext), and distinguishes it from other vault operations like retrieve/delete. It also notes what is stored in the clear, making the scope precise.
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 clear context for when to use conditional writes (if_match/if_absent) and payment options (credits_trial, credit_token). It implicitly distinguishes from other vault tools by describing the store action, but does not explicitly name alternatives or state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
x402_verifyCheck an x402 endpoint before paying itARead-onlyIdempotentInspect
Call this BEFORE authorising payment to any x402 endpoint you did not write yourself. It fetches the endpoint's live payment challenge and compares it against every observation previously made by every other caller, so you learn things a single agent cannot see on its own -- above all, whether the address receiving the money has changed. A 'critical' entry in drift means something determining where funds go (pay_to, network or asset) is different from before: stop and confirm out of band. Read the LIVE charges in preference to any directory listing, and pass what the listing claimed as expect to have the disagreement reported. IMPORTANT: 'status':'ok' is NOT an endorsement -- it only means a challenge was read and recorded. It cannot tell you whether the operator will deliver anything for your money. 'first_observation':true means there is no history at all, so an empty drift proves nothing. ALWAYS read prior_criticals: drift only compares against the last observation, so an endpoint that swapped its payee earlier shows an empty drift once that swap became the baseline -- a non-zero prior_criticals means it has changed where money goes before, and that is true no matter how clean today's look is. 'status':'unreachable' is not evidence of fraud and not evidence of health; do not pay on it either way. A null price_usd means the token's units are unknown here and the amount was NOT converted -- do not assume it is small. Costs $0.010 in USDC on Base, paid via the x402 protocol, or from a credit token — call credits_trial for free credit if you have neither.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public HTTPS URL of the endpoint you are about to pay. Loopback and private-network addresses are refused rather than fetched. | |
| expect | No | Optional. What a directory, README or earlier response led you to believe. Any disagreement with the live challenge is reported. | |
| method | No | How to provoke the challenge: 'POST' (default), 'GET' or 'HEAD'. Use the method you intend to pay for. | |
| credit_token | No | Optional. A credit token from credits_trial or /credits/buy. Supplying it pays for this call from that balance, so no x402 payment or wallet is needed. |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | The URL that was checked |
| drift | No | Differences from the last observation. Any severity 'critical' entry changes where money goes. Null means no comparison was made at all, which is not the same as an empty array. |
| advice | No | Plain-language statement of what was and was not established |
| status | Yes | 'ok' means a challenge was read -- NOT that the endpoint is trustworthy. 'refused' means the URL was never fetched. 'unreachable', 'redirected' and 'not_x402' all mean no challenge was obtained. |
| charges | No | What the endpoint declares it will charge, right now |
| last_seen | No | ISO-8601 time of the previous observation |
| reachable | No | Whether the endpoint answered at all |
| first_seen | No | ISO-8601 time this endpoint was first observed |
| mismatches | No | How the live challenge disagrees with what you expected |
| times_seen | No | How many observations exist, across all callers |
| http_status | No | Status code the endpoint returned |
| last_critical | No | The most recent previously recorded critical change, or null if there has never been one. |
| prior_criticals | No | How many critical changes have EVER been recorded for this endpoint, not counting this call. `drift` only compares against the last observation, so once a change has been absorbed into the baseline it stops appearing there. A non-zero value here means this endpoint has changed where money goes before, even when `drift` is empty. |
| first_observation | No | True when there was no prior record, so an empty `drift` means nothing |
| matches_expectation | No | Present only when `expect` was supplied |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds substantial behavioral caveats that annotations alone cannot convey: 'status':'ok' is not an endorsement, a first observation makes empty drift meaningless, prior_criticals remains the truthful signal after a baseline swaps, unreachable is inconclusive, and null price_usd means no conversion occurred. These do not contradict readOnlyHint/idempotentHint; they enrich the safety profile.
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?
The description is long but every section earns its place: the when-to-use rule is front-loaded, followed by the core mechanism, then the caveats most likely to prevent a mistaken payment. It uses clear emphasis markers (IMPORTANT, ALWAYS) to prioritize the highest-risk messages.
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 a paid verification tool with an output schema, the description covers the necessary interpretation of statuses and fields, failure semantics, pricing, and payment fallbacks. There is no missing operational context an agent would need to decide whether to call it or act on its 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 semantic guidance beyond field descriptions: expect should carry 'what the listing claimed', method should be the one you intend to pay with, and credit_token is explicitly an alternative balance that avoids an x402 payment. This lifts it above baseline without needing to repeat schema details.
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 sentence names a specific action ('Call this BEFORE authorising payment') tied to a clear resource (an x402 endpoint not written by the caller), and the second sentence defines the mechanism ('fetches ... live payment challenge and compares it against every observation previously made'). This is precise and naturally distinguishes it from unrelated siblings like meetings_* or vault_*.
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 states exactly when to invoke ('BEFORE authorising payment to any x402 endpoint you did not write yourself'), tells the agent to prefer live charges over directory listings, and routes users without funding to credits_trial. It also tells the caller which HTTP method to use ('Use the method you intend to pay for') and what conditions should prevent payment ('stop and confirm out of band').
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.
24 tool updates
- First observed
compress - First observed
credits_balance - First observed
credits_trial - First observed
meetings_get - First observed
meetings_import - First observed
meetings_list - First observed
meetings_search - First observed
meetings_summarize - First observed
once_key_claim - First observed
once_key_complete - First observed
once_key_release - First observed
pdf_parse - First observed
reach - First observed
reach_report - First observed
reach_report_rescan - First observed
reach_report_status - First observed
scrape - First observed
vault_delete - First observed
vault_exists - First observed
vault_list - First observed
vault_retrieve - First observed
vault_rotate_token - First observed
vault_store - First observed
x402_verify
Related MCP Connectors
63 pay-per-call tools for agents: vision, text, data, web, blockchain. USDC on Base via x402.
Pay-per-call data APIs for AI agents. USDC on Base via x402. 33 tools, no signup.
x402 pay-per-call APIs over MCP, settled in USDC on Base for autonomous agents and developers.
x402 toolkit for AI agents: paid web, AI, and Base chain tools per call in USDC. Free tools too.
Related MCP Servers
- FlicenseAqualityDmaintenancePay-per-call tools for AI agents including trust checks, due diligence, market data, and human-verified approvals, settled in USDC on Base via the x402 protocol.16-
- AlicenseAqualityCmaintenanceProvides AI agents with 10 pay-per-call utility tools (QR generation, DNS lookup, OCR, etc.) using USDC on Base via the x402 protocol, with agent's private key never leaving the agent.1136 npmMIT

AgentBIT MCP Serverofficial
AlicenseNot gradedqualityDmaintenanceEnables AI agents to call 50+ pay-per-request tools covering onchain and crypto data, web research, security, compliance screening, business intelligence, and infrastructure checks. Payments settle per call in USDC on Base through the x402 protocol with no accounts, API keys, or subscriptions, and the first call is free for new wallets.MIT- AlicenseBqualityBmaintenancePay-per-call AI agent APIs on Base via x402. Multiple tools across patents, law, AI, geo, weather, crypto, and more. Always growing.2018MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.