Skip to main content
Glama

Server Details

Greenland AI Limited. Agents find real data on real things (companies, resource deposits, infrastructure, projects, commodities), trade on it with other agents, and act in the physical economy. Pay per call in platform credits with a quote before every execution; no subscription. Docs: https://greenlandai.ai/docs

Ownership verified
Status
Healthy
Uptime
70.7% over 53 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
–

TDQS

A3.6/5.0

Scored across 50 tools

Disambiguation4/5

Most tools are sharply scoped and descriptions actively cross-reference each other (e.g. market_quote defers to market_match for fees; company tells you to call company_search first), which keeps the large surface navigable. However there are genuine collisions: look_from and nearby both return pins/entities near a lat-lng radius with source_tier, and place_index partially overlaps both, while the composite tools (company_profile, deposit_brief) shadow their component calls.

Naming Consistency4/5

Everything is snake_case with clear family prefixes (company_*, deposit*, entity_*, market_*, oracle_*, contribute_*, look_*, joules_*, billing_*), so grouping is predictable. Verb style varies though: verb-first (verify_proof, look_at) vs noun-only (company, deposits, signals, nearby, transparency_latest), a minor but real inconsistency.

Tool Count3/5

50 tools is heavy even for a broad platform; the scope legitimately spans geospatial imagery, graph queries, a marketplace, an oracle programme, contributor intake and a joule ledger, so most tools earn a place. But convenience composites (company_profile, deposit_brief) duplicate existing calls and the proof/billing cluster is dense, pushing past what an agent can hold comfortably.

Completeness3/5

Read/lifecycle coverage is strong for queries, billing, funding, proofs and contributor intake, but the marketplace has notable holes: no provider delivery-submission tool despite oracle_assess assessing deliveries, no way to open or read a dispute (only a dispute flag on market_match), and no cancel/withdraw for listings or buy requests beyond rematch consent. These are real dead ends for provider-side or dispute workflows.

Available Tools

50 tools
balance_proofA
Read-only
Inspect

Inclusion proof for YOUR wallet balance in the latest hourly transparency attestation: leaf hash, Merkle path, root, the anchoring BSV txid ("pending" until the batch is broadcast) and how to verify it. No arguments: the wallet is the one your credential owns.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, covering safety. The description adds useful behavioral details: the anchoring BSV txid may be 'pending' until batch broadcast, and it includes verification instructions, which go beyond structured fields.

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

Conciseness5/5

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

Two sentences, front-loaded with the core purpose and followed by key return values and usage note. No wasted words; every clause adds value.

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

Completeness5/5

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

Given the output schema exists, the description need not detail return values, yet it helpfully lists them. Annotations cover safety, and the description adds credential context and pending-status behavior, making it complete for an agent to call correctly.

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

Parameters4/5

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

With zero parameters, the baseline is 4. The description clarifies that no arguments are needed because the wallet is implicitly determined by the caller's credential, adding meaning beyond the empty schema.

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

Purpose5/5

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

The description states a specific verb+resource: 'Inclusion proof for YOUR wallet balance in the latest hourly transparency attestation'. It enumerates the returned fields (leaf hash, Merkle path, root, txid) and clarifies it's for the caller's own wallet, distinguishing it from siblings like verify_proof or transparency_latest that serve different roles.

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

Usage Guidelines4/5

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

It provides clear context: it's for the caller's own wallet (credential-owned) and covers the latest hourly attestation. However, it does not explicitly name when to use this tool versus alternatives (e.g., verify_proof for verification or transparency_latest for general attestation data).

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

billing_attemptsA
Read-only
Inspect

YOUR OWN charge record, attempt by attempt (your own wallet, from your credential): each attempt's status (pending, completed, settled_zero, failed, refunded …), reserved vs settled joules, and the attempt_id to match a call's metering.attempt_id. Paged with limit and offset.

NameRequiredDescriptionDefault
limitNoMaximum rows to return. 1-200. Default 50.
offsetNoRows to skip, for paging. Default 0.

Output Schema

NameRequiredDescription
noteNo
countNo
itemsNo
statusesNo
wallet_idNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly/non-destructive/closed-world, and the description adds real context: results are scoped to your own wallet and credential only (no cross-wallet visibility), the status vocabulary is listed, and reserved-vs-settled joules is called out. Pagination defaults are left to the schema rather than contradicted.

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

Conciseness4/5

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

Two sentences, front-loaded with the scoping claim, and the dangling '…' after the status list is a minor sloppiness. Nearly every clause (own wallet, statuses, joules fields, attempt_id join, paging) carries information.

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

Completeness4/5

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

With an output schema present, the description does not need to explain return shapes, yet it still highlights the fields an agent will care about and how attempt_id links to metering. Combined with annotations covering safety, an agent has enough to call this correctly.

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

Parameters3/5

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

Schema coverage is 100% and both parameters carry their own descriptions (range, defaults), so 'Paged with limit and offset' is a restatement rather than added meaning. Baseline 3 applies when the schema already does the heavy lifting.

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

Purpose4/5

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

Names a specific resource and scope: the caller's OWN charge attempts, pulled from their own wallet/credential, with the returned fields enumerated (status, reserved vs settled joules, attempt_id). The read/list verb is only implied by 'Paged with limit and offset', but the resource is unambiguous against siblings like deposits, trade_settlement, and billing_quote.

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

Usage Guidelines4/5

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

Gives clear context for when to reach for it: inspecting your own billing attempts and resolving an attempt_id seen in a call's `metering.attempt_id`. It never names a competing sibling or an exclusion, so it stops short of full when/when-not guidance.

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

billing_quoteA
Read-only
Inspect

The exact price of a metered call for YOU, before you make it — free. path = the API path the tool hits (e.g. /api/v1/relationships, with hops). Fund joules_all_in, the true debit. The quote says when it is a maximum and when an empty answer is free.

NameRequiredDescriptionDefault
idNoEntity id (with entity_type) for a site.
latNoLatitude in decimal degrees, -90 to 90 (WGS84).
lngNoLongitude in decimal degrees, -180 to 180 (WGS84).
hopsNoGraph depth for a relationships path (an agent key up to 10).
pathYesThe API path the call would hit, e.g. "/api/v1/relationships", "/api/v1/look.from", "/api/v1/companies/{id}" …
as_ofNosite.reconstruction date, YYYY-MM-DD.
radius_mNosite.reconstruction square half-side in metres.
entity_typeNoEntity kind: deposit | infrastructure | company | project. Alternative to lat/lng for a site.

Output Schema

NameRequiredDescription
pegNo
usdNo
hopsNo
pathNo
tierNo
joulesNo
receiptNo
query_typeNo
billed_hopsNo
pricing_tierNo
rate_per_hopNo
joules_all_inNo
pricing_modelNo
receipt_offerNo
rail_fee_joulesNo
refund_on_emptyNo
quote_is_maximumNo
joules_with_receiptNo
partial_refund_noteNo
joules_with_receipt_all_inNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already establish that this is a safe read-only, non-destructive, closed-world operation. The description adds useful behavioral context beyond that: the quote is free, it reports the true debit via joules_all_in, and it indicates when the price is a maximum and when an empty answer is free.

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

Conciseness4/5

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

The description is short and front-loads the core value proposition: exact pre-call price and free quote. Some phrasing such as 'Fund joules_all_in, the true debit' is slightly compressed and cryptic, but it does not waste space.

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

Completeness4/5

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

With an output schema, complete parameter descriptions, and read-only annotations, the description provides enough context for an agent to understand that this is a free preflight cost quote. It could be more complete by clarifying how site-related parameters affect the quote, but the structured fields carry that burden.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents the parameters in detail. The description adds a useful clarification for `path` and mentions `hops`, but most parameters are left to the schema, which is appropriate given the high coverage.

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

Purpose4/5

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

The description clearly states that this tool returns the exact price of a metered API call before the call is made, and that the quote itself is free. It is specific about the resource (metered call pricing) and gives a concrete path example, though it does not explicitly distinguish itself from quote-adjacent siblings such as market_quote.

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

Usage Guidelines3/5

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

It gives implied usage context ('before you make it') and points to funding joules_all_in, but it does not explicitly say when to use this versus alternatives like market_quote or funding_prepare, nor does it state exclusions.

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

bridge_proofA
Read-only
Inspect

Inclusion proofs for YOUR Bridge Ledger rows (contribution and fee events): per-row leaf hash, Merkle path, bridge_root and the anchoring BSV txid ("pending" until the hourly batch is broadcast). No arguments: scoped to your credential.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already cover read-only, non-destructive, closed-world behavior, and the description adds real value on top: it discloses the exact payload fields and the temporal behavior that the txid reads "pending" until the hourly batch broadcast. It does not discuss rate limits or empty-result behavior, but the core behavior is well disclosed.

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

Conciseness4/5

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

A single front-loaded sentence naming the resource before the detail, with the scope note appended. The parentheticals are dense but each carries information (event types, pending semantics); nothing is redundant.

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

Completeness4/5

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

For a zero-argument read tool with an output schema and full annotation coverage, the description supplies what structured fields cannot: the credential scoping and the "pending" anchoring state. Return values are explained beyond what is strictly needed, leaving little an agent would still need to ask.

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

Parameters4/5

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

With zero parameters, the baseline is 4. The description earns that baseline by explaining why there are none — the call is implicitly scoped to the caller's credential — so an agent understands no filters can be supplied.

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

Purpose4/5

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

States a specific resource (Bridge Ledger rows, contribution and fee events) and enumerates the returned artifacts (leaf hash, Merkle path, bridge_root, BSV txid). It implicitly separates itself from balance_proof by scoping to ledger-row inclusion proofs, though it never explicitly contrasts with verify_proof or ledger_verify.

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

Usage Guidelines3/5

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

"No arguments: scoped to your credential" implies the usage context (your own rows only), but there is no explicit when-to-use / when-not-to-use guidance and no routing to sibling tools such as verify_proof for verification use cases. Usage is inferable but not stated.

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

companyA
Read-only
Inspect

One company's record by id: the company, the deposits and infrastructure it operates, its relationships with tier and provenance, and merged when the id moved. Have only a name? Call company_search first. An unknown id is a 404. Metered: see CHARGING in the server instructions; quote first with billing_quote.

NameRequiredDescriptionDefault
idYesThe GreenlandAI company id: a whole number (known_companies.id, e.g. "4334").

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnly/non-destructive/closed-world, and the description goes beyond them with the metering requirement, the 404 outcome, and the `merged` marker for moved ids. It stops short of saying whether `merged` yields a redirect payload or an error, which leaves one behavioral edge ambiguous.

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

Conciseness5/5

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

Four short sentences, all front-loaded and load-bearing: what it returns, the name-based alternative, the 404 behavior, and the billing prerequisite. No filler or restatement of the name.

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

Completeness5/5

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

An output schema exists, so return values need not be described in detail. The description still covers the access path, the fallback tool, the error case, redirect handling, and the cost/payment workflow — everything an agent needs before calling.

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

Parameters3/5

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

Schema coverage is 100% and the single `id` parameter is fully documented in-schema, so the description need not repeat it. It only adds that names should be resolved via `company_search` first, which is routing guidance rather than new id semantics.

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

Purpose5/5

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

States a specific verb+resource (fetch one company's record by id) and enumerates what the record contains: the company, its deposits and infrastructure, relationships with tier and provenance. It is clearly separated from `company_search` (name-based) and from other entity tools.

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

Usage Guidelines5/5

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

Explicit routing: 'Have only a name? Call `company_search` first.' Plus an explicit prerequisite for metered calls (quote first with `billing_quote`, see CHARGING). The unknown-id 404 case is also declared, so the agent knows what failure looks like.

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

company_profileA
Read-only
Inspect

company + relationships + entity_history for one company in ONE call, billed exactly as the three would be, with one charged_joules total. Lean by default; include_raw for everything. Metered: see CHARGING in the server instructions; quote first with billing_quote.

NameRequiredDescriptionDefault
idYesThe company id (from company_search, a pin or a relationship row).
hopsNoRelationship depth, 1-10. Default 1.
fieldsNoOnly these keys in each row (plus id). Omit for all.
include_rawNoReturn every part whole. Default false.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only declare readOnly/non-destructive/closed-world; the description adds substantive behavior beyond that: metered billing with a single 'charged_joules' total, cost equivalence to the three constituent calls, lean-by-default payload sizing, and a pointer to server-level CHARGING docs. That is exactly the cost and payload context an agent cannot infer from annotations.

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

Conciseness5/5

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

Three dense clauses, front-loaded with the composite payoff and followed by payload and billing behavior. No filler; every clause carries information an agent needs before invoking.

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

Completeness4/5

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

An output schema exists, so return structure needn't be described, and billing, defaults, and the pre-flight quote path are all covered. Minor gap: it never clarifies what 'lean' actually trims, which matters for deciding whether to set include_raw before paying.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: it frames the lean-vs-full tradeoff that governs include_raw and implies fields/hops only shape an already-bundled payload. It does not elaborate on hops or fields, leaving those entirely to the schema.

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

Purpose5/5

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

Names a specific composite resource and enumerates exactly what it bundles: 'company + relationships + entity_history for one company in ONE call.' This implicitly but clearly distinguishes it from the siblings company, relationships, and entity_history, which return only one of those parts.

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

Usage Guidelines4/5

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

Gives concrete usage guidance: 'Lean by default; include_raw for everything' and 'quote first with `billing_quote`', which routes the agent to a sibling before spending. It stops short of explicitly saying when to prefer this composite over three separate calls, though 'billed exactly as the three would be' strongly implies the tradeoff.

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

contribute_receiptsA
Read-only
Inspect

Your OWN append-only contribution receipts, each with its canonical claim hash (claim_sha256), so you can check the door holds what you sent. Send your enabled gai_ key as X-API-Key. Paged.

NameRequiredDescriptionDefault
limitNoMaximum rows to return. Default 50.
offsetNoRows to skip, for paging. Default 0.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds real value on top: immutability (append-only), ownership scoping ('your OWN'), and the auth requirement (enabled gai_ key as X-API-Key). It omits ordering guarantees and how paging interacts with an append-only log, which is the one operational detail an agent would want.

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

Conciseness4/5

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

Three short clauses, front-loaded with the resource and its hash, then auth, then paging. The metaphorical 'check the door holds what you sent' is slightly cryptic in a tool description but is not wasted space; the 'Paged.' fragment is efficiently placed.

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

Completeness3/5

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

An output schema exists so return values need no explanation, and auth plus scoping are covered. Still, with a sibling named `receipts_me` in the same namespace, the definition leaves genuine ambiguity about which endpoint this is versus the alternative — a gap for a low-complexity read tool.

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

Parameters3/5

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

Schema description coverage is 100% with only limit and offset, both defaults documented inline. 'Paged.' confirms pagination behaviour but adds no semantics beyond the schema, so the baseline 3 applies.

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

Purpose4/5

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

States a specific resource (your own append-only contribution receipts) plus the distinguishing payload (canonical claim_sha256 hash) and its purpose (verify what you sent). Clear verb-and-resource identity, but it never distinguishes itself from the close sibling `receipts_me`, leaving an agent to guess which receipt endpoint to call.

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

Usage Guidelines3/5

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

The phrase 'so you can check the door holds what you sent' implies an integrity-verification use case, and the X-API-Key instruction is a useful prerequisite. However, there is no explicit when-not guidance and no routing to alternatives (contribute_submissions, contribute_stats, receipts_me), so selection still requires inference.

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

contribute_relationsAInspect

Submit evidenced graph relationships to the contributor door (TEN programme). Each relation needs subject, relation, object, a real source_url and a verbatim quote from it. Nothing is written on submit: admitted claims queue for the nightly judge. Send your enabled gai_ key as X-API-Key.

NameRequiredDescriptionDefault
entitiesNoNew entities proposed alongside a relation that references them; never accepted on their own.
relationsYesThe relationships to submit.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior5/5

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

Goes well past the annotations by disclosing the asynchronous lifecycle ('Nothing is written on submit: admitted claims queue for the nightly judge'), the evidence bar (real source_url plus verbatim quote), and the auth mechanism (X-API-Key). These are exactly the traits an agent cannot infer from readOnlyHint=false, idempotentHint=false, or destructiveHint=false.

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

Conciseness5/5

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

Four short sentences, front-loaded with the action, then requirements, then the async caveat, then auth. Every sentence carries distinct information with no repetition of the title or schema.

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

Completeness4/5

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

An output schema exists so return values need no explanation, and the description covers auth, evidence requirements, and deferred adjudication. It is only slightly short of complete, omitting rejection handling and the role of the 'entities' parameter, though the schema documents entities.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description still adds value: the schema only types 'relations' as an array of open objects, while the description names the per-item fields (subject, relation, object, source_url, quote) and insists the quote be verbatim, which the schema does not convey.

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

Purpose4/5

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

'Submit evidenced graph relationships' gives a specific verb plus resource, and the 'contributor door (TEN programme)' scopes it. It is distinguishable from contribute_receipts by the resource named, though the sibling is never explicitly contrasted.

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

Usage Guidelines3/5

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

Usage is implied: the description makes clear this is the submission path for graph relations requiring evidence, and states a precondition (an enabled gai_ key). However, it never routes the agent against alternatives such as contribute_receipts or contribute_submissions, leaving the choice to inference.

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

contribute_statsA
Read-only
Inspect

Your OWN contributor standing: submitted, accepted and rejected totals, acceptance rate, pending review and standing (good, warning, suspended, revoked). Send your enabled gai_ key as X-API-Key.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnly/non-destructive/non-open-world, so the safety profile is covered. The description adds genuinely non-obvious behavioral context: it is authenticated and requires the enabled gai_ key sent as the X-API-Key header, which an agent cannot infer from a zero-parameter schema.

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

Conciseness5/5

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

Two sentences, no filler. The scope ('your OWN') is front-loaded and the auth requirement trails as a compact operational note.

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

Completeness5/5

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

For a zero-parameter read tool with an output schema, safety annotations, and full schema coverage, the description supplies the two things structured fields cannot: caller scoping and the auth mechanism. Nothing needed to invoke it correctly is missing.

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

Parameters4/5

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

There are zero parameters, so the baseline is 4. The description adds transport-level semantics not present in the empty schema — that authentication rides in the X-API-Key header — which is the only 'parameter' an agent must supply.

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

Purpose4/5

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

States a specific resource ('your own contributor standing') and enumerates exactly what is returned: submitted/accepted/rejected totals, acceptance rate, pending review, and standing status. It's clear which of the contribute_* siblings this is not (receipts/relations/submissions are about items, this is about your aggregate standing), though it never names them explicitly.

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

Usage Guidelines3/5

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

The emphasis on 'Your OWN' implies caller-scoped usage versus broader/company-wide tools, which is a useful implicit cue. However, there is no explicit statement of when to use this instead of contribute_submissions or contribute_receipts, nor any prerequisite or exclusion.

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

contribute_submissionsA
Read-only
Inspect

Your OWN per-item submission outcomes: pending_review, accepted or rejected, with the judge's reason verbatim and what was promoted. Send your enabled gai_ key as X-API-Key. Paged.

NameRequiredDescriptionDefault
limitNoMaximum rows to return. Default 50.
offsetNoRows to skip, for paging. Default 0.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already establish readOnly/non-destructive/closed-world, so the safety profile is covered. The description adds genuinely useful non-structured context: the required auth header (an enabled gai_ key as X-API-Key) and that results are paged. It stops short of describing rate limits or paging edge behavior, but that is minor.

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

Conciseness4/5

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

Three short sentences, front-loaded with what the tool returns before the operational details (auth, paging). The fragment 'Paged.' is terse but purposeful. Little waste, though the auth sentence is slightly abrupt in phrasing.

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

Completeness4/5

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

For a two-param read-only list with a full output schema, the description covers scope, returned fields, statuses, auth, and paging — enough for correct invocation. The only gap is not distinguishing itself from the closely named contribute_receipts/relations/stats siblings, which an agent might confuse.

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

Parameters3/5

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

Schema description coverage is 100% — limit and offset are both fully documented in the schema. The description's only contribution is the word 'Paged', which confirms the intended usage pattern but adds no syntax or constraint detail beyond the schema. Baseline 3 applies.

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

Purpose4/5

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

Names a specific resource — 'Your OWN per-item submission outcomes' — and enumerates the possible states (pending_review, accepted, rejected) plus the payload contents (judge's reason verbatim, what was promoted). It implicitly separates itself from contribute_receipts/relations/stats by calling out 'per-item submission outcomes', but it never explicitly says how it differs from those siblings or uses a clear read verb like 'list'.

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

Usage Guidelines3/5

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

The phrase 'Your OWN' signals per-caller scoping, which implies when this is the right tool (checking your own results rather than someone else's). However, there is no explicit when-to-use guidance and no named alternative among the many contribute_* siblings, so the agent must infer routing.

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

depositA
Read-only
Inspect

One resource deposit by id: its record, commodities[] ({name, role, group}) and operators. Pair with deposits(commodity=…) to find ids. Metered: see CHARGING in the server instructions; quote first with billing_quote.

NameRequiredDescriptionDefault
idYesThe deposit's numeric id (from `deposits`, a pin, or a relationship row).

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly/non-destructive/closed-world, and the description adds genuinely new behavioral context: the call is metered and should be quoted before use via `billing_quote`. It stops short of saying what happens for an unknown id (error vs empty), which is the only notable gap for a lookup.

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

Conciseness4/5

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

Three tight clauses of roughly equal value, front-loaded with what the tool returns. The density of backticked tool names is slightly heavy but every sentence carries actionable information.

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

Completeness4/5

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

A single-parameter read with an output schema, so return shape needs little prose; the description covers sourcing the id and the cost gate. The only missing piece is failure behavior for a nonexistent id, which is minor given the output schema and read-only annotations.

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

Parameters3/5

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

Schema coverage is 100% and the `id` property already documents its type flexibility and provenance (from `deposits`, a pin, or a relationship row). The description only reinforces where ids come from, adding no format or validation detail beyond the schema, so baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource (fetch one deposit by id) and enumerates the payload (record, commodities[] with {name, role, group}, operators). It also explicitly contrasts itself with the sibling `deposits`, so an agent can distinguish a single-record lookup from the list/search tool without opening either schema.

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

Usage Guidelines4/5

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

Gives an explicit recipe: use `deposits(commodity=…)` to obtain ids, then call this tool, and quote cost first with `billing_quote`. It does not mention when to prefer the nearby sibling `deposit_brief`, which is the main remaining routing ambiguity.

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

deposit_briefA
Read-only
Inspect

deposit + relationships + entity_history for one deposit in ONE call, billed exactly as the three would be, with one charged_joules total. Lean by default; include_raw for everything. Metered: see CHARGING in the server instructions; quote first with billing_quote.

NameRequiredDescriptionDefault
idYesThe deposit id (from deposits, a pin or a relationship row).
hopsNoRelationship depth, 1-10. Default 1.
fieldsNoOnly these keys in each row (plus id). Omit for all.
include_rawNoReturn every part whole. Default false.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly/non-destructive/closed-world, and the description adds genuinely new behavioral facts: billing is identical to the three separate calls with a single charged_joules total, and the tool is metered per server CHARGING instructions. It doesn't specify what 'lean' actually trims versus include_raw, leaving that to the output schema and server docs.

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

Conciseness5/5

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

Front-loaded with the composite purpose, then cost model, then default behavior, then the quoting prerequisite. No sentence is filler, and the dense phrasing suits a metered aggregation tool.

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

Completeness4/5

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

With an output schema, annotations, and full param coverage, the description covers the remaining agent-critical concerns: cost equivalence, single-total billing, and the quote-first step. Minor gap: it doesn't clarify how 'lean' truncates relationships/entity_history or whether depth beyond hops is capped.

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

Parameters3/5

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

Schema coverage is 100%, so id, hops, fields, and include_raw are already documented. The description reinforces include_raw ('for everything' vs lean default) but says nothing about hops or fields beyond the schema, so it adds only marginal semantic value over structured data.

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

Purpose5/5

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

Names the exact composition ('deposit + relationships + entity_history for one deposit in ONE call'), so the agent knows this is a bundled read of three named sibling tools for a single entity. It is immediately distinguishable from calling deposit, relationships, or entity_history separately.

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

Usage Guidelines4/5

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

Strong context: use this to get three facets in one call at the same price, and 'quote first with billing_quote' gives an explicit prerequisite for a metered tool. It stops short of saying when NOT to use it (e.g., when only one facet is needed, or for multiple deposits), so it is clear but not fully routing.

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

depositsA
Read-only
Inspect

Search resource deposits by commodity, resource_type, country, status, owner_country, max_port_km or name. commodity matches through the commodity graph (a group match counts; commodity_filter says which). Returns {count, total, deposits[]}, paged. Metered: see CHARGING in the server instructions; quote first with billing_quote.

NameRequiredDescriptionDefault
limitNoMaximum rows to return. Up to 100. Default 50.
fieldsNoOnly these keys in each row (plus id). Omit for all.
offsetNoRows to skip, for paging. Default 0.
searchNoPart of the deposit's name (substring).
statusNoDeposit status, e.g. operating, development, exploration.
countryNoCountry as an ISO code or a name.
commodityNoA commodity name, e.g. "neodymium".
max_port_kmNoOnly deposits within this many km of a port.
owner_countryNoCountry of the deposit's owners (their home states), ISO code or name.
resource_typeNoThe deposit's primary resource label (exact, case-insensitive).

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already cover the read-only, non-destructive, closed-world profile, and the description adds things annotations cannot: result shape {count, total, deposits[]}, pagination, cost metering with a pointer to CHARGING, and that `commodity` traverses a commodity graph where group matches can be included. That graph-matching behavior is a non-obvious trait an agent would otherwise get wrong.

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

Conciseness4/5

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

Three tight sentences, filter list front-loaded, return shape and billing note after. No filler. The one flaw is the dangling `commodity_filter` reference, which costs a bit of clarity in an otherwise economical definition.

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

Completeness4/5

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

With an output schema available the description need not explain return values, yet it summarizes them, and it flags the metered cost model that any caller must know before invoking. The unexpanded `commodity_filter` mention is the only loose end for a 10-parameter tool with no required params.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3, but the description adds real meaning: it explains that `commodity` resolves through a graph and that a group match counts, which the schema's "A commodity name" line does not convey. Minor deduction because it references `commodity_filter`, which is not present in the input schema at all, creating ambiguity.

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

Purpose4/5

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

States a specific verb and resource ("Search resource deposits") and enumerates the actual filter axes, so an agent knows precisely what this retrieves. It does not, however, differentiate itself from the singular `deposit`, `deposit_brief`, or `nearby` siblings, leaving the agent to infer that this is the multi-row search variant.

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

Usage Guidelines3/5

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

The metering workflow is spelled out ("quote first with `billing_quote`"), which is a genuine usage rule. But there is no statement about when to pick `deposits` over `deposit`, `deposit_brief`, or `nearby`, and no exclusions or prerequisites beyond the billing note.

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

entity_changeA
Read-only
Inspect

The structured change at one site between two dates (t0, t1): per class (water, ice, canopy, pad, stockpile) the area changed, what optical and radar each saw, and a confidence. Read height_class first: only repeat_surface supports a volume change. Slow (about 15–60 s): start=true answers at once with a job_id for job_status. Agent keys only. Metered: see CHARGING in the server instructions; quote first with billing_quote.

NameRequiredDescriptionDefault
idNoThe entity's numeric id (with entity_type).
t0YesThe earlier date, YYYY-MM-DD, on or after 1984-03-16. Required.
t1NoThe later date, YYYY-MM-DD. Default today.
latNoLatitude in decimal degrees, -90 to 90 (WGS84).
lngNoLongitude in decimal degrees, -180 to 180 (WGS84).
startNotrue: answer at once with a job_id (the same reservation, settled when the measurement is done)
radius_mNoFootprint radius in metres, 50-2500, overriding the site's held footprint (else a 500 m circle).
max_cloudNoMaximum cloud cover of a scene, 0-100 percent. Default 40.
entity_typeNoEntity kind: deposit | infrastructure | company | project. With id; or pass lat + lng.
same_seasonNoFor spans of 300+ days, take the t0 frame at t1's day of year. Default true.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already cover safety (readOnly/destructive/openWorld), and the description layers on the operational facts an agent cannot get elsewhere: 15–60 s latency, the async escape hatch (start=true returns a job_id resolved via job_status), and that it is agent-key-only and metered. That is exactly the beyond-annotation context this dimension rewards.

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

Conciseness5/5

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

Five dense sentences, each doing distinct work: output shape, class precondition, latency, async pattern, auth, billing. The critical constraints (precondition, cost, latency) are stated before the agent would commit to a 60-second call.

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

Completeness5/5

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

For a metered, slow, async-capable read tool with an output schema already covering return shape, the description supplies everything an agent needs to call it correctly: cost gating, auth, latency, job handling, and the class validity rule. No material operational gap remains.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents t0, t1, radius_m, max_cloud, same_season, and entity_type/lat-lng alternatives in detail. The description only adds value on `start` by naming job_status as the follow-up; it says nothing extra about same_season or the footprint override that the schema doesn't already carry.

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

Purpose4/5

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

The description names a precise resource and scope: the structured change at one site between t0 and t1, broken down per class (water, ice, canopy, pad, stockpile) with per-sensor evidence and confidence. That distinguishes it from snapshot tools like entity_state, but it never contrasts with the closer sibling entity_history, leaving a small ambiguity for an agent choosing among time-based tools.

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

Usage Guidelines4/5

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

It states a hard prerequisite ('Read `height_class` first: only repeat_surface supports a volume change') and a billing precondition ('quote first with `billing_quote`'), which are real routing decisions. It stops short of explicit when-not-to-use guidance relative to entity_state or entity_history.

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

entity_historyA
Read-only
Inspect

The cheap index of one entity's dates: imagery scene dates (no images), our record's versions since record time began, and a short newest-first what_changed list, each item marked world time or our time. Agent keys. Metered: see CHARGING in the server instructions; quote first with billing_quote.

NameRequiredDescriptionDefault
idYesThe entity's numeric id. Required.
entity_typeYesEntity kind: deposit | infrastructure | company | project. Required.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare a safe read (readOnlyHint true, destructiveHint false), and the description adds genuinely non-obvious traits: the call is metered, requires agent keys, and returns a short, size-limited newest-first list. It defers cost specifics to 'CHARGING in the server instructions' rather than quantifying, so it stops short of full transparency.

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

Conciseness4/5

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

Two dense, front-loaded sentences with no filler; the resource scope comes first and operational constraints last. Some phrasing ('our record's versions since record time began', 'world time or our time') is cryptic in an otherwise tight definition.

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

Completeness5/5

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

With an output schema, full parameter coverage, and explicit safety annotations, the description supplies the remaining pieces an agent needs: cost model, auth requirement, and the delimitation that no image payloads come back. Nothing needed to call it correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100%, including the entity_type enum values, so the baseline is 3. The description says 'one entity' but never elaborates on `id` or how entity_type interacts with it, adding no meaning beyond the schema.

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

Purpose4/5

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

Names the resource concretely and enumerates its three return components: imagery scene dates (explicitly without images), record versions, and a newest-first `what_changed` list. The parenthetical '(no images)' implicitly separates it from `look_at`, but no sibling is named outright, so an agent must infer the boundary.

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

Usage Guidelines4/5

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

Signals this is the 'cheap index' to reach for before richer fetches and states an explicit prerequisite workflow: quote first via `billing_quote`. It stops short of stating when to prefer `entity_state` or `entity_change` instead, so the routing against those siblings is left to inference.

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

entity_stateA
Read-only
Inspect

One packet for one entity at a date (as_of): the entity as we held it then, the pins held by then, its relationships valid then, and the satellite still for that date. Charged for the parts delivered. Agent keys only. Metered: see CHARGING in the server instructions; quote first with billing_quote.

NameRequiredDescriptionDefault
idYesThe entity's numeric id. Required.
as_ofNoThe date of the packet, YYYY-MM-DD. Default today.
max_cloudNoMaximum cloud cover of a scene, 0-100 percent. For the still. Default 20.
radius_kmNoRadius for the nearby pins, in km. Default 25.
entity_typeYesEntity kind: deposit | infrastructure | company | project. Required.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior4/5

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

The description adds meaningful behavioral context beyond the annotations: it is charged for parts delivered, requires agent keys, and is metered with a recommendation to quote first via billing_quote. This covers cost and auth needs, which annotations do not provide. It stops short of describing failure modes or rate limits, but the added information is substantial.

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

Conciseness4/5

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

The description is front-loaded with the core purpose and return contents, followed by billing and auth notes. It is efficient, though slightly dense with multiple sentences. Every sentence serves a purpose, but minor tightening could improve flow.

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

Completeness4/5

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

Given the presence of an output schema and annotations covering safety, the description is largely complete for correct invocation. It covers billing and auth needs, and the output schema handles return values. The main gap is the lack of usage guidance versus alternatives, but that is scored separately.

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

Parameters3/5

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

With 100% schema description coverage, the schema already documents all parameters thoroughly. The description mentions as_of and implies the components corresponding to radius_km and max_cloud but adds no new semantic details 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.

Purpose4/5

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

The description clearly states what the tool returns: a packet for one entity at a specific date, including the entity, pins, relationships, and satellite still. It is specific about the resource and the time dimension, but it does not explicitly differentiate itself from sibling tools like entity_history or entity_change.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as entity_history or entity_change. It mentions billing prerequisites ('quote first with billing_quote') but that is a process step, not a usage guideline for selecting this tool over others.

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

funding_prepareA
Read-only
Inspect

The in-band funding step for a joule shortfall: your own USDC-on-Base deposit address and the live minimum, read from the running system. It moves no money; track the deposit with funding_status.

NameRequiredDescriptionDefault
neededNoThe joules you are short (the shortfall from joules_deficit or a 402). Default 0.

Output Schema

NameRequiredDescription
noteNo
neededNo
routesNo
wallet_idNo
in_band_agent_funding_liveNo

TDQS

A3.9/5.0
Behavior4/5

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

The description adds context the annotations do not: it clarifies this is a preparation step that 'moves no money' (disambiguating from the deposit siblings) and that values are 'read from the running system' rather than cached. It also warns that the deposit must be tracked separately via funding_status, which is a real behavioral trait. Annotations already cover the read-only/destructive profile, so this is solid added value rather than a repetition.

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

Conciseness4/5

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

Two sentences, no filler, with the identity of the tool (the funding step) front-loaded before the non-mutation caveat. Minor cost from 'in-band' and 'joule shortfall' requiring domain familiarity, but nothing is wasted.

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

Completeness4/5

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

For a one-parameter read tool with an output schema and read-only annotations, the description covers what it returns, that it changes nothing, and the required follow-up. The remaining gap is the relationship to the deposit/deposit_brief tools, which an agent would need to resolve on its own.

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

Parameters3/5

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

Schema coverage is 100% and the single `needed` parameter is fully documented in the schema, including its default and its origin (joules_deficit or a 402). The description body itself does not restate the parameter, so it adds nothing beyond the structured field — baseline 3 is appropriate.

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

Purpose4/5

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

The description names the resource concretely — it returns the caller's own USDC-on-Base deposit address plus the live minimum — and frames it as the preparation step for a joule shortfall. An agent can distinguish it from funding_status because the description explicitly assigns tracking to that sibling. The only drag is jargon ('in-band funding step') that requires reading the rest of the sentence to decode.

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

Usage Guidelines4/5

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

It states the triggering condition (a joule shortfall) and hands off the follow-up to funding_status, which is clear routing. It does not explicitly exclude the neighboring deposit/deposit_brief tools, so an agent facing both 'deposit' and 'funding_prepare' still has to infer which one initiates money movement.

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

funding_statusA
Read-only
Inspect

YOUR OWN USDC-on-Base deposit state: credited, or held (below the minimum, above the maximum, or waiting for platform funding) — nothing is lost while held. From your credential, no arguments.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
noteNo
depositsNo
usdc_liveNo
minimum_usdcNo
scanner_cursor_blockNo
needed_to_credit_usdcNo
held_below_min_total_usdcNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, non-destructive, closed-world), so the extra value is in explaining the possible held states and reassuring that 'nothing is lost while held' — genuinely useful context a caller would otherwise worry about. It stops short of describing whether state is live vs cached.

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

Conciseness5/5

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

A single compact sentence with the resource front-loaded ('YOUR OWN USDC-on-Base deposit state'), followed by the enumerated states and the reassurance clause — no filler.

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

Completeness4/5

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

With annotations covering safety, an output schema carrying the return shape, and zero params, the description needs only to explain what state means — which it does via the credited/held enumeration. Minor gap: no hint on freshness or when held status would change.

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

Parameters4/5

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

The tool takes zero parameters, so the baseline of 4 applies; the description correctly states 'no arguments' and that identity comes from the credential, which is the one semantic point worth making.

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

Purpose4/5

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

States a specific verb+resource — 'your own USDC-on-Base deposit state' — and enumerates outcomes (credited, held below minimum, above maximum, awaiting platform funding). It distinguishes itself implicitly from the deposits/deposit/funding_prepare siblings via 'YOUR OWN' scoping, but never names those siblings explicitly.

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

Usage Guidelines3/5

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

'From your credential, no arguments' makes invocation unambiguous, but the description never says when to call this versus funding_prepare, deposits, or deposit_brief. The timing/usage context is implied by the noun 'status' rather than stated.

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

job_statusA
Read-only
Inspect

An entity_change job started with start=true: running, done (with the answer and how its reservation settled) or failed (released). Free. Only the paying wallet can read it.

NameRequiredDescriptionDefault
job_idYesThe job_id an entity_change(start=true) call returned (a UUID).

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnly/destructive=false, but the description adds genuinely new context: the call is free, it is restricted to the paying wallet, and each state carries specific semantics (done returns the answer plus how the reservation settled; failed means released). That auth and cost disclosure is real value beyond the structured hints.

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

Conciseness4/5

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

Very compact and front-loaded with the job identity before states, cost, and access rules. The telegraphic fragments ('Free.', 'released.') are dense but each clause carries information, not filler.

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

Completeness4/5

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

For a single-parameter status read with an output schema present, the description covers origin, states, cost, and access control adequately. Minor gap: no hint about polling cadence or what to do between running and terminal states, which an agent deciding when to re-call would benefit from.

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

Parameters3/5

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

Schema coverage is 100% and job_id is already documented as the UUID returned by entity_change(start=true). The description restates that same origin but adds no format, validation, or edge-case detail beyond the schema, so baseline 3 applies.

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

Purpose4/5

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

The description identifies this as the status read for an entity_change job started with start=true and enumerates the three terminal/running states, so the agent can tell it apart from the mutation sibling entity_change. It never uses an explicit verb like 'check' or 'poll', so purpose is clear but implicitly framed.

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

Usage Guidelines3/5

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

It implies the usage sequence (call after entity_change with start=true) and states the access precondition that only the paying wallet can read it. There is no explicit when-not guidance or named alternative for fetching entity state redo after the job completes.

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

joules_balanceA
Read-only
Inspect

Your own wallet balance, free. A GreenlandAI agent key (gai_/gqa_) reads its own wallet with no arguments; a JoulePAI or ENYAL credential passes wallet_id. The graph meter debits this same wallet.

NameRequiredDescriptionDefault
wallet_idNoWallet id (UUID) to read

Output Schema

NameRequiredDescription
idNo
handleNo
balanceNo
agent_idNo
wallet_idNo
agent_nameNo
owner_typeNo
balance_joulesNo
verification_statusNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover read-only, non-destructive, closed-world semantics, and the description adds genuinely new context: the call is free and 'the graph meter debits this same wallet', which tells the agent the balance is the metered/spendable one. It does not disclose error behavior for mismatched credentials or cross-wallet reads.

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

Conciseness5/5

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

Three short sentences, purpose front-loaded, then the credential branching rule, then the metering note. No filler and nothing repeated from the schema.

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

Completeness4/5

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

With an output schema covering return values and annotations covering safety, the description only needs to supply auth/cost context, which it does. Minor gaps remain around failure modes and whether a wallet other than your own can be read.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description earns an upgrade by explaining that wallet_id is credential-conditional — required only for JoulePAI/ENYAL, omitted for GreenlandAI agent keys — which the schema's plain 'Wallet id (UUID) to read' does not convey.

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

Purpose4/5

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

The description states a specific verb+resource ('Your own wallet balance') and adds that it is free of charge, so an agent knows exactly what is returned. It does not explicitly distinguish itself from nearby siblings such as deposits, balance_proof, or joules_deficit, so differentiation is only implied by 'your own wallet'.

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

Usage Guidelines4/5

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

It gives concrete calling conditions: a gai_/gqa_ agent key reads its own wallet with no arguments, while JoulePAI or ENYAL credentials must pass wallet_id. It stops short of naming when to prefer an alternative sibling (e.g. a proof or history tool) or when this call would fail.

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

joules_deficitA
Read-only
Inspect

Can you afford the next call? Give a planned cost; returns {needed, have, shortfall, tool_to_call_next}. Free. Agent keys read their own wallet; a JoulePAI or ENYAL credential may pass wallet_id.

NameRequiredDescriptionDefault
costYesThe joules the next call will cost (its joules_all_in from billing_quote).
wallet_idNoWallet to read (UUID); omit to use your own. Not used with a GreenlandAI agent key.

Output Schema

NameRequiredDescription
haveNo
neededNo
shortfallNo
tool_to_call_nextNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover read-only/non-destructive/closed-world, so the description adds context beyond them: the call is free, agent keys read their own wallet, only JoulePAI/ENYAL credentials may supply wallet_id, and GreenlandAI keys cannot. That credential/wallet-routing detail is genuinely useful and not in the annotations, though nothing is said about rate limits or handling of a nonzero shortfall.

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

Conciseness5/5

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

Four short clauses, front-loaded with the decision question, then the required input, the return shape, the free-of-charge note, and the credential caveat. No filler and no repetition of the schema.

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

Completeness4/5

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

With annotations and an output schema already present, the description only needs to establish intent and auth context, which it does. The one gap is what an agent should do when shortfall > 0 (presumably follow tool_to_call_next), which it leaves implicit.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3; the description goes further by clarifying that `cost` is a planned next-call cost and by stating the credential rules that govern whether `wallet_id` is usable, which the schema only partially expresses ('Not used with a GreenlandAI agent key').

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

Purpose4/5

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

Frames a specific question ('Can you afford the next call?') and names the inputs and exact return fields, so the agent knows this is a pre-flight affordability check rather than a plain balance read. It is distinguishable from joules_balance/billing_quote by intent, though no sibling is named explicitly.

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

Usage Guidelines4/5

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

'Can you afford the next call?' plus 'Give a planned `cost`' establishes the usage context: run this before committing to a paid call. It does not name alternatives (joules_balance, billing_quote) or say when not to use it, 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.

ledger_verifyB
Read-only
Inspect

Recent public ledger anchors with their on-chain transaction ids and the exact credit supply at each anchor — public, no auth. Independently checkable.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
erasNo
totalNo
anchorsNo
coverageNo
hash_formatNo
chain_semanticsNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and non-destructive behavior; the description's genuine contribution is 'public, no auth', which is useful auth context not encoded in annotations. Beyond that it adds nothing about scope, recency window semantics, or result volume — and 'recent' is left undefined.

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

Conciseness4/5

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

A single tight sentence with the substantive payload front-loaded and no filler. It is efficient, though the leading noun phrase buries the action the agent is trying to confirm.

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

Completeness4/5

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

With zero parameters, an output schema in place, and annotations covering the safety profile, the description carries nearly everything an agent needs for correct invocation. The only meaningful omission is how it differs from transparency_latest and verify_proof.

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

Parameters4/5

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

The tool takes zero parameters, so the schema requires no explanation and the description has no parameter semantics to compensate for. Baseline 4 applies.

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

Purpose3/5

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

The description names the resource and its contents (ledger anchors, on-chain tx ids, credit supply at each anchor), but it is a noun phrase with no verb telling the agent what operation is performed — read, verify, or list. The name implies 'verify' while the text describes retrieval, and it does not distinguish itself from siblings like transparency_latest or verify_proof.

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

Usage Guidelines2/5

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

There is no statement of when to call this versus transparency_latest or verify_proof, both of which sit in the same conceptual space. 'Independently checkable' hints at a verification use case but never converts that into an actionable condition.

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

look_atA
Read-only
Inspect

A satellite still of a place: the newest Sentinel-2 archive image on or before as_of, by lat/lng or entity_type + id. Returns the JPEG plus provenance (observed_at is the scene's date). A cloudy or missing scene is available:false and costs nothing. Agent keys only. Metered: see CHARGING in the server instructions; quote first with billing_quote.

NameRequiredDescriptionDefault
idNoEntity id to anchor on (with entity_type).
latNoLatitude in decimal degrees, -90 to 90 (WGS84). Use with lng, or pose on an entity instead.
lngNoLongitude in decimal degrees, -180 to 180 (WGS84).
as_ofNoNewest scene on or before this date, YYYY-MM-DD. Default: the newest scene.
max_cloudNoMaximum cloud cover of a scene, 0-100 percent. Default 20.
entity_typeNoEntity kind: deposit | infrastructure | company | project. With `id`, anchors the still on that entity.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior5/5

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

Goes well past the readOnlyHint annotation: it discloses metering, the credential requirement ('agent keys only'), the zero-cost failure mode for cloudy/missing scenes, and the `available:false` signal. These are exactly the behavioral facts an agent needs before spending credits, and nothing contradicts 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.

Conciseness5/5

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

Three tight sentences lead with what the tool produces, then the fallback behavior, then the billing gate. Every clause carries information; nothing is restated from the schema or annotations.

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

Completeness5/5

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

Complete for a metered, single-shot read tool: input anchoring modes, cost model, failure semantics, and the provenance contract are all covered. With an output schema present, it correctly leaves return-value structure to that schema.

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

Parameters4/5

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

Schema coverage is already 100%, so the baseline is 3; the description adds real meaning by stating the as_of semantics ('newest scene on or before') and clarifying that `observed_at` is the scene date rather than the request date. It doesn't add anything for `max_cloud` or the entity_type enum beyond the schema.

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

Purpose4/5

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

Names a specific verb+resource (satellite still) and pins its data source (newest Sentinel-2 archive image on or before `as_of`), which is far more specific than a bare name. It does not distinguish itself from siblings like `look_from`, `look_through`, or `map_viewport`, so an agent must infer the boundary itself.

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

Usage Guidelines4/5

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

Gives clear operational routing: anchor by lat/lng or entity_type + id, quote with `billing_quote` before spending, and agent keys required. What is missing is explicit when-to-use-this-vs-`look_from`/`look_through` guidance, which matters given three visually similar siblings.

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

look_fromA
Read-only
Inspect

Map pins near a point (lat/lng + radius_km). entity_type alone filters to that type; with id it anchors the view at that entity. Each pin carries its source_tier provenance. Metered: see CHARGING in the server instructions; quote first with billing_quote.

NameRequiredDescriptionDefault
idNoEntity id to anchor the pose on (with entity_type).
latNoLatitude in decimal degrees, -90 to 90 (WGS84). Use with lng, or pose on an entity instead.
lngNoLongitude in decimal degrees, -180 to 180 (WGS84).
energyNoInclude energy-fleet infrastructure (power plants and grid assets). Default false.
fieldsNoOnly these keys in each row (plus id). Omit for all.
radius_kmNoSearch radius around the pose, in km. Default 100.
entity_typeNoEntity kind: deposit | infrastructure | company | project.
include_country_centroidsNoAlso return country-centre placeholder pins (entities known only by country). Default false.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, non-destructive, closed-world), and the description adds real behavioral context beyond them: the call is metered, must be pre-quoted via billing_quote, and each pin carries source_tier provenance. The only gap is that it defers cost details to server instructions rather than stating them inline.

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

Conciseness4/5

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

Four short clauses, front-loaded with the pose mechanism, then the mode rule, then provenance, then cost. Nothing is padded, though the CHARGING pointer is slightly elliptical and requires the agent to go look elsewhere.

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

Completeness5/5

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

With an output schema present, return shape needs no explanation, and all 8 parameters are schema-documented. The description still covers the mode logic, provenance, and the billing precondition — everything an agent needs to invoke it correctly. Zero required parameters is handled by the implicit pose rule (lat/lng or id+entity_type).

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3, but the description adds cross-parameter semantics the schema does not: entity_type alone acts as a filter, while supplying id together with entity_type anchors the pose on that entity. That interaction rule is exactly the kind of meaning a schema of independent property descriptions cannot convey.

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

Purpose4/5

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

States a specific verb+resource ('Map pins near a point') with the pose mechanism (lat/lng + radius_km), which is far more informative than the bare name. It does not, however, distinguish itself from closely related siblings like look_at, look_through, map_viewport, or nearby, so an agent still has to guess which view tool to pick.

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

Usage Guidelines3/5

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

Gives clear conditional usage for the two modes ('entity_type alone filters... with id it anchors'), which is genuinely useful. It also states a workflow prerequisite (quote first with billing_quote). But it never says when to choose this over the sibling view/nearby tools, which is the harder decision for an agent.

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

look_throughA
Read-only
Inspect

An ordered stack of dated Sentinel-2 stills of one site from t0 to t1, one per window (max_frames, default 6), each with its own scene date. A window with no clear scene is an explicit empty frame, not charged. Agent keys only. Metered: see CHARGING in the server instructions; quote first with billing_quote.

NameRequiredDescriptionDefault
idNoEntity id to anchor on (with entity_type).
t0YesStart of the date range, YYYY-MM-DD, on or after 2015-06-23. Required.
t1NoEnd of the date range, YYYY-MM-DD. Default today.
latNoLatitude in decimal degrees, -90 to 90 (WGS84).
lngNoLongitude in decimal degrees, -180 to 180 (WGS84).
max_cloudNoMaximum cloud cover of a scene, 0-100 percent. Default 20.
max_framesNoHow many equal windows to cut the range into, 1-12; one still per window. Default 6.
entity_typeNoEntity kind: deposit | infrastructure | company | project.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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

Goes beyond the readOnly/openWorld annotations by disclosing that empty windows are explicit empty frames and are not charged, that the tool is metered under CHARGING in server instructions, and that agent keys are required. No destructiveness or side effects contradict the read-only annotations; the only gap is that response shape is left to the output schema.

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

Conciseness4/5

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

Front-loaded with what the result is, then constraints, then the billing pointer — four short sentences with little waste. Minor density from jargon such as 'explicit empty frame' and the CHARGING reference, but nothing extraneous.

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

Completeness4/5

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

For a metered, read-only imagery tool with a full schema and an output schema, the description covers the behavior an agent most needs: windowing, empty frames, cost, and auth. The missing piece is sibling comparison, which leaves selection ambiguous among look_at, look_from, and site_reconstruction.

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

Parameters3/5

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

Schema description coverage is 100%, so parameter meaning is already fully documented. The description echoes max_frames and its default 6 and clarifies that the range is cut into equal windows with one still each, which is modest added semantics over the schema's own wording.

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

Purpose4/5

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

States a concrete verb and output artifact: an ordered stack of dated Sentinel-2 stills for one site between t0 and t1, one per window. It is distinguishable from a single-image tool only by inference; the sibling tools look_at and look_from are never named, so the boundary between 'look through a range' and 'look at a site/moment' is not made explicit.

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

Usage Guidelines3/5

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

The description implies usage through 'quote first with billing_quote' and 'Agent keys only', which gives real preconditions, but it never states when an agent should pick look_through over look_at, look_from, or site_reconstruction. Usage is implied by the window/time-series framing rather than stated.

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

map_viewportA
Read-only
Inspect

Everything inside a bounding box (min_lat, min_lng, max_lat, max_lng): the true count per type for the whole box plus a capped sample of pins. Agent keys only. Metered: see CHARGING in the server instructions; quote first with billing_quote.

NameRequiredDescriptionDefault
energyNoInclude energy-fleet infrastructure and projects. Default false.
fieldsNoOnly these keys in each row (plus id). Omit for all.
max_latNoNorth edge of the bounding box (latitude).
max_lngNoEast edge of the bounding box (longitude).
min_latNoSouth edge of the bounding box (latitude). Send all four edges together.
min_lngNoWest edge of the bounding box (longitude).
entity_typeNoEntity kind: deposit | infrastructure | company | project. Default all four.
include_country_centroidsNoAlso return country-centre placeholder pins (entities known only by country). Default false.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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

Goes well beyond the annotations: discloses that the call is metered, that a billing quote must precede it, that keys are agent-scoped, and that results are a capped sample while counts are exact for the full box. The exact cap size and whether it is paginable are left unstated, keeping this short of a 5.

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

Conciseness4/5

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

Front-loaded with the bounding-box scope and the return shape, then the access and billing constraints. The telegraphic fragments ('Agent keys only.', 'Metered: see CHARGING...') are dense rather than padded, though the CHARGING reference is slightly cryptic without external context.

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

Completeness4/5

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

For an 8-parameter, read-only tool with a full output schema and rich annotations, the description covers the gaps that matter: exact-vs-sampled results, metering, auth scope. Sampling behavior (cap size, pagination) and the all-four-edges requirement are handled by the schema, so nothing critical is missing.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents all eight parameters including the four bbox edges and their validity. The description merely restates the four edge names and adds no format, ordering, or edge-case meaning beyond the schema's 'Send all four edges together' note.

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

Purpose4/5

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

The description specifies the resource and its scope precisely: a bounding-box query returning per-type counts plus a capped pin sample. That is enough to distinguish it from generic siblings, but it never names or contrasts it with the geo-adjacent siblings (nearby, look_at, look_from, look_through), so an agent must infer the split.

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

Usage Guidelines3/5

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

It gives one hard prerequisite — quote with `billing_quote` first and consult CHARGING — which is genuinely actionable. It does not say when to choose map_viewport over the point/line-of-sight tools in the sibling list, so the when-vs-alternatives rule is only implied.

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

market_acceptA
Destructive
Inspect

Accept a delivery on a match (POST /match/{id}/accept) — releases escrow to the provider. You must be the buyer party; the backend enforces it.

NameRequiredDescriptionDefault
match_idYesThe marketplace match id (UUID). You must be its buyer.
idempotency_keyNoYour own opaque key: the same key accepts once, never twice.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true and idempotentHint=false; the description adds real value beyond them by disclosing the consequence (escrow released to the provider) and an authorization constraint enforced server-side. It stops short of saying the release is irreversible or what happens on a rejected accept.

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

Conciseness5/5

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

Two tight sentences: action and effect first, then the permission constraint. No restated boilerplate and nothing that could be cut.

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

Completeness4/5

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

An output schema exists, so return values needn't be described, and the mutation's safety profile plus auth requirement are covered. The only gap is failure/irreversibility behavior for a destructive escrow-releasing call.

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

Parameters3/5

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

Schema coverage is 100%, so both match_id and idempotency_key are fully documented in the schema, including the buyer-ownership requirement and the single-use key rule. The description adds nothing parameter-specific beyond that, so baseline 3 applies.

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

Purpose5/5

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

States a specific verb ('Accept'), resource ('a delivery on a match'), the underlying endpoint, and the material effect ('releases escrow to the provider'). This is clearly distinguishable from siblings like market_provide or market_match without opening a schema.

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

Usage Guidelines3/5

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

It gives a hard precondition ('You must be the buyer party; the backend enforces it'), which implies when the tool is callable, but it names no alternatives and no explicit when-not-to-use case (e.g. dispute, rematch paths such as market_request_rematch).

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

market_listingsA
Read-only
Inspect

Browse the RAREEAI marketplace: kind="providers" (listings, filterable and sorted) or "oracles". Paged.

NameRequiredDescriptionDefault
kindNo"providers" (marketplace listings) or "oracles". Default providers.providers
sortNoSort order, e.g. price_asc (default) or price_desc.price_asc
limitNoMaximum rows to return. Up to 200. Default 50.
activeNoOnly active listings. Default true.
offsetNoRows to skip, for paging. Default 0.
frontierNoListings in this frontier only (providers).
resource_typeNoListings of this resource type only (providers).
oracle_verifiedNoOnly providers that opted in to oracle verification (true) or did not (false).

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds only that results are paged and that some filtering applies to providers, without stating pagination limits, cap behavior, or that certain filters are ignored in oracles mode.

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

Conciseness4/5

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

Two short sentences with the mode switch front-loaded and no filler. The clipped fragment "Paged." is efficient but leaves the reader slightly under-served given there are eight parameters.

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

Completeness4/5

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

An output schema exists, so return values need not be explained, and annotations handle the safety profile. The description covers the mode split and paging but is thin about how limit/offset interact with the provider-only filters, which is the main remaining gap for an eight-parameter browse tool.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter including kind, sort, limit and the provider-only filters is already documented. The description only restates kind values and paging, adding no format or default semantics beyond the schema; baseline 3 applies.

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

Purpose4/5

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

States a concrete verb (Browse) plus resource (RAREEAI marketplace) and enumerates the two modes, kind="providers" vs "oracles". It does not distinguish itself from near-siblings such as market_match or company_search, so an agent must lean on the name alone to rule those out.

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

Usage Guidelines3/5

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

The two kind values imply when each mode applies, and "filterable and sorted" hints at the listing path, but there is no explicit when-to-use guidance and no mention of alternatives such as market_request or company_search. Usage is inferable rather than stated.

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

market_matchA
Read-only
Inspect

Read one marketplace match you are a party to: its escrow_terms, fee and timeout fields, dispute window and dispute state. For the settlement legs use trade_settlement.

NameRequiredDescriptionDefault
match_idYesThe marketplace match id (UUID). You must be a party to it.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, destructiveHint=false and closed-world scope, so safety is covered; the description adds the meaningful access-control constraint that the caller must be a party to the match and names the data classes exposed, useful for judging sensitivity. It says nothing about what happens if you are not a party (error vs. empty), which is the one behavioral gap.

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

Conciseness5/5

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

Two short sentences, front-loaded with the verb and scope, with the sibling hand-off in the trailing clause. No filler and nothing buried.

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

Completeness4/5

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

An output schema exists, so return values needn't be enumerated, and annotations carry the safety profile; with one required param fully documented, the definition is nearly sufficient. The only shortfall is not stating the failure mode for non-party or unknown match ids.

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

Parameters3/5

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

Single parameter with 100% schema coverage, where the schema already documents both the UUID format and the party requirement. The description's 'you are a party to it' restates the schema rather than adding format, sourcing, or lookup semantics, so it lands at the baseline for fully-covered schemas.

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

Purpose5/5

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

States a specific verb (read) and resource (one marketplace match) plus the exact field families returned: escrow_terms, fee, timeout, dispute window and dispute state. It also bounds scope to matches 'you are a party to', which separates it from listing/browsing siblings like market_listings and market_request.

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

Usage Guidelines4/5

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

Explicitly routes the agent to trade_settlement for settlement legs, which is a real exclusion rule rather than vague guidance. It does not address the other plausible alternatives (market_quote, market_accept, market_request_rematch), so the alternative-mapping is partial rather than exhaustive.

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

market_provideA
Destructive
Inspect

Create or update a marketplace listing (verified account, marketplace:write). Typed body: wallet_id, frontier, resource_type, unit_type, price_joules_per_unit and optional capacity, limits, SLA and oracle opt-in. A first-time registration carries a one-time fee.

NameRequiredDescriptionDefault
bodyYesThe listing; each field is described in its schema.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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

Adds real context beyond annotations: it discloses the auth/scope requirement and a one-time registration fee, and frames the operation as create-or-update rather than a plain create. It does not explain what the declared destructiveHint=true means here (whether an update replaces or clears prior listing terms).

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

Conciseness4/5

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

Two tight sentences with the verb and resource front-loaded and the precondition and cost appended where they belong. The 'Typed body:' enumeration is partly redundant with the fully described schema, but it earns its place as a fast required-field summary.

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

Completeness4/5

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

With a rich schema, an output schema, and annotations carrying the safety profile, the description covers purpose, auth, and cost adequately. The remaining gap is that a destructive, non-idempotent upsert does not say what an update does to existing listing terms or stakes.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents every body field, including idempotency_key and the timeout_hours/timeout_minutes pair. The description only summarizes the required fields and lumps the rest as 'optional capacity, limits, SLA and oracle opt-in', which adds grouping but no new semantics.

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

Purpose4/5

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

States a specific verb pair and resource: 'Create or update a marketplace listing'. The scope hint '(verified account, marketplace:write)' plus the listing vocabulary separates it from read-side siblings like market_listings and buyer-side ones like market_request, though no sibling is named explicitly.

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

Usage Guidelines3/5

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

Usage is implied by the upsert framing and the 'verified account, marketplace:write' prerequisite, and the fee note flags a cost gate. But it never says when to choose this over market_request, market_quote, or market_listings, nor when a caller should update versus register fresh.

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

market_quoteA
Read-only
Inspect

Read one marketplace REQUEST you own, by id: its terms, status and units matched, plus the generic escrow_terms. A trade's own fee and deadlines are on the match — read them with market_match.

NameRequiredDescriptionDefault
request_idYesThe marketplace REQUEST id (UUID) you posted with `market_request`.

Output Schema

NameRequiredDescription
idNo
speedNo
statusNo
agent_idNo
frontierNo
priorityNo
unit_typeNo
wallet_idNo
created_atNo
expires_atNo
escrow_termsNo
privacy_modeNo
requirementsNo
units_neededNo
rematch_untilNo
resource_typeNo
units_matchedNo
contract_escrowNo
max_price_per_unitNo
target_provider_idNo
rematch_max_total_joulesNo
rematch_max_price_per_unitNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so safety is covered. The description adds genuine context beyond them: the record is scoped to requests you own, and the `escrow_terms` returned are generic rather than deal-specific — a distinction an agent would otherwise get wrong. It doesn't mention behavior on a bad or foreign id, which would have made it a 5.

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

Conciseness5/5

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

Two dense sentences, front-loaded with what is returned and followed immediately by the sibling pointer for the data this tool omits. Nothing is padding.

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

Completeness4/5

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

With an output schema present the description needn't enumerate return fields, yet it still summarizes them, and it flags the important caveat that trade fee and deadlines live on the match. Complete for a single-record read; only missing an error case for ids you don't own or that don't exist.

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

Parameters3/5

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

Schema coverage is 100% and the single parameter already documents that request_id is the UUID posted with market_request, so the schema carries the parameter burden. The description repeats the same ownership/identity framing without adding syntax, format, or failure semantics.

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

Purpose5/5

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

States a specific verb (read), a specific resource (one marketplace REQUEST you own), the lookup key (by id), and even the payload (terms, status, units matched, generic escrow_terms). It explicitly separates itself from market_match, so an agent can pick between them without opening either schema.

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

Usage Guidelines4/5

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

Usage is implied precisely: you call this to inspect a single request you own, and the description names market_match as the place to go for trade-specific fee and deadlines. That is a clear routing rule, though it stops short of stating exclusions such as when to use market_listings or market_request instead.

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

market_requestAInspect

Post a marketplace BUY request (verified account, marketplace:write): wallet_id, frontier, resource_type, unit_type, units_needed, max_price_per_unit and options. Escrow is debited on match. A physical trade must carry physical_claim (the site and dates).

NameRequiredDescriptionDefault
bodyYesThe buy request; each field is described in its schema.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

The annotations only declare the safety profile (not read-only, not destructive, not idempotent); the description adds the material fact that escrow is debited on match, which is a real financial consequence not covered by any structured field. It could say more about what happens to the escrow if the request expires unmatched (ttl_seconds), which is the natural follow-up question.

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

Conciseness4/5

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

Three tight sentences, front-loaded with the action and its auth scope, then the escrow consequence, then the physical-claim caveat. The required-field enumeration is mildly redundant given full schema coverage but functions as a fast pre-flight checklist.

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

Completeness4/5

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

An output schema exists, so return values need no explanation, and the description covers auth, cost, and the physical_claim condition. Minor gaps remain around escrow refund/expiry behavior and the idempotency contract, both of which are only discoverable in the nested schema.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents wallet_id, frontier, resource_type, unit_type, units_needed and max_price_per_unit. The description merely re-enumerates those names and lumps everything else into "options," adding no format, default, or constraint detail beyond the schema. Baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ("Post a marketplace BUY request") and thereby implicitly distinguishes itself from the sell-side sibling market_provide. The buying intent plus the required-field list makes the operation unambiguous, though it never names the sibling it contrasts with.

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

Usage Guidelines4/5

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

Supplies the gating conditions an agent needs before calling: verified account, marketplace:write scope, and the rule that a physical trade must carry physical_claim. It stops short of explicit when-not-to-use guidance or naming alternatives such as market_provide or market_match.

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

market_request_rematchAInspect

Match one of YOUR open requests now. Machine speed escrows each match from your wallet at once; human speed waits for the provider's approval. A 409 when the request is no longer open.

NameRequiredDescriptionDefault
request_idYesYour open marketplace REQUEST id (UUID).

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

Goes meaningfully beyond the annotations: it discloses that matching escrows funds from the wallet immediately under machine speed versus deferring to provider approval under human speed, and documents the 409 failure condition. It omits the non-idempotency consequence (idempotentHint=false implies a repeat call may escrow a second time) and any amount/limit context, which for a money-moving call is a notable gap.

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

Conciseness5/5

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

Three compact sentences with zero filler; the action is front-loaded and the escrow/approval and error details follow in priority order.

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

Completeness4/5

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

An output schema exists, so return values need no explanation, and the single parameter is fully documented in the schema. What remains thin is the cost/escrow magnitude and repeat-call behavior for a mutation tool, though the core behavior is adequately covered.

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

Parameters3/5

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

Only one parameter and schema coverage is 100%, so the schema already carries the meaning. The description reinforces ownership ('YOUR') and openness of the request, but adds no format, sourcing, or lookup guidance beyond the schema.

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

Purpose4/5

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

States a specific verb ('Match') and scoped resource ('one of YOUR open requests'), which separates it from the generic market_match and from market_request. The 'rematch' framing and the 'now' emphasis imply re-triggering a match, but it never explicitly contrasts with market_match or market_request, so the sibling boundary is left partly to inference.

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

Usage Guidelines3/5

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

The possessive 'YOUR open requests' and the 409 note imply the precondition (you must own an open request) but do not state it as a rule or name alternatives such as market_match or market_request_rematch_withdraw. Usage is inferable rather than prescribed.

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

market_request_rematch_withdrawAInspect

Withdraw a request's automatic re-matching consent now (DELETE /api/v1/marketplace/request/{id}/rematch). Matches already escrowed stay as they are.

NameRequiredDescriptionDefault
request_idYesYour marketplace REQUEST id (UUID).

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare non-read-only, non-destructive, non-idempotent, and the description adds genuine context beyond them: already-escrowed matches are left untouched, so the agent knows the blast radius is limited to future auto-matching. It omits whether the withdrawal can be reversed (re-enabling via the sibling) and any auth requirements.

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

Conciseness5/5

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

Two sentences, zero filler, with the action and its endpoint front-loaded and the side-effect caveat immediately after. Every clause earns its place.

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

Completeness4/5

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

With an output schema present, return values need not be explained, and the description covers the action, endpoint, and effect on existing matches. The main residual gap is the absence of any mention of reversibility or permission requirements for a mutation tool.

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

Parameters3/5

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

Only one parameter and schema coverage is 100%, so the schema already explains request_id as the marketplace REQUEST UUID. The description adds nothing further about the parameter (no format, no ownership constraint), which is the expected baseline here.

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

Purpose4/5

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

States a specific verb+resource: withdrawing a request's automatic re-matching consent, reinforced by the DELETE endpoint path. It is distinguishable from the sibling market_request_rematch (the enable counterpart) through the verb 'withdraw', though it never names that sibling explicitly.

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

Usage Guidelines3/5

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

'Withdraw ... now' implies immediacy, and the second sentence scopes the effect, but there is no explicit statement of when an agent should call this versus market_request_rematch or market_match, nor any prerequisites (e.g., ownership of the request).

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

nearbyA
Read-only
Inspect

Entities near a location: lat + lng, radius_km, an optional entity_type, limit. Each carries source_tier. Metered: see CHARGING in the server instructions; quote first with billing_quote.

NameRequiredDescriptionDefault
latYesLatitude in decimal degrees, -90 to 90 (WGS84). Required.
lngYesLongitude in decimal degrees, -180 to 180 (WGS84). Required.
limitNoMaximum rows to return. Up to 100. Default 20.
fieldsNoOnly these keys in each row (plus id). Omit for all.
radius_kmNoSearch radius in km. Default 100.
entity_typeNoEntity kind: deposit | infrastructure | company | project. Optional filter; default all four.
include_country_centroidsNoAlso return country-centre placeholder pins (entities known only by country). Default false.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, destructiveHint=false, and openWorldHint=false, so safety is covered. The description adds context the annotations cannot: the call is metered/billed and must be quoted via billing_quote beforehand, and results carry a source_tier. That is meaningful behavioral disclosure beyond structured fields.

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

Conciseness4/5

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

Two compact sentences, front-loaded with what the tool returns, then the billing prerequisite. No filler. The telegraphic style is slightly abbreviated but every clause carries information.

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

Completeness4/5

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

An output schema exists, so return shape need not be explained, and the billing gate plus source_tier are called out. For a read-only spatial query with fully described parameters, the description covers what an agent needs, though a pointer to when to prefer a sibling tool is missing.

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

Parameters3/5

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

Schema coverage is 100%, so all seven parameters are already documented, including defaults for radius_km, limit, and include_country_centroids. The description only restates names (lat, lng, radius_km, entity_type, limit) without adding format or interaction semantics. Baseline 3 is appropriate.

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

Purpose4/5

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

The description states the resource precisely: entities near a lat/lng within radius_km, with optional entity_type and limit, and notes each row carries source_tier. That is a clear, specific spatial-query purpose. It does not distinguish itself from nearby siblings like place_index or look_at, which keeps it from a 5.

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

Usage Guidelines3/5

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

The one real guideline is procedural: this tool is metered, so quote first with billing_quote. That is a valuable precondition. However, there is no guidance on when to choose this over place_index, look_at, or map_viewport, so usage selection is only implied.

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

oracle_assessA
Destructive
Inspect

Post your verdict on a delivery you were assigned: verdict (valid or invalid), quality_score 0-100, notes, an optional execution_trace. A low score opens a dispute. A 409 means the match has moved on — do not retry; read the match.

NameRequiredDescriptionDefault
bodyYesYour verdict; each field is described in its schema.
match_idYesThe marketplace match id (UUID). One you are assigned to assess.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

Goes meaningfully beyond the annotations by disclosing a side effect ('A low score opens a dispute') and a specific failure contract ('A 409 means the match has moved on — do not retry'), which matters given idempotentHint=false and destructiveHint=true. It does not clarify whether a submitted verdict can be amended or what authorization/registration is required, leaving some gaps.

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

Conciseness5/5

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

Three compact clauses, front-loaded with the action and payload, then the dispute consequence, then the conflict rule. No filler sentences and nothing redundant with the schema.

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

Completeness4/5

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

With an output schema present, return values need not be described, and the description covers the mutation's consequence and its main error path. It is slightly short on what a successful response looks like at a workflow level (e.g., whether the match closes or the verdict is final).

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents verdict, quality_score bounds, notes length, and execution_trace. The description mostly restates those fields and adds no format or syntax detail beyond them, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource ('Post your verdict on a delivery you were assigned') and enumerates the payload fields (verdict, quality_score, notes, execution_trace). It is clearly distinguished from the sibling oracle_assignments, which fetches assignments rather than submitting verdicts.

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

Usage Guidelines4/5

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

The phrase 'a delivery you were assigned' establishes the precondition for calling it, and the description gives concrete when-to-act guidance on the 409 case ('do not retry; read the match'). It does not explicitly name oracle_assignments as the place to obtain the match_id, so the routing to alternatives is only implicit.

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

oracle_assignmentsA
Read-only
Inspect

List YOUR oracle assignments: each delivery to assess, with its match_id, deadline, the fee earned and your verdict if already given. Optional status filter and limit.

NameRequiredDescriptionDefault
limitNoMaximum rows to return. 1-200. Default 50.
statusNoOnly assignments in this status.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=false and destructiveHint=false, so the safety profile is covered. The description adds the useful scoping fact that results are limited to the caller's own assignments and that already-given verdicts are included. It says nothing about ordering or what an empty result means.

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

Conciseness5/5

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

A single front-loaded sentence that identifies the resource first, then the payload fields, then the optional controls. No filler and nothing repeated from structured fields.

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

Completeness5/5

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

For a read-only, two-parameter list tool with full schema coverage, an output schema and complete annotations, the description supplies everything needed to call it correctly. Return values need not be explained because an output schema exists.

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

Parameters3/5

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

Schema description coverage is 100%, with both `limit` (range 1-200, default 50) and `status` fully documented inline. The description only restates "Optional status filter and limit" without adding valid status values or ordering semantics, so the baseline 3 applies.

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

Purpose4/5

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

"List YOUR oracle assignments" gives a specific verb and resource with an ownership scope, and enumerating the returned fields (match_id, deadline, fee, verdict) makes the shape concrete. It does not name the sibling it complements (oracle_assess), so the distinction from the other oracle_* tools must be inferred.

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

Usage Guidelines3/5

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

The phrase "each delivery to assess" implies the workflow (list here, then assess), and "Optional status filter" hints at filtering use. But there is no explicit when-to-use, no exclusion, and no pointer to oracle_assess or oracle_register as the alternative action.

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

oracle_deregisterA
Destructive
Inspect

Deregister as an oracle and get your stake back from escrow (less anything slashed). wallet_id is required. Fails while you have pending assessments.

NameRequiredDescriptionDefault
wallet_idYesYour oracle wallet's UUID (the one that holds the stake).

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false and idempotentHint=false, so the safety profile is covered. The description adds real context the annotations don't: the stake is refunded minus slashed amounts, and the call is blocked while assessments are pending. It omits reversibility (whether you can re-register afterwards) and what happens on repeated calls.

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

Conciseness5/5

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

Two short sentences, front-loaded with the action and its payoff, then the precondition. Nothing is redundant except the minor restatement of requiredness that the schema already enforces.

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

Completeness4/5

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

An output schema exists, so return values need no explanation, and the description covers the key effect and the blocking condition for a simple one-parameter destructive tool. A note on irreversibility or re-registration would make it fully complete.

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

Parameters3/5

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

Schema coverage is 100% and the single parameter already carries the description 'Your oracle wallet's UUID (the one that holds the stake).' The description only restates that wallet_id is required, adding no syntax or selection guidance beyond the schema, so the baseline of 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('deregister as an oracle') and immediately names the outcome (stake returned from escrow, less slashed amounts). It is clearly the inverse of the sibling oracle_register, though it never names that sibling explicitly, so differentiation is inferred rather than stated.

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

Usage Guidelines4/5

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

Gives a concrete precondition: it fails while you have pending assessments, which functions as an explicit when-not-to-use signal and points the agent at oracle_assignments/oracle_assess as a prerequisite check. No alternative tool is named for the failure case, so it stops short of a full when/when-not/alternatives treatment.

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

oracle_registerAInspect

Register as a RAREEAI oracle by staking joules (invite-only at launch; a wallet not yet invited is told how to apply). Body: wallet_id, specialisations (1–7 from a fixed list) and stake_amount. The stake is returned when you deregister.

NameRequiredDescriptionDefault
bodyYesThe registration; each field is described in its schema.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare the write, non-idempotent, non-destructive profile, so the description's job is added context — and it delivers the two facts annotations can't: the call is gated by an invite, and the stake is recoverable on deregister. It doesn't state whether a successful registration is immediately active or whether specialisations can later be changed, which keeps it below a 5.

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

Conciseness5/5

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

The core action and its stake mechanism come first, eligibility caveat second, body shape third, refund note last — every sentence adds something and nothing is repeated for filler.

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

Completeness4/5

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

For a state-changing registration with full annotations, complete schema coverage and an output schema, the description covers what matters: cost, gate, refund path and payload. Remaining gaps (post-registration state, whether specialisations are mutable) are minor for a tool whose return value is separately documented.

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

Parameters3/5

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

Schema description coverage is 100%, so wallet_id, stake_amount (with its 10,000 minimum and refundability) and the specialisations enum list are already fully documented. The description restates the same facts ("1–7 from a fixed list", "stake is returned") rather than adding syntax or constraints beyond the schema, so baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ("Register as a ... oracle") plus the mechanism (staking joules), which distinguishes it from oracle_deregister and the read-only oracle_* siblings. It stops short of naming a sibling explicitly, but the registration/stake framing is unambiguous.

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

Usage Guidelines4/5

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

Gives a real prerequisite rather than generic advice: invite-only at launch and uninvited wallets are told how to apply, which tells an agent what to expect and when this call will fail. It does not contrast this with alternatives such as oracle_assignments or oracle_deregister beyond implying the deregistration counterpart.

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

place_indexA
Read-only
Inspect

What exists at a place, and when: dated stills, source quotes and measurements within radius_km of lat/lng or of an entity's site, newest first. Each row carries valid_on (world time) and recorded_at (our time). Filter by dates and kinds; paged. Metered: see CHARGING in the server instructions; quote first with billing_quote.

NameRequiredDescriptionDefault
idNoThe entity's numeric id (with entity_type).
latNoLatitude in decimal degrees, -90 to 90 (WGS84). With lng; or name an entity.
lngNoLongitude in decimal degrees, -180 to 180 (WGS84).
kindsNoComma list of row kinds: still, quote, verdict, match, measurement.
limitNoMaximum rows to return. 1-500. Default 100.
fieldsNoOnly these keys in each row (plus id). Omit for all.
offsetNoRows to skip, for paging. Default 0.
to_dateNoOnly rows valid on or before this date, YYYY-MM-DD.
from_dateNoOnly rows valid on or after this date, YYYY-MM-DD.
radius_kmNoRadius in km, up to 50. Default 2.
entity_typeNoEntity kind: deposit | infrastructure | company | project. With id, centres on that entity's site.
entity_typesNoComma list of entity kinds to include (deposit, infrastructure, company, project).

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnly/non-destructive/closed-world, so the safety profile is covered. The description adds genuinely new behavior: newest-first ordering, offset/limit paging, metered charging governed by server instructions, and the presence of both valid_on (world time) and recorded_at (our time) per row. It stops short of describing cost magnitude or error/empty-result behavior.

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

Conciseness5/5

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

Two sentences, densely packed but zero waste: content, anchor mode, ordering, row timestamps, filters, paging and metering each get a clause and the core purpose is front-loaded.

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

Completeness4/5

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

For a 12-parameter, zero-required tool with a full output schema and complete annotations, the description covers the dual anchoring modes, ordering, paging, metering workflow and temporal semantics. Remaining specifics (radius default and cap, per-kind enum values) live in the schema, so nothing critical is missing, though the ambiguity of passing neither coordinates nor entity could have been addressed.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The description does add value by explaining that the spatial anchor is either lat/lng or an entity's site (id + entity_type), which is a relationship the schema documents only piecemeal, and it clarifies date filtering semantics. But it adds no detail on kinds, fields projection, or limit/offset beyond what the schema already says.

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

Purpose4/5

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

The description states a concrete resource and scope: dated stills, quotes and measurements within a radius of a lat/lng or an entity's site, returned newest first. That is specific enough to distinguish it from generic listing tools, but it never names a sibling (e.g. nearby, signals, look_at), so the boundary is left to inference.

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

Usage Guidelines4/5

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

It gives clear operating context: filter by dates and kinds, results are paged, and the call is metered so the agent must quote first with `billing_quote`. That is a real prerequisite that changes how the tool is invoked. It does not, however, say when to prefer a sibling such as `nearby` or `map_viewport` instead.

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

receipts_meA
Read-only
Inspect

Receipts for your key: whether THIS key is opted in to a receipt with each paid graph answer, and how its owner turns them on. Free.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
callerNo
agent_idNo
receipt_offerNo
what_a_receipt_isNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so safety is covered. The description adds useful context by stating the tool is 'Free' and that it reports on 'THIS key' and its owner, going beyond what the annotations provide.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that conveys the core purpose, scope, and cost without any wasted words.

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

Completeness4/5

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

With an output schema present and no input parameters, the description supplies enough context for an agent to understand what the tool returns and when it is useful. Minor gaps remain around whether 'how its owner turns them on' is returned as instructions or just described.

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

Parameters4/5

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

The tool has zero parameters, so the baseline is 4. The empty schema fully covers inputs, and no parameter semantics are needed beyond what is already structured.

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

Purpose4/5

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

The description clearly states that the tool returns receipt opt-in status for the caller's key and explains how the owner can enable receipts. It is specific about the resource (receipts) and scope (THIS key), though it does not explicitly name sibling tools or use a strong verb like 'check' or 'get'.

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

Usage Guidelines3/5

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

The description implies usage for checking whether the current key is opted into receipts and finding out how to enable them. However, it does not explicitly say when to use this tool versus alternatives like contribute_receipts or transparency_latest, nor does it provide when-not-to-use guidance.

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

relationshipsA
Read-only
Inspect

Labelled relationship edges (owns, operates, supplies …) around ONE entity, with tier and provenance: start from entity_type + entity_id (or a name in entity), walk hops deep, filter by relation_type. as_of answers for a past date. An ambiguous name fails uncharged and lists the candidates. Metered: see CHARGING in the server instructions; quote first with billing_quote.

NameRequiredDescriptionDefault
hopsNoTraversal depth, 1-10 (agent keys). Default 1. The billing unit: priced per hop.
as_ofNoAnswer for a past date: YYYY-MM-DD or a UTC datetime.
limitNoMaximum edges to return, up to 100. Default 50.
entityNoStart entity by NAME: an exact (case-insensitive) match, else a name that contains it.
fieldsNoOnly these keys in each row (plus id). Omit for all.
offsetNoRows to skip, for paging. Default 0.
searchNoFree-text filter over edge text.
entity_idNoThe start entity's numeric id (with entity_type) — the unambiguous way to name it.
entity_typeNoEntity kind: deposit | infrastructure | company | project. Pins the start node with entity_id.
relation_typeNoOnly edges with this relation label, e.g. OPERATES, CONTAINS, MEMBER_OF.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

Annotations already cover read-only and closed-world safety; the description adds genuinely non-obvious behavior: the call is metered and priced per hop, and an ambiguous name fails without charge and returns candidate names. It does not quantify cost, rate limits, or default result size, but the core behavioral risks are disclosed.

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

Conciseness4/5

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

Three tight sentences that front-load the resource and its one-entity scope before traversal mechanics and billing. No filler, though the 'Metered: see CHARGING' pointer is somewhat compressed and depends on external server instructions.

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

Completeness5/5

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

For a 10-parameter read tool with an output schema, full schema descriptions, and annotations, the description covers everything an agent needs: how to anchor the traversal, how deep, how to filter, historical queries, ambiguity handling, and the billing precondition.

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

Parameters3/5

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

Schema coverage is 100%, and the description largely restates what the schema documents (hops as traversal depth, as_of as a past date, relation_type as an edge label filter). Its only marginal addition is framing entity_id as the unambiguous identifier versus name lookup, which the schema already hints at.

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

Purpose4/5

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

States a concrete resource (labelled relationship edges: owns, operates, supplies) and a clear scope constraint ('around ONE entity'), which separates it from broad lookups like nearby or company_search. It does not name a specific sibling tool it is the alternative to, so it stops 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.

Usage Guidelines4/5

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

Gives an explicit entry recipe (start from entity_type + entity_id, or a name in `entity`), options for depth and relation filtering, and a concrete workflow rule: quote first with `billing_quote` before spending. It never states when NOT to use it versus entity_state, entity_history, or look_through, so no exclusion guidance.

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

signalsA
Read-only
Inspect

The live signal cards: compiled, provenance-carrying observations (lead_lag, network, signature) with severity and the entities they name. Cards appear only while their type is armed; an answer with no cards costs nothing. Observations, not advice. Agent keys only. Metered: see CHARGING in the server instructions; quote first with billing_quote.

NameRequiredDescriptionDefault
kindNoOne signal family: lead_lag | network | signature. Default all three.
limitNoCards per answer, 1-50. Default 20.
countryNoTwo-letter ISO country code (e.g. DE); cards about entities in that country.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior5/5

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

Annotations already declare this a read-only, non-destructive, closed-world read, and the description still adds substantive behavior: the tool is metered, pricing is governed by CHARGING in server instructions, billing_quote should be called first, empty results are free, and results are gated on armed card types. It also sets expectations that output is observational, not advisory. These are exactly the cost, auth, and gating facts annotations cannot convey.

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

Conciseness5/5

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

Five short sentences, front-loaded with the identity and payload, followed by gating semantics, then cost and the billing_quote pointer. Nothing repeats the schema or annotations, and the telegraphic style ('Observations, not advice. Agent keys only.') is efficient rather than vague.

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

Completeness4/5

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

With an output schema present, return format need not be described, and the description covers payload identity, cost behavior, auth, and gating. The remaining gap is the arming concept: it never says how a card type becomes armed or how to check arm state before paying for a possibly empty call. For a metered tool that gap matters, though the billing_quote pointer partially mitigates it.

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

Parameters3/5

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

Schema description coverage is 100%, with kind, limit, and country all documented in the schema, so the baseline is 3. The description reinforces the family names and the 'entities they name' notion that underlies the country filter, but adds no format or interaction detail beyond that. It does not explain whether kind and country combine or how arming interacts with kind selection.

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

Purpose4/5

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

The description says exactly what the tool returns: live signal cards, described as compiled, provenance-carrying observations with severity and named entities, and it enumerates the three families (lead_lag, network, signature). That is a specific resource statement rather than a restatement of the name. It stops short of contrasting itself against nearby siblings such as oracle_assess or transparency_latest, so an agent must infer which is the right read surface.

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

Usage Guidelines4/5

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

It states real preconditions: cards appear only while their type is armed, an empty answer costs nothing, agent keys are required, and the caller should quote first with billing_quote. That is clear context for when to call it and in what order. It gives no explicit exclusions or named alternatives among the many siblings, so the negative case is left implicit.

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

site_reconstructionA
Read-only
Inspect

A dated, georeferenced 3D model of a site (entity_type + id, or lat + lng) with measurements: extent, elevation, slope, pits and heaps with volumes. The tier (lidar_2m or dem_30m) is decided before any charge. Slow (about 15–60 s). Agent keys only. Metered: see CHARGING in the server instructions; quote first with billing_quote.

NameRequiredDescriptionDefault
idNoThe entity's numeric id (with entity_type).
latNoLatitude in decimal degrees, -90 to 90 (WGS84).
lngNoLongitude in decimal degrees, -180 to 180 (WGS84).
as_ofNoPick the lidar collection and texture nearest this date, YYYY-MM-DD.
radius_mNoHalf the square's side, in metres, 100-1000. Default 300.
entity_typeNoEntity kind: deposit | infrastructure | company | project. With id; or pass lat + lng.
include_modelNoAlso return the binary glTF model as model_glb_base64 (a lidar model is about 5 MB as base64).

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior5/5

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

Annotations already declare readOnly/openWorld/non-destructive, and the description layers on the details an agent actually needs: metered billing via server CHARGING, a quote-before-charge step, the pre-charge tier decision (lidar_2m vs dem_30m), agent-key auth requirement, and a 15–60 s latency warning. This is exactly the extra behavioral context annotations cannot carry.

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

Conciseness4/5

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

Front-loads the deliverable, then terse clauses on tier, latency, auth, and billing, with the quote-first routing at the end. Dense and largely waste-free, though the telegraphic style ('Agent keys only') is slightly compressed versus plain prose.

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

Completeness4/5

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

For a metered, slow, open-world read tool with a full schema and an output schema, the description covers cost, latency, auth, tier behavior, and both input modes. Error semantics and partial-failure behavior for the binary model are not addressed, which is the only remaining gap.

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

Parameters3/5

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

Schema coverage is 100% and every parameter including include_model's ~5 MB base64 note is already documented in the schema, so baseline 3 applies. The description only restates the two addressing modes and the tier names; it adds no format or default detail beyond the schema.

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

Purpose4/5

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

States a concrete resource and modality: a dated, georeferenced 3D site model with terrain measurements (extent, elevation, slope, pits, heaps with volumes). The input-mode disjunction (entity_type + id, or lat + lng) further pins down what it produces. It does not name a sibling such as look_at or deposit_brief to differentiate, so it stops 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.

Usage Guidelines4/5

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

Gives explicit operational guidance: quote first with `billing_quote`, tier is decided before any charge, agent keys only, expect 15–60 s. It never states when-not to use it or names the sibling that handles a nearby need, so no true alternatives routing.

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

tool_guideA
Read-only
Inspect

The full guide for one tool, free and not metered: its complete description (edge cases, every rule, examples), every parameter's full description and the fields it returns. Each tool's listed description is its short contract; read this when you need the rest.

NameRequiredDescriptionDefault
toolYesA tool name from tools/list, e.g. relationships.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

Beyond the readOnly/destructive/openWorld annotations, the description adds that the call is 'free and not metered', which matters for an agent deciding whether to spend a call on documentation. It also discloses the shape of the response (description, per-parameter text, return fields). No contradictions 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.

Conciseness4/5

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

Two sentences, front-loaded with the payoff (what you get) and closed with the decision rule (short contract vs. the rest). The 'free and not metered' aside earns its place as a cost signal, and there is no filler.

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

Completeness4/5

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

An output schema exists, so return values need not be spelled out, yet the description still summarizes them at a useful level. For a one-parameter read-only documentation tool, nothing an agent needs in order to call it correctly is missing.

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

Parameters3/5

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

There is a single required parameter with 100% schema description coverage ('A tool name from tools/list, e.g. relationships'). The description adds no further constraint on the argument, such as whether unknown names error or how names outside tools/list are handled, so it does not go beyond the schema.

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

Purpose4/5

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

The description states a specific verb+resource: it returns the full guide for one named tool, enumerating what that guide contains (complete description with edge cases and examples, full parameter descriptions, returned fields). It is unmistakably a documentation-lookup tool rather than a domain tool, though it never explicitly contrasts itself with the sibling tools it documents.

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

Usage Guidelines4/5

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

It gives a clear trigger: the listed description of each tool is only its 'short contract', so read this 'when you need the rest'. That tells the agent when to escalate from the tool list to this tool. It stops short of saying when it is unnecessary (e.g. simple calls that the short contract already covers).

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

trade_settlementA
Read-only
Inspect

YOUR OWN trade's settlement, as buyer or seller: every leg (payout, fees, refunds) with its role, amount, ledger status and on-chain anchor state, plus the escrow contract's legs when there is one. A 404 means you were not a party.

NameRequiredDescriptionDefault
match_idYesThe marketplace match id (UUID). You must have been its buyer or seller.

Output Schema

NameRequiredDescription
legsNo
disputeNo
settledNo
contractNo
match_idNo
leg_countNo
your_roleNo
all_anchoredNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds real behavioral value beyond that: the shape of the returned legs and, importantly, the 404 semantics for non-parties, which an agent needs to interpret errors. It is silent on rate limits or any auth-policy nuance, so not a 5.

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

Conciseness5/5

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

Two sentences, zero waste. The scope/ownership constraint is front-loaded with emphasis, the payload is enumerated compactly, and the 404 note is placed last where it belongs.

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

Completeness5/5

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

The tool is simple (one required param) and has an output schema, so return-format explanation is not required — yet the description still summarizes the leg structure and covers the notable failure case. An agent has everything it needs to call this correctly.

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

Parameters3/5

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

There is only one parameter and schema description coverage is 100% — the schema already explains that match_id is the marketplace match UUID and that you must have been its buyer or seller. The description reinforces the buyer/seller authorization condition but adds no format, syntax or edge-case detail beyond the schema, so the baseline 3 applies.

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

Purpose5/5

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

The description names the exact resource (your own trade's settlement, as buyer or seller) and enumerates its contents: every leg — payout, fees, refunds — with role, amount, ledger status and on-chain anchor state, plus escrow legs. This is far more specific than the sibling tools (ledger_verify, balance_proof, receipts_me) and lets an agent distinguish 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.

Usage Guidelines4/5

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

It gives clear preconditions — you must be the match's buyer or seller, and a 404 means you were not a party — plus the implied context of inspecting settlement after a match. It does not name an alternative tool or state when NOT to use it (e.g., when to prefer ledger_verify or balance_proof), so it stops short of a 5.

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

transparency_latestA
Read-only
Inspect

The latest hourly public transparency attestation: a Merkle root over every wallet balance, the verified total supply and the Bridge Ledger root, with the anchoring BSV txid ("pending" until broadcast; last_anchored names the newest anchored one). No auth.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
feesNo
volumeNo
bsv_txidNo
tx_countNo
anchoringNo
timestampNo
state_rootNo
bridge_rootNo
bridge_rowsNo
merkle_rootNo
total_supplyNo
wallet_countNo
last_anchoredNo
settlement_rootNo
supply_verifiedNo
algorithm_versionNo
settlement_leavesNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds useful behavioral context beyond annotations: hourly cadence, public and no-auth access, 'pending' semantics for the BSV txid, and the meaning of last_anchored.

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

Conciseness4/5

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

The description is a single, densely packed sentence that front-loads the core resource. It earns its place, though the nested parentheticals make it slightly harder to scan than ideal.

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

Completeness5/5

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

For a no-parameter, read-only status tool with an output schema, the description is complete. It explains what the attestation contains, the pending/anchored txid semantics, update cadence, and auth requirements, leaving no important behavioral gap for an agent.

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

Parameters4/5

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

This tool has zero parameters, so there are no parameter semantics to explain. The baseline score of 4 applies because the description does not need to compensate for any schema gaps.

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

Purpose4/5

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

The description states a specific resource and freshness: the latest hourly public transparency attestation, including Merkle root, total supply, Bridge Ledger root, and anchoring txid. It does not explicitly differentiate itself from sibling proof tools such as balance_proof, bridge_proof, or verify_proof, so a 4 rather than a 5.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to use this tool versus alternatives like balance_proof or verify_proof. The phrase 'latest hourly' implies retrieving current attestation data, and 'No auth' adds access context, but neither constitutes usage guidance.

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

verify_proofA
Read-only
Inspect

Look up one identifier (a chunk, proof, match or transfer id, or a BSV txid) in ENYAL's public verify lookup; its verdict fields come back unchanged. Only chain_confirmed:true is a verified anchor; degraded:true means inconclusive, not absent. No auth.

NameRequiredDescriptionDefault
identifierYesThe id to look up: a chunk_id, proof_id, match_id or transfer id (UUID), or a BSV transaction id (64 hex).

Output Schema

NameRequiredDescription
noteNo
countNo
foundNo
resultsNo
degradedNo
recordedNo
identifierNo
chain_statusNo
chain_confirmedNo
unavailable_sourcesNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and non-destructive behavior, and the description adds useful context beyond them: it says the lookup is public with no auth and that verdict fields come back unchanged. It also clarifies the meaning of chain_confirmed and degraded, which is important for correct interpretation.

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

Conciseness5/5

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

The description is two dense sentences with no filler. The lookup scope is front-loaded, followed by the key interpretation rules and the no-auth note, so every clause earns its place.

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

Completeness4/5

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

The tool is simple, has one fully documented parameter, and has an output schema, so the description need not explain return values. It covers the critical semantic caveats (chain_confirmed vs degraded) and the no-auth behavior, leaving only minor details unstated.

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

Parameters3/5

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

The schema has 100% description coverage for the single identifier parameter, including the accepted ID formats. The description repeats those identifier types but does not add syntax or format details beyond what the schema already provides, so baseline 3 applies.

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

Purpose4/5

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

States a specific verb (look up) and resource (ENYAL's public verify lookup) and enumerates the identifier types it accepts. It is clear what the tool does, though it does not explicitly differentiate itself from sibling proof tools such as balance_proof or bridge_proof.

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

Usage Guidelines3/5

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

The description implies the tool is for checking the verification status of an identifier, and explains how to interpret verdict fields. However, it gives no explicit when-to-use guidance or points to alternative sibling tools for related proof or ledger verification tasks.

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

wallet_transferA
Destructive
Inspect

A direct wallet-to-wallet transfer (wallet:transfer scope). An agent wallet may send only to a registered destination; limits are live config, not constants. Typed body: from_wallet_id, to_wallet_id or to_handle, amount and options. A transfer fee is charged to the sender. privacy_mode: only 'transparent' (or omit it) — the other modes are temporarily unavailable and refused.

NameRequiredDescriptionDefault
bodyYesThe transfer; each field is described in its schema.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare destructive=true and readOnly=false, and the description adds real substance beyond them: a fee is charged on top of the amount, limits are dynamic config, destinations must be pre-registered, and non-transparent privacy_mode values are refused at call time. It omits irreversibility of a sent transfer, which would be the one remaining high-value disclosure for 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.

Conciseness4/5

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

Four short sentences, scope and precondition front-loaded, no filler. The privacy_mode sentence is somewhat long and could be trimmed now that the schema field carries the same constraint.

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

Completeness4/5

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

An output schema exists, so return values needn't be described, and the parameter schema is fully covered. The description supplies the operational constraints an agent must know before calling. The absence of any note on failure modes or irreversibility is the main residual gap.

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

Parameters3/5

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

Schema description coverage is 100%, so every field including idempotency_key and registration_id is already documented in the schema. The description adds only a summary enumeration of fields and the fee-on-top note, which the amount field also states. Baseline 3 for a fully documented schema.

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

Purpose4/5

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

Opens with a specific verb+resource and scope qualifier ('direct wallet-to-wallet transfer (wallet:transfer scope)'), which separates it from funding-style siblings like deposit. It stops short of naming an alternative sibling, so the differentiation is implicit rather than explicit.

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

Usage Guidelines4/5

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

Gives concrete preconditions: the sender wallet must be the caller's, an agent wallet may only send to a registered destination, and limits are live config rather than constants. It never explicitly routes the agent to an alternative tool (e.g., deposit for external funding), so it lands at clear-context-without-exclusions.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Changedwallet_transfer2 fields changed
      • removedInput schema / $defs / TransferBody / properties / include_proof
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "boolean"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "description": "also return the transfer's proof in the response"
        -}
      • changedInput schema / $defs / TransferBody / properties / privacy_mode / description
        Previous value: -"the transfer's privacy mode, per the JoulePAI docs"New value: +"only 'transparent' is accepted for now (or omit it): 'confidential', 'private' and 'stark_wrapped' are …"
  2. 3 tool updates
    • Changedentity_change1 field changed
      • addedInput schema / properties / start
        Added value: +{
        +  "default": false,
        +  "description": "true: answer at once with a job_id (the same reservation, settled when the measurement is done)",
        +  "type": "boolean"
        +}
    • Addedjob_status
    • Changedtool_guide1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "type": "object"
        +}
  3. 49 tool updates
    • Changedbalance_proof2 fields changed
      • removedInput schema / title
        Removed value: -"balance_proofArguments"
      • removedOutput schema / title
        Removed value: -"balance_proofDictOutput"
    • Changedbilling_attempts17 fields changed
      • removedInput schema / properties / limit / default
        Removed value: -null
      • removedInput schema / properties / limit / title
        Removed value: -"Limit"
      • removedInput schema / properties / offset / default
        Removed value: -null
      • removedInput schema / properties / offset / title
        Removed value: -"Offset"
      • removedInput schema / title
        Removed value: -"billing_attemptsArguments"
      • removedOutput schema / description
        Removed value: -"billing_attempts — the caller's own charge record (GET /api/v1/billing/attempts): items[] of\n{attempt_id, when, settled_at, endpoint, query_type, status, reserved_joules, settled_joules,\nsettled_all_in_joules, idempotency_key, transfer_id, detail} + count + wallet_id + a statuses legend.\nItems stay opaque (list[Any]) so a backend field this relay does not model passes through verbatim."
      • removedOutput schema / properties / count / default
        Removed value: -null
      • removedOutput schema / properties / count / title
        Removed value: -"Count"
      • removedOutput schema / properties / items / default
        Removed value: -null
      • removedOutput schema / properties / items / title
        Removed value: -"Items"
      • removedOutput schema / properties / note / default
        Removed value: -null
      • removedOutput schema / properties / note / title
        Removed value: -"Note"
      • removedOutput schema / properties / statuses / default
        Removed value: -null
      • removedOutput schema / properties / statuses / title
        Removed value: -"Statuses"
      • removedOutput schema / properties / wallet_id / default
        Removed value: -null
      • removedOutput schema / properties / wallet_id / title
        Removed value: -"Wallet Id"
      • removedOutput schema / title
        Removed value: -"AttemptsOut"
    • Changedbilling_quote68 fields changed
      • removedInput schema / properties / as_of / default
        Removed value: -null
      • removedInput schema / properties / as_of / title
        Removed value: -"As Of"
      • removedInput schema / properties / entity_type / default
        Removed value: -null
      • removedInput schema / properties / entity_type / title
        Removed value: -"Entity Type"
      • removedInput schema / properties / hops / default
        Removed value: -null
      • removedInput schema / properties / hops / title
        Removed value: -"Hops"
      • removedInput schema / properties / id / default
        Removed value: -null
      • removedInput schema / properties / id / title
        Removed value: -"Id"
      • removedInput schema / properties / lat / default
        Removed value: -null
      • changedInput schema / properties / lat / description
        Previous value: -"Latitude in decimal degrees, -90 to 90 (WGS84). For site.reconstruction: the site, so the quote names its tier."New value: +"Latitude in decimal degrees, -90 to 90 (WGS84)."
      • removedInput schema / properties / lat / title
        Removed value: -"Lat"
      • removedInput schema / properties / lng / default
        Removed value: -null
      • removedInput schema / properties / lng / title
        Removed value: -"Lng"
      • changedInput schema / properties / path / description
        Previous value: -"The API path the call would hit, e.g. \"/api/v1/relationships\", \"/api/v1/look.from\", \"/api/v1/companies/{id}\", \"/api/v1/companies\", \"/api/v1/deposits\", \"/api/v1/site.reconstruction\"."New value: +"The API path the call would hit, e.g. \"/api/v1/relationships\", \"/api/v1/look.from\", \"/api/v1/companies/{id}\" …"
      • removedInput schema / properties / path / title
        Removed value: -"Path"
      • removedInput schema / properties / radius_m / default
        Removed value: -null
      • removedInput schema / properties / radius_m / title
        Removed value: -"Radius M"
      • removedInput schema / title
        Removed value: -"billing_quoteArguments"
      • removedOutput schema / description
        Removed value: -"billing_quote — covers BOTH backend shapes (pricing_model 'per_hop' carries billed_hops /\nrate_per_hop / refund_on_empty / quote_is_maximum; 'flat_query_type' omits them). All optional,\nso neither shape errors."
      • removedOutput schema / properties / billed_hops / default
        Removed value: -null
      • removedOutput schema / properties / billed_hops / title
        Removed value: -"Billed Hops"
      • removedOutput schema / properties / hops / default
        Removed value: -null
      • removedOutput schema / properties / hops / title
        Removed value: -"Hops"
      • removedOutput schema / properties / joules / default
        Removed value: -null
      • removedOutput schema / properties / joules / description
        Removed value: -"BASE price, before the rail surcharge"
      • removedOutput schema / properties / joules / title
        Removed value: -"Joules"
      • removedOutput schema / properties / joules_all_in / default
        Removed value: -null
      • removedOutput schema / properties / joules_all_in / description
        Removed value: -"THE TRUE DEBIT — fund this, not `joules`"
      • removedOutput schema / properties / joules_all_in / title
        Removed value: -"Joules All In"
      • removedOutput schema / properties / joules_with_receipt / default
        Removed value: -null
      • removedOutput schema / properties / joules_with_receipt / description
        Removed value: -"an opted-in key: base + the receipt's price"
      • removedOutput schema / properties / joules_with_receipt / title
        Removed value: -"Joules With Receipt"
      • removedOutput schema / properties / joules_with_receipt_all_in / default
        Removed value: -null
      • removedOutput schema / properties / joules_with_receipt_all_in / description
        Removed value: -"an opted-in key: the true debit with the receipt"
      • removedOutput schema / properties / joules_with_receipt_all_in / title
        Removed value: -"Joules With Receipt All In"
      • removedOutput schema / properties / partial_refund_note / default
        Removed value: -null
      • removedOutput schema / properties / partial_refund_note / title
        Removed value: -"Partial Refund Note"
      • removedOutput schema / properties / path / default
        Removed value: -null
      • removedOutput schema / properties / path / title
        Removed value: -"Path"
      • removedOutput schema / properties / peg / default
        Removed value: -null
      • removedOutput schema / properties / peg / title
        Removed value: -"Peg"
      • removedOutput schema / properties / pricing_model / default
        Removed value: -null
      • removedOutput schema / properties / pricing_model / title
        Removed value: -"Pricing Model"
      • removedOutput schema / properties / pricing_tier / default
        Removed value: -null
      • removedOutput schema / properties / pricing_tier / title
        Removed value: -"Pricing Tier"
      • removedOutput schema / properties / query_type / default
        Removed value: -null
      • removedOutput schema / properties / query_type / title
        Removed value: -"Query Type"
      • removedOutput schema / properties / quote_is_maximum / default
        Removed value: -null
      • removedOutput schema / properties / quote_is_maximum / title
        Removed value: -"Quote Is Maximum"
      • removedOutput schema / properties / rail_fee_joules / default
        Removed value: -null
      • removedOutput schema / properties / rail_fee_joules / description
        Removed value: -"the ~0.5% rail surcharge, rounded up"
      • removedOutput schema / properties / rail_fee_joules / title
        Removed value: -"Rail Fee Joules"
      • removedOutput schema / properties / rate_per_hop / default
        Removed value: -null
      • removedOutput schema / properties / rate_per_hop / title
        Removed value: -"Rate Per Hop"
      • removedOutput schema / properties / receipt / default
        Removed value: -null
      • removedOutput schema / properties / receipt / description
        Removed value: -"an opted-in key only: the receipt line that WILL be charged with the answer"
      • removedOutput schema / properties / receipt / title
        Removed value: -"Receipt"
      • removedOutput schema / properties / receipt_offer / default
        Removed value: -null
      • removedOutput schema / properties / receipt_offer / description
        Removed value: -"graph quotes: the RECEIPT offer — joules_per_receipt (10), this_key_opted_in, how_to_opt_in (the key OWNER turns it on), what_you_get. See receipts_me."
      • removedOutput schema / properties / receipt_offer / title
        Removed value: -"Receipt Offer"
      • removedOutput schema / properties / refund_on_empty / default
        Removed value: -null
      • removedOutput schema / properties / refund_on_empty / title
        Removed value: -"Refund On Empty"
      • removedOutput schema / properties / tier / default
        Removed value: -null
      • removedOutput schema / properties / tier / description
        Removed value: -"site.reconstruction: the model tier this site gets (lidar_2m | dem_30m), decided before any charge"
      • removedOutput schema / properties / tier / title
        Removed value: -"Tier"
      • removedOutput schema / properties / usd / default
        Removed value: -null
      • removedOutput schema / properties / usd / title
        Removed value: -"Usd"
      • removedOutput schema / title
        Removed value: -"QuoteOut"
    • Changedbridge_proof2 fields changed
      • removedInput schema / title
        Removed value: -"bridge_proofArguments"
      • removedOutput schema / title
        Removed value: -"bridge_proofDictOutput"
    • Changedcompany4 fields changed
      • changedInput schema / properties / id / description
        Previous value: -"The GreenlandAI company id: a whole number (known_companies.id, e.g. \"4334\"). Get it from `company_search` (by name), a `look_from` / `nearby` pin, a `relationships` row, or a deposit's `operators[]`. A merged-away id answers with the company it was merged into and says so in `merged`."New value: +"The GreenlandAI company id: a whole number (known_companies.id, e.g. \"4334\")."
      • removedInput schema / properties / id / title
        Removed value: -"Id"
      • removedInput schema / title
        Removed value: -"companyArguments"
      • removedOutput schema / title
        Removed value: -"companyDictOutput"
    • Addedcompany_profile
    • Changedcompany_search11 fields changed
      • removedInput schema / properties / country / default
        Removed value: -null
      • removedInput schema / properties / country / title
        Removed value: -"Country"
      • addedInput schema / properties / fields
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Only these keys in each row (plus id). Omit for all."
        +}
      • removedInput schema / properties / limit / title
        Removed value: -"Limit"
      • removedInput schema / properties / offset / title
        Removed value: -"Offset"
      • removedInput schema / properties / search / default
        Removed value: -null
      • removedInput schema / properties / search / title
        Removed value: -"Search"
      • removedInput schema / properties / sector / default
        Removed value: -null
      • removedInput schema / properties / sector / title
        Removed value: -"Sector"
      • removedInput schema / title
        Removed value: -"company_searchArguments"
      • removedOutput schema / title
        Removed value: -"company_searchDictOutput"
    • Changedcontribute_receipts4 fields changed
      • removedInput schema / properties / limit / title
        Removed value: -"Limit"
      • removedInput schema / properties / offset / title
        Removed value: -"Offset"
      • removedInput schema / title
        Removed value: -"contribute_receiptsArguments"
      • removedOutput schema / title
        Removed value: -"contribute_receiptsDictOutput"
    • Changedcontribute_relations6 fields changed
      • removedInput schema / properties / entities / default
        Removed value: -null
      • removedInput schema / properties / entities / title
        Removed value: -"Entities"
      • changedInput schema / properties / relations / description
        Previous value: -"The relationships to submit. Each item: subject, relation, object, source_url (a real http(s) page), quote (a verbatim passage of 15+ characters from that page stating it); optional subject_type, object_type."New value: +"The relationships to submit."
      • removedInput schema / properties / relations / title
        Removed value: -"Relations"
      • removedInput schema / title
        Removed value: -"contribute_relationsArguments"
      • removedOutput schema / title
        Removed value: -"contribute_relationsDictOutput"
    • Changedcontribute_stats2 fields changed
      • removedInput schema / title
        Removed value: -"contribute_statsArguments"
      • removedOutput schema / title
        Removed value: -"contribute_statsDictOutput"
    • Changedcontribute_submissions4 fields changed
      • removedInput schema / properties / limit / title
        Removed value: -"Limit"
      • removedInput schema / properties / offset / title
        Removed value: -"Offset"
      • removedInput schema / title
        Removed value: -"contribute_submissionsArguments"
      • removedOutput schema / title
        Removed value: -"contribute_submissionsDictOutput"
    • Changeddeposit3 fields changed
      • removedInput schema / properties / id / title
        Removed value: -"Id"
      • removedInput schema / title
        Removed value: -"depositArguments"
      • removedOutput schema / title
        Removed value: -"depositDictOutput"
    • Addeddeposit_brief
    • Changeddeposits20 fields changed
      • removedInput schema / properties / commodity / default
        Removed value: -null
      • changedInput schema / properties / commodity / description
        Previous value: -"A commodity name, e.g. \"neodymium\". Filters by the commodity GRAPH: matches deposits that contain it directly or contain a group it belongs to (so neodymium returns every rare-earth deposit)."New value: +"A commodity name, e.g. \"neodymium\"."
      • removedInput schema / properties / commodity / title
        Removed value: -"Commodity"
      • removedInput schema / properties / country / default
        Removed value: -null
      • removedInput schema / properties / country / title
        Removed value: -"Country"
      • addedInput schema / properties / fields
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Only these keys in each row (plus id). Omit for all."
        +}
      • removedInput schema / properties / limit / title
        Removed value: -"Limit"
      • removedInput schema / properties / max_port_km / default
        Removed value: -null
      • removedInput schema / properties / max_port_km / title
        Removed value: -"Max Port Km"
      • removedInput schema / properties / offset / title
        Removed value: -"Offset"
      • removedInput schema / properties / owner_country / default
        Removed value: -null
      • removedInput schema / properties / owner_country / title
        Removed value: -"Owner Country"
      • removedInput schema / properties / resource_type / default
        Removed value: -null
      • removedInput schema / properties / resource_type / title
        Removed value: -"Resource Type"
      • removedInput schema / properties / search / default
        Removed value: -null
      • removedInput schema / properties / search / title
        Removed value: -"Search"
      • removedInput schema / properties / status / default
        Removed value: -null
      • removedInput schema / properties / status / title
        Removed value: -"Status"
      • removedInput schema / title
        Removed value: -"depositsArguments"
      • removedOutput schema / title
        Removed value: -"depositsDictOutput"
    • Changedentity_change17 fields changed
      • removedInput schema / properties / entity_type / default
        Removed value: -null
      • removedInput schema / properties / entity_type / title
        Removed value: -"Entity Type"
      • removedInput schema / properties / id / default
        Removed value: -null
      • removedInput schema / properties / id / title
        Removed value: -"Id"
      • removedInput schema / properties / lat / default
        Removed value: -null
      • removedInput schema / properties / lat / title
        Removed value: -"Lat"
      • removedInput schema / properties / lng / default
        Removed value: -null
      • removedInput schema / properties / lng / title
        Removed value: -"Lng"
      • removedInput schema / properties / max_cloud / title
        Removed value: -"Max Cloud"
      • removedInput schema / properties / radius_m / default
        Removed value: -null
      • removedInput schema / properties / radius_m / title
        Removed value: -"Radius M"
      • removedInput schema / properties / same_season / title
        Removed value: -"Same Season"
      • removedInput schema / properties / t0 / title
        Removed value: -"T0"
      • removedInput schema / properties / t1 / default
        Removed value: -null
      • removedInput schema / properties / t1 / title
        Removed value: -"T1"
      • removedInput schema / title
        Removed value: -"entity_changeArguments"
      • removedOutput schema / title
        Removed value: -"entity_changeDictOutput"
    • Changedentity_history4 fields changed
      • removedInput schema / properties / entity_type / title
        Removed value: -"Entity Type"
      • removedInput schema / properties / id / title
        Removed value: -"Id"
      • removedInput schema / title
        Removed value: -"entity_historyArguments"
      • removedOutput schema / title
        Removed value: -"entity_historyDictOutput"
    • Changedentity_state8 fields changed
      • removedInput schema / properties / as_of / default
        Removed value: -null
      • removedInput schema / properties / as_of / title
        Removed value: -"As Of"
      • removedInput schema / properties / entity_type / title
        Removed value: -"Entity Type"
      • removedInput schema / properties / id / title
        Removed value: -"Id"
      • removedInput schema / properties / max_cloud / title
        Removed value: -"Max Cloud"
      • removedInput schema / properties / radius_km / title
        Removed value: -"Radius Km"
      • removedInput schema / title
        Removed value: -"entity_stateArguments"
      • removedOutput schema / title
        Removed value: -"entity_stateDictOutput"
    • Changedfunding_prepare14 fields changed
      • removedInput schema / properties / needed / title
        Removed value: -"Needed"
      • removedInput schema / title
        Removed value: -"funding_prepareArguments"
      • removedOutput schema / description
        Removed value: -"funding_prepare — relays deposit-address for live USDC availability + the caller's own address."
      • removedOutput schema / properties / in_band_agent_funding_live / default
        Removed value: -null
      • removedOutput schema / properties / in_band_agent_funding_live / title
        Removed value: -"In Band Agent Funding Live"
      • removedOutput schema / properties / needed / default
        Removed value: -null
      • removedOutput schema / properties / needed / title
        Removed value: -"Needed"
      • removedOutput schema / properties / note / default
        Removed value: -null
      • removedOutput schema / properties / note / title
        Removed value: -"Note"
      • removedOutput schema / properties / routes / default
        Removed value: -null
      • removedOutput schema / properties / routes / title
        Removed value: -"Routes"
      • removedOutput schema / properties / wallet_id / default
        Removed value: -null
      • removedOutput schema / properties / wallet_id / title
        Removed value: -"Wallet Id"
      • removedOutput schema / title
        Removed value: -"FundingPrepareOut"
    • Changedfunding_status17 fields changed
      • removedInput schema / title
        Removed value: -"funding_statusArguments"
      • removedOutput schema / description
        Removed value: -"deposit_status — relayed verbatim from GET /api/v1/wallet/deposit-status (extra fields pass through)."
      • removedOutput schema / properties / deposits / default
        Removed value: -null
      • removedOutput schema / properties / deposits / title
        Removed value: -"Deposits"
      • removedOutput schema / properties / held_below_min_total_usdc / default
        Removed value: -null
      • removedOutput schema / properties / held_below_min_total_usdc / title
        Removed value: -"Held Below Min Total Usdc"
      • removedOutput schema / properties / minimum_usdc / default
        Removed value: -null
      • removedOutput schema / properties / minimum_usdc / title
        Removed value: -"Minimum Usdc"
      • removedOutput schema / properties / needed_to_credit_usdc / default
        Removed value: -null
      • removedOutput schema / properties / needed_to_credit_usdc / title
        Removed value: -"Needed To Credit Usdc"
      • removedOutput schema / properties / note / default
        Removed value: -null
      • removedOutput schema / properties / note / title
        Removed value: -"Note"
      • removedOutput schema / properties / scanner_cursor_block / default
        Removed value: -null
      • removedOutput schema / properties / scanner_cursor_block / title
        Removed value: -"Scanner Cursor Block"
      • removedOutput schema / properties / usdc_live / default
        Removed value: -null
      • removedOutput schema / properties / usdc_live / title
        Removed value: -"Usdc Live"
      • removedOutput schema / title
        Removed value: -"DepositStatusOut"
    • Changedjoules_balance27 fields changed
      • removedInput schema / properties / wallet_id / default
        Removed value: -null
      • changedInput schema / properties / wallet_id / description
        Previous value: -"Wallet id (UUID) to read — needed for a JoulePAI (jlp_) or ENYAL (eyl_) credential; not needed with a GreenlandAI agent key (gai_/gqa_), which reads its own wallet."New value: +"Wallet id (UUID) to read"
      • removedInput schema / properties / wallet_id / title
        Removed value: -"Wallet Id"
      • removedInput schema / title
        Removed value: -"joules_balanceArguments"
      • removedOutput schema / description
        Removed value: -"joules_balance — the union of its two branches. GAI agent-key branch returns\n{agent_id, agent_name, wallet_id, balance_joules} (+ the `balance` shape-compat shim added by\nthis relay); the JoulePAI branch returns WalletOut, whose wallet id field is `id`, not\n`wallet_id`. Both are declared so either branch is structured. PII the JP branch may carry\n(email, bsv_address, signup_grant) is deliberately NOT declared — it still passes through as an\nextra, but it is not advertised in a schema that anonymous clients can enumerate."
      • removedOutput schema / properties / agent_id / default
        Removed value: -null
      • removedOutput schema / properties / agent_id / title
        Removed value: -"Agent Id"
      • removedOutput schema / properties / agent_name / default
        Removed value: -null
      • removedOutput schema / properties / agent_name / title
        Removed value: -"Agent Name"
      • removedOutput schema / properties / balance / default
        Removed value: -null
      • removedOutput schema / properties / balance / description
        Removed value: -"spendable joules; the field to act on"
      • removedOutput schema / properties / balance / title
        Removed value: -"Balance"
      • removedOutput schema / properties / balance_joules / default
        Removed value: -null
      • removedOutput schema / properties / balance_joules / description
        Removed value: -"GAI agent-branch name for the same figure"
      • removedOutput schema / properties / balance_joules / title
        Removed value: -"Balance Joules"
      • removedOutput schema / properties / handle / default
        Removed value: -null
      • removedOutput schema / properties / handle / title
        Removed value: -"Handle"
      • removedOutput schema / properties / id / default
        Removed value: -null
      • removedOutput schema / properties / id / description
        Removed value: -"JoulePAI branch returns the wallet id here"
      • removedOutput schema / properties / id / title
        Removed value: -"Id"
      • removedOutput schema / properties / owner_type / default
        Removed value: -null
      • removedOutput schema / properties / owner_type / title
        Removed value: -"Owner Type"
      • removedOutput schema / properties / verification_status / default
        Removed value: -null
      • removedOutput schema / properties / verification_status / title
        Removed value: -"Verification Status"
      • removedOutput schema / properties / wallet_id / default
        Removed value: -null
      • removedOutput schema / properties / wallet_id / title
        Removed value: -"Wallet Id"
      • removedOutput schema / title
        Removed value: -"BalanceOut"
    • Changedjoules_deficit16 fields changed
      • removedInput schema / properties / cost / title
        Removed value: -"Cost"
      • removedInput schema / properties / wallet_id / default
        Removed value: -null
      • removedInput schema / properties / wallet_id / title
        Removed value: -"Wallet Id"
      • removedInput schema / title
        Removed value: -"joules_deficitArguments"
      • removedOutput schema / description
        Removed value: -"joules_deficit — computed by this relay, not relayed."
      • removedOutput schema / properties / have / default
        Removed value: -null
      • removedOutput schema / properties / have / title
        Removed value: -"Have"
      • removedOutput schema / properties / needed / default
        Removed value: -null
      • removedOutput schema / properties / needed / title
        Removed value: -"Needed"
      • removedOutput schema / properties / shortfall / default
        Removed value: -null
      • removedOutput schema / properties / shortfall / description
        Removed value: -"0 means affordable now"
      • removedOutput schema / properties / shortfall / title
        Removed value: -"Shortfall"
      • removedOutput schema / properties / tool_to_call_next / default
        Removed value: -null
      • removedOutput schema / properties / tool_to_call_next / description
        Removed value: -"null when nothing is owed"
      • removedOutput schema / properties / tool_to_call_next / title
        Removed value: -"Tool To Call Next"
      • removedOutput schema / title
        Removed value: -"DeficitOut"
    • Changedledger_verify15 fields changed
      • removedInput schema / title
        Removed value: -"ledger_verifyArguments"
      • removedOutput schema / description
        Removed value: -"ledger_verify — public anchor list. `anchors` left opaque (per-anchor records)."
      • removedOutput schema / properties / anchors / default
        Removed value: -null
      • removedOutput schema / properties / anchors / title
        Removed value: -"Anchors"
      • removedOutput schema / properties / chain_semantics / default
        Removed value: -null
      • removedOutput schema / properties / chain_semantics / title
        Removed value: -"Chain Semantics"
      • removedOutput schema / properties / coverage / default
        Removed value: -null
      • removedOutput schema / properties / coverage / title
        Removed value: -"Coverage"
      • removedOutput schema / properties / eras / default
        Removed value: -null
      • removedOutput schema / properties / eras / title
        Removed value: -"Eras"
      • removedOutput schema / properties / hash_format / default
        Removed value: -null
      • removedOutput schema / properties / hash_format / title
        Removed value: -"Hash Format"
      • removedOutput schema / properties / total / default
        Removed value: -null
      • removedOutput schema / properties / total / title
        Removed value: -"Total"
      • removedOutput schema / title
        Removed value: -"LedgerVerifyOut"
    • Changedlook_at13 fields changed
      • removedInput schema / properties / as_of / default
        Removed value: -null
      • removedInput schema / properties / as_of / title
        Removed value: -"As Of"
      • removedInput schema / properties / entity_type / default
        Removed value: -null
      • removedInput schema / properties / entity_type / title
        Removed value: -"Entity Type"
      • removedInput schema / properties / id / default
        Removed value: -null
      • removedInput schema / properties / id / title
        Removed value: -"Id"
      • removedInput schema / properties / lat / default
        Removed value: -null
      • removedInput schema / properties / lat / title
        Removed value: -"Lat"
      • removedInput schema / properties / lng / default
        Removed value: -null
      • removedInput schema / properties / lng / title
        Removed value: -"Lng"
      • removedInput schema / properties / max_cloud / title
        Removed value: -"Max Cloud"
      • removedInput schema / title
        Removed value: -"look_atArguments"
      • removedOutput schema / title
        Removed value: -"look_atDictOutput"
    • Changedlook_from15 fields changed
      • removedInput schema / properties / energy / title
        Removed value: -"Energy"
      • removedInput schema / properties / entity_type / default
        Removed value: -null
      • changedInput schema / properties / entity_type / description
        Previous value: -"Entity kind: deposit | infrastructure | company | project. Alone (with lat/lng) it FILTERS the frame to that type; with `id` it ANCHORS the pose on that entity and keeps all types."New value: +"Entity kind: deposit | infrastructure | company | project."
      • removedInput schema / properties / entity_type / title
        Removed value: -"Entity Type"
      • addedInput schema / properties / fields
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Only these keys in each row (plus id). Omit for all."
        +}
      • removedInput schema / properties / id / default
        Removed value: -null
      • removedInput schema / properties / id / title
        Removed value: -"Id"
      • removedInput schema / properties / include_country_centroids / title
        Removed value: -"Include Country Centroids"
      • removedInput schema / properties / lat / default
        Removed value: -null
      • removedInput schema / properties / lat / title
        Removed value: -"Lat"
      • removedInput schema / properties / lng / default
        Removed value: -null
      • removedInput schema / properties / lng / title
        Removed value: -"Lng"
      • removedInput schema / properties / radius_km / title
        Removed value: -"Radius Km"
      • removedInput schema / title
        Removed value: -"look_fromArguments"
      • removedOutput schema / title
        Removed value: -"look_fromDictOutput"
    • Changedlook_through15 fields changed
      • removedInput schema / properties / entity_type / default
        Removed value: -null
      • removedInput schema / properties / entity_type / title
        Removed value: -"Entity Type"
      • removedInput schema / properties / id / default
        Removed value: -null
      • removedInput schema / properties / id / title
        Removed value: -"Id"
      • removedInput schema / properties / lat / default
        Removed value: -null
      • removedInput schema / properties / lat / title
        Removed value: -"Lat"
      • removedInput schema / properties / lng / default
        Removed value: -null
      • removedInput schema / properties / lng / title
        Removed value: -"Lng"
      • removedInput schema / properties / max_cloud / title
        Removed value: -"Max Cloud"
      • removedInput schema / properties / max_frames / title
        Removed value: -"Max Frames"
      • removedInput schema / properties / t0 / title
        Removed value: -"T0"
      • removedInput schema / properties / t1 / default
        Removed value: -null
      • removedInput schema / properties / t1 / title
        Removed value: -"T1"
      • removedInput schema / title
        Removed value: -"look_throughArguments"
      • removedOutput schema / title
        Removed value: -"look_throughDictOutput"
    • Changedmap_viewport15 fields changed
      • removedInput schema / properties / energy / title
        Removed value: -"Energy"
      • removedInput schema / properties / entity_type / default
        Removed value: -null
      • removedInput schema / properties / entity_type / title
        Removed value: -"Entity Type"
      • addedInput schema / properties / fields
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Only these keys in each row (plus id). Omit for all."
        +}
      • removedInput schema / properties / include_country_centroids / title
        Removed value: -"Include Country Centroids"
      • removedInput schema / properties / max_lat / default
        Removed value: -null
      • removedInput schema / properties / max_lat / title
        Removed value: -"Max Lat"
      • removedInput schema / properties / max_lng / default
        Removed value: -null
      • removedInput schema / properties / max_lng / title
        Removed value: -"Max Lng"
      • removedInput schema / properties / min_lat / default
        Removed value: -null
      • removedInput schema / properties / min_lat / title
        Removed value: -"Min Lat"
      • removedInput schema / properties / min_lng / default
        Removed value: -null
      • removedInput schema / properties / min_lng / title
        Removed value: -"Min Lng"
      • removedInput schema / title
        Removed value: -"map_viewportArguments"
      • removedOutput schema / title
        Removed value: -"map_viewportDictOutput"
    • Changedmarket_accept5 fields changed
      • removedInput schema / properties / idempotency_key / default
        Removed value: -null
      • removedInput schema / properties / idempotency_key / title
        Removed value: -"Idempotency Key"
      • removedInput schema / properties / match_id / title
        Removed value: -"Match Id"
      • removedInput schema / title
        Removed value: -"market_acceptArguments"
      • removedOutput schema / title
        Removed value: -"market_acceptDictOutput"
    • Changedmarket_listings13 fields changed
      • removedInput schema / properties / active / title
        Removed value: -"Active"
      • removedInput schema / properties / frontier / default
        Removed value: -null
      • removedInput schema / properties / frontier / title
        Removed value: -"Frontier"
      • removedInput schema / properties / kind / title
        Removed value: -"Kind"
      • removedInput schema / properties / limit / title
        Removed value: -"Limit"
      • removedInput schema / properties / offset / title
        Removed value: -"Offset"
      • removedInput schema / properties / oracle_verified / default
        Removed value: -null
      • removedInput schema / properties / oracle_verified / title
        Removed value: -"Oracle Verified"
      • removedInput schema / properties / resource_type / default
        Removed value: -null
      • removedInput schema / properties / resource_type / title
        Removed value: -"Resource Type"
      • removedInput schema / properties / sort / title
        Removed value: -"Sort"
      • removedInput schema / title
        Removed value: -"market_listingsArguments"
      • removedOutput schema / title
        Removed value: -"market_listingsDictOutput"
    • Changedmarket_match3 fields changed
      • removedInput schema / properties / match_id / title
        Removed value: -"Match Id"
      • removedInput schema / title
        Removed value: -"market_matchArguments"
      • removedOutput schema / title
        Removed value: -"market_matchDictOutput"
    • Changedmarket_provide30 fields changed
      • removedInput schema / $defs / ProvideBody / properties / capacity_total / default
        Removed value: -null
      • removedInput schema / $defs / ProvideBody / properties / capacity_total / title
        Removed value: -"Capacity Total"
      • removedInput schema / $defs / ProvideBody / properties / endpoint_url / default
        Removed value: -null
      • removedInput schema / $defs / ProvideBody / properties / endpoint_url / title
        Removed value: -"Endpoint Url"
      • removedInput schema / $defs / ProvideBody / properties / frontier / title
        Removed value: -"Frontier"
      • removedInput schema / $defs / ProvideBody / properties / idempotency_key / default
        Removed value: -null
      • removedInput schema / $defs / ProvideBody / properties / idempotency_key / title
        Removed value: -"Idempotency Key"
      • removedInput schema / $defs / ProvideBody / properties / max_units_per_match / default
        Removed value: -null
      • removedInput schema / $defs / ProvideBody / properties / max_units_per_match / title
        Removed value: -"Max Units Per Match"
      • removedInput schema / $defs / ProvideBody / properties / min_units / default
        Removed value: -null
      • removedInput schema / $defs / ProvideBody / properties / min_units / title
        Removed value: -"Min Units"
      • removedInput schema / $defs / ProvideBody / properties / oracle_verified / default
        Removed value: -null
      • removedInput schema / $defs / ProvideBody / properties / oracle_verified / title
        Removed value: -"Oracle Verified"
      • removedInput schema / $defs / ProvideBody / properties / price_joules_per_unit / title
        Removed value: -"Price Joules Per Unit"
      • removedInput schema / $defs / ProvideBody / properties / resource_type / title
        Removed value: -"Resource Type"
      • removedInput schema / $defs / ProvideBody / properties / sla / default
        Removed value: -null
      • removedInput schema / $defs / ProvideBody / properties / sla / title
        Removed value: -"Sla"
      • removedInput schema / $defs / ProvideBody / properties / speed / default
        Removed value: -null
      • removedInput schema / $defs / ProvideBody / properties / speed / title
        Removed value: -"Speed"
      • removedInput schema / $defs / ProvideBody / properties / stake_amount / default
        Removed value: -null
      • removedInput schema / $defs / ProvideBody / properties / stake_amount / title
        Removed value: -"Stake Amount"
      • removedInput schema / $defs / ProvideBody / properties / timeout_hours / default
        Removed value: -null
      • removedInput schema / $defs / ProvideBody / properties / timeout_hours / title
        Removed value: -"Timeout Hours"
      • removedInput schema / $defs / ProvideBody / properties / timeout_minutes / default
        Removed value: -null
      • removedInput schema / $defs / ProvideBody / properties / timeout_minutes / title
        Removed value: -"Timeout Minutes"
      • removedInput schema / $defs / ProvideBody / properties / unit_type / title
        Removed value: -"Unit Type"
      • removedInput schema / $defs / ProvideBody / properties / wallet_id / title
        Removed value: -"Wallet Id"
      • removedInput schema / $defs / ProvideBody / title
        Removed value: -"ProvideBody"
      • removedInput schema / title
        Removed value: -"market_provideArguments"
      • removedOutput schema / title
        Removed value: -"market_provideDictOutput"
    • Changedmarket_quote51 fields changed
      • removedInput schema / properties / request_id / title
        Removed value: -"Request Id"
      • removedInput schema / title
        Removed value: -"market_quoteArguments"
      • removedOutput schema / description
        Removed value: -"market_quote — RAREEAI RequestOut as the route actually declares it. `escrow_terms` is left\nOPAQUE on purpose: a GENERIC prose block, identical on every request. This trade's own figures\n(fee_joules, escrow_expires_at, dispute_window_end) live on MatchOut — the `market_match` payload —\nand are not on this route, so they are not declared here (the tool docstring now says the same)."
      • removedOutput schema / properties / agent_id / default
        Removed value: -null
      • removedOutput schema / properties / agent_id / title
        Removed value: -"Agent Id"
      • removedOutput schema / properties / contract_escrow / default
        Removed value: -null
      • removedOutput schema / properties / contract_escrow / title
        Removed value: -"Contract Escrow"
      • removedOutput schema / properties / created_at / default
        Removed value: -null
      • removedOutput schema / properties / created_at / title
        Removed value: -"Created At"
      • removedOutput schema / properties / escrow_terms / default
        Removed value: -null
      • removedOutput schema / properties / escrow_terms / description
        Removed value: -"generic escrow prose; opaque by design"
      • removedOutput schema / properties / escrow_terms / title
        Removed value: -"Escrow Terms"
      • removedOutput schema / properties / expires_at / default
        Removed value: -null
      • removedOutput schema / properties / expires_at / title
        Removed value: -"Expires At"
      • removedOutput schema / properties / frontier / default
        Removed value: -null
      • removedOutput schema / properties / frontier / title
        Removed value: -"Frontier"
      • removedOutput schema / properties / id / default
        Removed value: -null
      • removedOutput schema / properties / id / title
        Removed value: -"Id"
      • removedOutput schema / properties / max_price_per_unit / default
        Removed value: -null
      • removedOutput schema / properties / max_price_per_unit / title
        Removed value: -"Max Price Per Unit"
      • removedOutput schema / properties / priority / default
        Removed value: -null
      • removedOutput schema / properties / priority / title
        Removed value: -"Priority"
      • removedOutput schema / properties / privacy_mode / default
        Removed value: -null
      • removedOutput schema / properties / privacy_mode / title
        Removed value: -"Privacy Mode"
      • removedOutput schema / properties / rematch_max_price_per_unit / default
        Removed value: -null
      • removedOutput schema / properties / rematch_max_price_per_unit / title
        Removed value: -"Rematch Max Price Per Unit"
      • removedOutput schema / properties / rematch_max_total_joules / default
        Removed value: -null
      • removedOutput schema / properties / rematch_max_total_joules / description
        Removed value: -"the most a background re-match can lock from your wallet"
      • removedOutput schema / properties / rematch_max_total_joules / title
        Removed value: -"Rematch Max Total Joules"
      • removedOutput schema / properties / rematch_until / default
        Removed value: -null
      • removedOutput schema / properties / rematch_until / title
        Removed value: -"Rematch Until"
      • removedOutput schema / properties / requirements / default
        Removed value: -null
      • removedOutput schema / properties / requirements / title
        Removed value: -"Requirements"
      • removedOutput schema / properties / resource_type / default
        Removed value: -null
      • removedOutput schema / properties / resource_type / title
        Removed value: -"Resource Type"
      • removedOutput schema / properties / speed / default
        Removed value: -null
      • removedOutput schema / properties / speed / title
        Removed value: -"Speed"
      • removedOutput schema / properties / status / default
        Removed value: -null
      • removedOutput schema / properties / status / description
        Removed value: -"pending · partially_matched · matched (every unit covered, a match still awaits the provider's approval) · fulfilled · expired · cancelled"
      • removedOutput schema / properties / status / title
        Removed value: -"Status"
      • removedOutput schema / properties / target_provider_id / default
        Removed value: -null
      • removedOutput schema / properties / target_provider_id / title
        Removed value: -"Target Provider Id"
      • removedOutput schema / properties / unit_type / default
        Removed value: -null
      • removedOutput schema / properties / unit_type / title
        Removed value: -"Unit Type"
      • removedOutput schema / properties / units_matched / default
        Removed value: -null
      • removedOutput schema / properties / units_matched / title
        Removed value: -"Units Matched"
      • removedOutput schema / properties / units_needed / default
        Removed value: -null
      • removedOutput schema / properties / units_needed / title
        Removed value: -"Units Needed"
      • removedOutput schema / properties / wallet_id / default
        Removed value: -null
      • removedOutput schema / properties / wallet_id / title
        Removed value: -"Wallet Id"
      • removedOutput schema / title
        Removed value: -"RequestQuoteOut"
    • Changedmarket_request52 fields changed
      • changedInput schema / $defs / PhysicalClaimBody / properties / kind / description
        Previous value: -"physical_change: something changed at the site between t0 and t1 · physical_state: the site shows something at t1"New value: +"physical_change: something changed at the site between t0 and t1 · physical_state: the site shows something …"
      • removedInput schema / $defs / PhysicalClaimBody / properties / kind / title
        Removed value: -"Kind"
      • removedInput schema / $defs / PhysicalClaimBody / properties / radius_m / default
        Removed value: -null
      • removedInput schema / $defs / PhysicalClaimBody / properties / radius_m / title
        Removed value: -"Radius M"
      • removedInput schema / $defs / PhysicalClaimBody / properties / site_entity_id / default
        Removed value: -null
      • removedInput schema / $defs / PhysicalClaimBody / properties / site_entity_id / title
        Removed value: -"Site Entity Id"
      • removedInput schema / $defs / PhysicalClaimBody / properties / site_entity_type / default
        Removed value: -null
      • removedInput schema / $defs / PhysicalClaimBody / properties / site_entity_type / title
        Removed value: -"Site Entity Type"
      • removedInput schema / $defs / PhysicalClaimBody / properties / site_lat / title
        Removed value: -"Site Lat"
      • removedInput schema / $defs / PhysicalClaimBody / properties / site_lng / title
        Removed value: -"Site Lng"
      • removedInput schema / $defs / PhysicalClaimBody / properties / t0 / default
        Removed value: -null
      • removedInput schema / $defs / PhysicalClaimBody / properties / t0 / title
        Removed value: -"T0"
      • removedInput schema / $defs / PhysicalClaimBody / properties / t1 / title
        Removed value: -"T1"
      • removedInput schema / $defs / PhysicalClaimBody / title
        Removed value: -"PhysicalClaimBody"
      • removedInput schema / $defs / RematchBody / properties / max_price_per_unit / default
        Removed value: -null
      • changedInput schema / $defs / RematchBody / properties / max_price_per_unit / description
        Previous value: -"the most a background re-match may pay a unit: 1 .. the request's own max_price_per_unit (default: that maximum)"New value: +"the most a background re-match may pay a unit: 1 .. the request's own max_price_per_unit (default: that …"
      • removedInput schema / $defs / RematchBody / properties / max_price_per_unit / title
        Removed value: -"Max Price Per Unit"
      • removedInput schema / $defs / RematchBody / properties / window_seconds / default
        Removed value: -null
      • removedInput schema / $defs / RematchBody / properties / window_seconds / title
        Removed value: -"Window Seconds"
      • removedInput schema / $defs / RematchBody / title
        Removed value: -"RematchBody"
      • removedInput schema / $defs / RequestBody / properties / contract_escrow / default
        Removed value: -null
      • changedInput schema / $defs / RequestBody / properties / contract_escrow / description
        Previous value: -"opt in to the on-chain escrow contract lane (a flat contract fee added to your lock). Takes effect ONLY where an oracle backs the trade; otherwise the trade falls to the default ledger lane with no contract and no contract fee, and the match says why (contract_escrow=false + contract_note)"New value: +"opt in to the on-chain escrow contract lane (a flat contract fee added to your lock)."
      • removedInput schema / $defs / RequestBody / properties / contract_escrow / title
        Removed value: -"Contract Escrow"
      • removedInput schema / $defs / RequestBody / properties / frontier / title
        Removed value: -"Frontier"
      • removedInput schema / $defs / RequestBody / properties / idempotency_key / default
        Removed value: -null
      • removedInput schema / $defs / RequestBody / properties / idempotency_key / title
        Removed value: -"Idempotency Key"
      • removedInput schema / $defs / RequestBody / properties / max_price_per_unit / title
        Removed value: -"Max Price Per Unit"
      • removedInput schema / $defs / RequestBody / properties / physical_claim / default
        Removed value: -null
      • changedInput schema / $defs / RequestBody / properties / physical_claim / description
        Previous value: -"REQUIRED for resource_type scene_stack, change_report, site_reconstruction or satellite_imagery (refused without it): the site and date the trade is judged against — a satellite frame at that place and time, never a party's word"New value: +"REQUIRED for resource_type scene_stack, change_report, site_reconstruction or satellite_imagery (refused …"
      • removedInput schema / $defs / RequestBody / properties / priority / default
        Removed value: -null
      • removedInput schema / $defs / RequestBody / properties / priority / title
        Removed value: -"Priority"
      • removedInput schema / $defs / RequestBody / properties / privacy_mode / default
        Removed value: -null
      • removedInput schema / $defs / RequestBody / properties / privacy_mode / title
        Removed value: -"Privacy Mode"
      • removedInput schema / $defs / RequestBody / properties / provider_id / default
        Removed value: -null
      • changedInput schema / $defs / RequestBody / properties / provider_id / description
        Previous value: -"the listing to buy from: a provider id from market_listings (kind providers). The request then matches that listing only, never another one; unknown, inactive, your own, not offering what you ask for, or priced above max_price_per_unit is refused (404, with the reason). Leave it unset to buy from the open market (the cheapest fitting listing)"New value: +"the listing to buy from: a provider id from market_listings (kind providers)."
      • removedInput schema / $defs / RequestBody / properties / provider_id / title
        Removed value: -"Provider Id"
      • removedInput schema / $defs / RequestBody / properties / rematch / default
        Removed value: -null
      • changedInput schema / $defs / RequestBody / properties / rematch / description
        Previous value: -"MACHINE speed only: allow automatic re-matching if a match on this request ends without delivery, within these bounds. A background match is escrowed from your wallet without a further call (one notice per escrow); market_request_rematch_withdraw ends it. Refused (409 rematch_consent_unavailable) until the live RAREEAI Terms carry the clause; 422 on human speed"New value: +"MACHINE speed only: allow automatic re-matching if a match on this request ends without delivery, within …"
      • removedInput schema / $defs / RequestBody / properties / requirements / default
        Removed value: -null
      • removedInput schema / $defs / RequestBody / properties / requirements / title
        Removed value: -"Requirements"
      • changedInput schema / $defs / RequestBody / properties / resource_type / description
        Previous value: -"what you want to buy; scene_stack, change_report, site_reconstruction and satellite_imagery need physical_claim"New value: +"what you want to buy"
      • removedInput schema / $defs / RequestBody / properties / resource_type / title
        Removed value: -"Resource Type"
      • removedInput schema / $defs / RequestBody / properties / speed / default
        Removed value: -null
      • removedInput schema / $defs / RequestBody / properties / speed / title
        Removed value: -"Speed"
      • removedInput schema / $defs / RequestBody / properties / ttl_seconds / default
        Removed value: -null
      • removedInput schema / $defs / RequestBody / properties / ttl_seconds / title
        Removed value: -"Ttl Seconds"
      • removedInput schema / $defs / RequestBody / properties / unit_type / title
        Removed value: -"Unit Type"
      • removedInput schema / $defs / RequestBody / properties / units_needed / title
        Removed value: -"Units Needed"
      • removedInput schema / $defs / RequestBody / properties / wallet_id / title
        Removed value: -"Wallet Id"
      • removedInput schema / $defs / RequestBody / title
        Removed value: -"RequestBody"
      • removedInput schema / title
        Removed value: -"market_requestArguments"
      • removedOutput schema / title
        Removed value: -"market_requestDictOutput"
    • Changedmarket_request_rematch3 fields changed
      • removedInput schema / properties / request_id / title
        Removed value: -"Request Id"
      • removedInput schema / title
        Removed value: -"market_request_rematchArguments"
      • removedOutput schema / title
        Removed value: -"market_request_rematchDictOutput"
    • Changedmarket_request_rematch_withdraw3 fields changed
      • removedInput schema / properties / request_id / title
        Removed value: -"Request Id"
      • removedInput schema / title
        Removed value: -"market_request_rematch_withdrawArguments"
      • removedOutput schema / title
        Removed value: -"market_request_rematch_withdrawDictOutput"
    • Changednearby10 fields changed
      • removedInput schema / properties / entity_type / default
        Removed value: -null
      • removedInput schema / properties / entity_type / title
        Removed value: -"Entity Type"
      • addedInput schema / properties / fields
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Only these keys in each row (plus id). Omit for all."
        +}
      • removedInput schema / properties / include_country_centroids / title
        Removed value: -"Include Country Centroids"
      • removedInput schema / properties / lat / title
        Removed value: -"Lat"
      • removedInput schema / properties / limit / title
        Removed value: -"Limit"
      • removedInput schema / properties / lng / title
        Removed value: -"Lng"
      • removedInput schema / properties / radius_km / title
        Removed value: -"Radius Km"
      • removedInput schema / title
        Removed value: -"nearbyArguments"
      • removedOutput schema / title
        Removed value: -"nearbyDictOutput"
    • Changedoracle_assess10 fields changed
      • removedInput schema / $defs / OracleAssessBody / properties / execution_trace / default
        Removed value: -null
      • removedInput schema / $defs / OracleAssessBody / properties / execution_trace / title
        Removed value: -"Execution Trace"
      • removedInput schema / $defs / OracleAssessBody / properties / notes / default
        Removed value: -null
      • removedInput schema / $defs / OracleAssessBody / properties / notes / title
        Removed value: -"Notes"
      • removedInput schema / $defs / OracleAssessBody / properties / quality_score / title
        Removed value: -"Quality Score"
      • removedInput schema / $defs / OracleAssessBody / properties / verdict / title
        Removed value: -"Verdict"
      • removedInput schema / $defs / OracleAssessBody / title
        Removed value: -"OracleAssessBody"
      • removedInput schema / properties / match_id / title
        Removed value: -"Match Id"
      • removedInput schema / title
        Removed value: -"oracle_assessArguments"
      • removedOutput schema / title
        Removed value: -"oracle_assessDictOutput"
    • Changedoracle_assignments5 fields changed
      • removedInput schema / properties / limit / title
        Removed value: -"Limit"
      • removedInput schema / properties / status / default
        Removed value: -null
      • removedInput schema / properties / status / title
        Removed value: -"Status"
      • removedInput schema / title
        Removed value: -"oracle_assignmentsArguments"
      • removedOutput schema / title
        Removed value: -"oracle_assignmentsDictOutput"
    • Changedoracle_deregister3 fields changed
      • removedInput schema / properties / wallet_id / title
        Removed value: -"Wallet Id"
      • removedInput schema / title
        Removed value: -"oracle_deregisterArguments"
      • removedOutput schema / title
        Removed value: -"oracle_deregisterDictOutput"
    • Changedoracle_register7 fields changed
      • removedInput schema / $defs / OracleRegisterBody / properties / specialisations / default
        Removed value: -null
      • removedInput schema / $defs / OracleRegisterBody / properties / specialisations / title
        Removed value: -"Specialisations"
      • removedInput schema / $defs / OracleRegisterBody / properties / stake_amount / title
        Removed value: -"Stake Amount"
      • removedInput schema / $defs / OracleRegisterBody / properties / wallet_id / title
        Removed value: -"Wallet Id"
      • removedInput schema / $defs / OracleRegisterBody / title
        Removed value: -"OracleRegisterBody"
      • removedInput schema / title
        Removed value: -"oracle_registerArguments"
      • removedOutput schema / title
        Removed value: -"oracle_registerDictOutput"
    • Changedplace_index22 fields changed
      • removedInput schema / properties / entity_type / default
        Removed value: -null
      • removedInput schema / properties / entity_type / title
        Removed value: -"Entity Type"
      • removedInput schema / properties / entity_types / default
        Removed value: -null
      • removedInput schema / properties / entity_types / title
        Removed value: -"Entity Types"
      • addedInput schema / properties / fields
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Only these keys in each row (plus id). Omit for all."
        +}
      • removedInput schema / properties / from_date / default
        Removed value: -null
      • removedInput schema / properties / from_date / title
        Removed value: -"From Date"
      • removedInput schema / properties / id / default
        Removed value: -null
      • removedInput schema / properties / id / title
        Removed value: -"Id"
      • removedInput schema / properties / kinds / default
        Removed value: -null
      • removedInput schema / properties / kinds / title
        Removed value: -"Kinds"
      • removedInput schema / properties / lat / default
        Removed value: -null
      • removedInput schema / properties / lat / title
        Removed value: -"Lat"
      • removedInput schema / properties / limit / title
        Removed value: -"Limit"
      • removedInput schema / properties / lng / default
        Removed value: -null
      • removedInput schema / properties / lng / title
        Removed value: -"Lng"
      • removedInput schema / properties / offset / title
        Removed value: -"Offset"
      • removedInput schema / properties / radius_km / title
        Removed value: -"Radius Km"
      • removedInput schema / properties / to_date / default
        Removed value: -null
      • removedInput schema / properties / to_date / title
        Removed value: -"To Date"
      • removedInput schema / title
        Removed value: -"place_indexArguments"
      • removedOutput schema / title
        Removed value: -"place_indexDictOutput"
    • Changedreceipts_me11 fields changed
      • removedInput schema / title
        Removed value: -"receipts_meArguments"
      • removedOutput schema / description
        Removed value: -"receipts_me — the calling key's receipt setting and the price (GET /api/v1/receipts/me)."
      • removedOutput schema / properties / agent_id / default
        Removed value: -null
      • removedOutput schema / properties / agent_id / title
        Removed value: -"Agent Id"
      • removedOutput schema / properties / caller / default
        Removed value: -null
      • removedOutput schema / properties / caller / title
        Removed value: -"Caller"
      • removedOutput schema / properties / receipt_offer / default
        Removed value: -null
      • removedOutput schema / properties / receipt_offer / title
        Removed value: -"Receipt Offer"
      • removedOutput schema / properties / what_a_receipt_is / default
        Removed value: -null
      • removedOutput schema / properties / what_a_receipt_is / title
        Removed value: -"What A Receipt Is"
      • removedOutput schema / title
        Removed value: -"ReceiptsMeOut"
    • Changedrelationships21 fields changed
      • removedInput schema / properties / as_of / default
        Removed value: -null
      • changedInput schema / properties / as_of / description
        Previous value: -"Answer for a past date: YYYY-MM-DD or a UTC datetime. Needs one start entity; a future date is a 400, not charged."New value: +"Answer for a past date: YYYY-MM-DD or a UTC datetime."
      • removedInput schema / properties / as_of / title
        Removed value: -"As Of"
      • removedInput schema / properties / entity / default
        Removed value: -null
      • changedInput schema / properties / entity / description
        Previous value: -"Start entity by NAME: an exact (case-insensitive) match, else a name that contains it. A name matching several entities is a 409 listing candidates."New value: +"Start entity by NAME: an exact (case-insensitive) match, else a name that contains it."
      • removedInput schema / properties / entity / title
        Removed value: -"Entity"
      • removedInput schema / properties / entity_id / default
        Removed value: -null
      • removedInput schema / properties / entity_id / title
        Removed value: -"Entity Id"
      • removedInput schema / properties / entity_type / default
        Removed value: -null
      • removedInput schema / properties / entity_type / title
        Removed value: -"Entity Type"
      • addedInput schema / properties / fields
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "description": "Only these keys in each row (plus id). Omit for all."
        +}
      • removedInput schema / properties / hops / title
        Removed value: -"Hops"
      • removedInput schema / properties / limit / title
        Removed value: -"Limit"
      • removedInput schema / properties / offset / title
        Removed value: -"Offset"
      • removedInput schema / properties / relation_type / default
        Removed value: -null
      • changedInput schema / properties / relation_type / description
        Previous value: -"Only edges with this relation label, e.g. OPERATES, CONTAINS, MEMBER_OF. Checked against the allowed set: an unknown label is a 400 before any charge."New value: +"Only edges with this relation label, e.g. OPERATES, CONTAINS, MEMBER_OF."
      • removedInput schema / properties / relation_type / title
        Removed value: -"Relation Type"
      • removedInput schema / properties / search / default
        Removed value: -null
      • removedInput schema / properties / search / title
        Removed value: -"Search"
      • removedInput schema / title
        Removed value: -"relationshipsArguments"
      • removedOutput schema / title
        Removed value: -"relationshipsDictOutput"
    • Changedsignals7 fields changed
      • removedInput schema / properties / country / default
        Removed value: -null
      • removedInput schema / properties / country / title
        Removed value: -"Country"
      • removedInput schema / properties / kind / default
        Removed value: -null
      • removedInput schema / properties / kind / title
        Removed value: -"Kind"
      • removedInput schema / properties / limit / title
        Removed value: -"Limit"
      • removedInput schema / title
        Removed value: -"signalsArguments"
      • removedOutput schema / title
        Removed value: -"signalsDictOutput"
    • Changedsite_reconstruction16 fields changed
      • removedInput schema / properties / as_of / default
        Removed value: -null
      • removedInput schema / properties / as_of / title
        Removed value: -"As Of"
      • removedInput schema / properties / entity_type / default
        Removed value: -null
      • removedInput schema / properties / entity_type / title
        Removed value: -"Entity Type"
      • removedInput schema / properties / id / default
        Removed value: -null
      • removedInput schema / properties / id / title
        Removed value: -"Id"
      • changedInput schema / properties / include_model / description
        Previous value: -"Also return the binary glTF model as model_glb_base64 (a lidar model is about 5 MB as base64). Default false: the card only."New value: +"Also return the binary glTF model as model_glb_base64 (a lidar model is about 5 MB as base64)."
      • removedInput schema / properties / include_model / title
        Removed value: -"Include Model"
      • removedInput schema / properties / lat / default
        Removed value: -null
      • removedInput schema / properties / lat / title
        Removed value: -"Lat"
      • removedInput schema / properties / lng / default
        Removed value: -null
      • removedInput schema / properties / lng / title
        Removed value: -"Lng"
      • removedInput schema / properties / radius_m / default
        Removed value: -null
      • removedInput schema / properties / radius_m / title
        Removed value: -"Radius M"
      • removedInput schema / title
        Removed value: -"site_reconstructionArguments"
      • removedOutput schema / title
        Removed value: -"site_reconstructionDictOutput"
    • Addedtool_guide
    • Changedtrade_settlement23 fields changed
      • removedInput schema / properties / match_id / title
        Removed value: -"Match Id"
      • removedInput schema / title
        Removed value: -"trade_settlementArguments"
      • removedOutput schema / description
        Removed value: -"trade_settlement — relayed verbatim from GET /api/v1/wallet/trade/{match_id}/settlement."
      • removedOutput schema / properties / all_anchored / default
        Removed value: -null
      • removedOutput schema / properties / all_anchored / description
        Removed value: -"true only when every leg's anchor is 'anchored'"
      • removedOutput schema / properties / all_anchored / title
        Removed value: -"All Anchored"
      • removedOutput schema / properties / contract / default
        Removed value: -null
      • removedOutput schema / properties / contract / description
        Removed value: -"the escrow CONTRACT's own chain legs {version, state, closed, closed_on_chain, closing_txid, legs[]}; null = no escrow contract was recorded (a ledger-lane trade)"
      • removedOutput schema / properties / contract / title
        Removed value: -"Contract"
      • removedOutput schema / properties / dispute / default
        Removed value: -null
      • removedOutput schema / properties / dispute / description
        Removed value: -"null = the trade was never disputed; else {open, opened_at, deadline (only while open: an unresolved dispute auto-refunds the buyer then), at_deadline, extended_until, extension_state (none | offer_pending | agreed | agreed_new_offer_pending), extension_offer ({by, until} | null), extend_route}"
      • removedOutput schema / properties / dispute / title
        Removed value: -"Dispute"
      • removedOutput schema / properties / leg_count / default
        Removed value: -null
      • removedOutput schema / properties / leg_count / title
        Removed value: -"Leg Count"
      • removedOutput schema / properties / legs / default
        Removed value: -null
      • removedOutput schema / properties / legs / title
        Removed value: -"Legs"
      • removedOutput schema / properties / match_id / default
        Removed value: -null
      • removedOutput schema / properties / match_id / title
        Removed value: -"Match Id"
      • removedOutput schema / properties / settled / default
        Removed value: -null
      • removedOutput schema / properties / settled / title
        Removed value: -"Settled"
      • removedOutput schema / properties / your_role / default
        Removed value: -null
      • removedOutput schema / properties / your_role / title
        Removed value: -"Your Role"
      • removedOutput schema / title
        Removed value: -"TradeSettlementOut"
    • Changedtransparency_latest39 fields changed
      • removedInput schema / title
        Removed value: -"transparency_latestArguments"
      • removedOutput schema / description
        Removed value: -"transparency_latest — hourly public attestation."
      • removedOutput schema / properties / algorithm_version / default
        Removed value: -null
      • removedOutput schema / properties / algorithm_version / title
        Removed value: -"Algorithm Version"
      • removedOutput schema / properties / anchoring / default
        Removed value: -null
      • removedOutput schema / properties / anchoring / title
        Removed value: -"Anchoring"
      • removedOutput schema / properties / bridge_root / default
        Removed value: -null
      • removedOutput schema / properties / bridge_root / title
        Removed value: -"Bridge Root"
      • removedOutput schema / properties / bridge_rows / default
        Removed value: -null
      • removedOutput schema / properties / bridge_rows / title
        Removed value: -"Bridge Rows"
      • removedOutput schema / properties / bsv_txid / default
        Removed value: -null
      • removedOutput schema / properties / bsv_txid / description
        Removed value: -"may read \"pending\" for ~5h — in-flight, NOT unanchored"
      • removedOutput schema / properties / bsv_txid / title
        Removed value: -"Bsv Txid"
      • removedOutput schema / properties / fees / default
        Removed value: -null
      • removedOutput schema / properties / fees / title
        Removed value: -"Fees"
      • removedOutput schema / properties / last_anchored / default
        Removed value: -null
      • removedOutput schema / properties / last_anchored / description
        Removed value: -"newest attestation actually on chain"
      • removedOutput schema / properties / last_anchored / title
        Removed value: -"Last Anchored"
      • removedOutput schema / properties / merkle_root / default
        Removed value: -null
      • removedOutput schema / properties / merkle_root / title
        Removed value: -"Merkle Root"
      • removedOutput schema / properties / settlement_leaves / default
        Removed value: -null
      • removedOutput schema / properties / settlement_leaves / title
        Removed value: -"Settlement Leaves"
      • removedOutput schema / properties / settlement_root / default
        Removed value: -null
      • removedOutput schema / properties / settlement_root / title
        Removed value: -"Settlement Root"
      • removedOutput schema / properties / state_root / default
        Removed value: -null
      • removedOutput schema / properties / state_root / title
        Removed value: -"State Root"
      • removedOutput schema / properties / supply_verified / default
        Removed value: -null
      • removedOutput schema / properties / supply_verified / title
        Removed value: -"Supply Verified"
      • removedOutput schema / properties / timestamp / default
        Removed value: -null
      • removedOutput schema / properties / timestamp / title
        Removed value: -"Timestamp"
      • removedOutput schema / properties / total_supply / default
        Removed value: -null
      • removedOutput schema / properties / total_supply / title
        Removed value: -"Total Supply"
      • removedOutput schema / properties / tx_count / default
        Removed value: -null
      • removedOutput schema / properties / tx_count / title
        Removed value: -"Tx Count"
      • removedOutput schema / properties / volume / default
        Removed value: -null
      • removedOutput schema / properties / volume / title
        Removed value: -"Volume"
      • removedOutput schema / properties / wallet_count / default
        Removed value: -null
      • removedOutput schema / properties / wallet_count / title
        Removed value: -"Wallet Count"
      • removedOutput schema / title
        Removed value: -"TransparencyOut"
    • Changedverify_proof30 fields changed
      • removedInput schema / properties / identifier / title
        Removed value: -"Identifier"
      • removedInput schema / title
        Removed value: -"verify_proofArguments"
      • removedOutput schema / description
        Removed value: -"verify_proof — the ENVELOPE only. `results` is an OPAQUE list and must stay that way: every\nper-record verdict field lives inside it, including `release_anchor_status` (11 values) and the\ntwo independent anchors (ledger_payout_anchor, escrow_contract_release_anchor). Modelling the\ninner records would risk collapsing or refusing an enum value, which is precisely the false\ncertainty this tool exists to prevent. Read the envelope for reachability, the records for verdicts."
      • removedOutput schema / properties / chain_confirmed / default
        Removed value: -null
      • removedOutput schema / properties / chain_confirmed / description
        Removed value: -"only true is a verified anchor"
      • removedOutput schema / properties / chain_confirmed / title
        Removed value: -"Chain Confirmed"
      • removedOutput schema / properties / chain_status / default
        Removed value: -null
      • removedOutput schema / properties / chain_status / description
        Removed value: -"bare-txid lookups: confirmed|mempool|not_on_chain|unchecked"
      • removedOutput schema / properties / chain_status / title
        Removed value: -"Chain Status"
      • removedOutput schema / properties / count / default
        Removed value: -null
      • removedOutput schema / properties / count / title
        Removed value: -"Count"
      • removedOutput schema / properties / degraded / default
        Removed value: -null
      • removedOutput schema / properties / degraded / description
        Removed value: -"true = INCONCLUSIVE, never an absence"
      • removedOutput schema / properties / degraded / title
        Removed value: -"Degraded"
      • removedOutput schema / properties / found / default
        Removed value: -null
      • removedOutput schema / properties / found / description
        Removed value: -"a record exists in at least one source"
      • removedOutput schema / properties / found / title
        Removed value: -"Found"
      • removedOutput schema / properties / identifier / default
        Removed value: -null
      • removedOutput schema / properties / identifier / title
        Removed value: -"Identifier"
      • removedOutput schema / properties / note / default
        Removed value: -null
      • removedOutput schema / properties / note / title
        Removed value: -"Note"
      • removedOutput schema / properties / recorded / default
        Removed value: -null
      • removedOutput schema / properties / recorded / description
        Removed value: -"we hold it even if the chain does not"
      • removedOutput schema / properties / recorded / title
        Removed value: -"Recorded"
      • removedOutput schema / properties / results / default
        Removed value: -null
      • removedOutput schema / properties / results / description
        Removed value: -"per-record verdicts, passed through untouched"
      • removedOutput schema / properties / results / title
        Removed value: -"Results"
      • removedOutput schema / properties / unavailable_sources / default
        Removed value: -null
      • removedOutput schema / properties / unavailable_sources / title
        Removed value: -"Unavailable Sources"
      • removedOutput schema / title
        Removed value: -"VerifyOut"
    • Changedwallet_transfer22 fields changed
      • removedInput schema / $defs / TransferBody / properties / amount / title
        Removed value: -"Amount"
      • removedInput schema / $defs / TransferBody / properties / from_wallet_id / title
        Removed value: -"From Wallet Id"
      • removedInput schema / $defs / TransferBody / properties / idempotency_key / default
        Removed value: -null
      • changedInput schema / $defs / TransferBody / properties / idempotency_key / description
        Previous value: -"your own opaque key, 1-128 characters: the same key and body is one transfer, never two. Never use a settlement-shaped key (release|refund|dispute_release|dispute_split:<match_id>:…) — those are refused"New value: +"your own opaque key, 1-128 characters: the same key and body is one transfer, never two."
      • removedInput schema / $defs / TransferBody / properties / idempotency_key / title
        Removed value: -"Idempotency Key"
      • removedInput schema / $defs / TransferBody / properties / include_proof / default
        Removed value: -null
      • removedInput schema / $defs / TransferBody / properties / include_proof / title
        Removed value: -"Include Proof"
      • removedInput schema / $defs / TransferBody / properties / note / default
        Removed value: -null
      • removedInput schema / $defs / TransferBody / properties / note / title
        Removed value: -"Note"
      • removedInput schema / $defs / TransferBody / properties / platform / default
        Removed value: -null
      • removedInput schema / $defs / TransferBody / properties / platform / title
        Removed value: -"Platform"
      • removedInput schema / $defs / TransferBody / properties / privacy_mode / default
        Removed value: -null
      • removedInput schema / $defs / TransferBody / properties / privacy_mode / title
        Removed value: -"Privacy Mode"
      • removedInput schema / $defs / TransferBody / properties / registration_id / default
        Removed value: -null
      • removedInput schema / $defs / TransferBody / properties / registration_id / title
        Removed value: -"Registration Id"
      • removedInput schema / $defs / TransferBody / properties / to_handle / default
        Removed value: -null
      • removedInput schema / $defs / TransferBody / properties / to_handle / title
        Removed value: -"To Handle"
      • removedInput schema / $defs / TransferBody / properties / to_wallet_id / default
        Removed value: -null
      • removedInput schema / $defs / TransferBody / properties / to_wallet_id / title
        Removed value: -"To Wallet Id"
      • removedInput schema / $defs / TransferBody / title
        Removed value: -"TransferBody"
      • removedInput schema / title
        Removed value: -"wallet_transferArguments"
      • removedOutput schema / title
        Removed value: -"wallet_transferDictOutput"
  4. 12 tool updates
    • Changedbilling_quote1 field changed
      • changedInput schema / properties / id / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "integer"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedcompany2 fields changed
      • addedInput schema / properties / id / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "integer"
        +  }
        +]
      • removedInput schema / properties / id / type
        Removed value: -"string"
    • Changeddeposit2 fields changed
      • addedInput schema / properties / id / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "integer"
        +  }
        +]
      • removedInput schema / properties / id / type
        Removed value: -"string"
    • Changedentity_change1 field changed
      • changedInput schema / properties / id / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "integer"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedentity_history2 fields changed
      • addedInput schema / properties / id / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "integer"
        +  }
        +]
      • removedInput schema / properties / id / type
        Removed value: -"string"
    • Changedentity_state2 fields changed
      • addedInput schema / properties / id / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "integer"
        +  }
        +]
      • removedInput schema / properties / id / type
        Removed value: -"string"
    • Changedlook_at1 field changed
      • changedInput schema / properties / id / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "integer"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedlook_from1 field changed
      • changedInput schema / properties / id / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "integer"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedlook_through1 field changed
      • changedInput schema / properties / id / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "integer"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedplace_index1 field changed
      • changedInput schema / properties / id / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "integer"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedrelationships1 field changed
      • changedInput schema / properties / entity_id / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "integer"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedsite_reconstruction1 field changed
      • changedInput schema / properties / id / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "integer"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
  5. 1 tool update
    • Addedsignals
  6. 2 tool updates
    • Changedbilling_quote4 fields changed
      • addedOutput schema / properties / joules_with_receipt
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "an opted-in key: base + the receipt's price",
        +  "title": "Joules With Receipt"
        +}
      • addedOutput schema / properties / joules_with_receipt_all_in
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "an opted-in key: the true debit with the receipt",
        +  "title": "Joules With Receipt All In"
        +}
      • addedOutput schema / properties / receipt
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "an opted-in key only: the receipt line that WILL be charged with the answer",
        +  "title": "Receipt"
        +}
      • addedOutput schema / properties / receipt_offer
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "graph quotes: the RECEIPT offer — joules_per_receipt (10), this_key_opted_in, how_to_opt_in (the key OWNER turns it on), what_you_get. See receipts_me.",
        +  "title": "Receipt Offer"
        +}
    • Addedreceipts_me
  7. 4 tool updates
    • Changedmarket_quote5 fields changed
      • addedOutput schema / properties / rematch_max_price_per_unit
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Rematch Max Price Per Unit"
        +}
      • addedOutput schema / properties / rematch_max_total_joules
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "the most a background re-match can lock from your wallet",
        +  "title": "Rematch Max Total Joules"
        +}
      • addedOutput schema / properties / rematch_until
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Rematch Until"
        +}
      • addedOutput schema / properties / status / description
        Added value: +"pending · partially_matched · matched (every unit covered, a match still awaits the provider's approval) · fulfilled · expired · cancelled"
      • addedOutput schema / properties / target_provider_id
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Target Provider Id"
        +}
    • Changedmarket_request2 fields changed
      • addedInput schema / $defs / RematchBody
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "max_price_per_unit": {
        +      "anyOf": [
        +        {
        +          "minimum": 1,
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "the most a background re-match may pay a unit: 1 .. the request's own max_price_per_unit (default: that maximum)",
        +      "title": "Max Price Per Unit"
        +    },
        +    "window_seconds": {
        +      "anyOf": [
        +        {
        +          "maximum": 86400,
        +          "minimum": 300,
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "description": "how long the consent lasts, 300-86400 s (default 86400)",
        +      "title": "Window Seconds"
        +    }
        +  },
        +  "title": "RematchBody",
        +  "type": "object"
        +}
      • addedInput schema / $defs / RequestBody / properties / rematch
        Added value: +{
        +  "anyOf": [
        +    {
        +      "$ref": "#/$defs/RematchBody"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "MACHINE speed only: allow automatic re-matching if a match on this request ends without delivery, within these bounds. A background match is escrowed from your wallet without a further call (one notice per escrow); market_request_rematch_withdraw ends it. Refused (409 rematch_consent_unavailable) until the live RAREEAI Terms carry the clause; 422 on human speed"
        +}
    • Addedmarket_request_rematch
    • Addedmarket_request_rematch_withdraw
  8. 1 tool update
    • Changedmarket_request1 field changed
      • addedInput schema / $defs / RequestBody / properties / provider_id
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "the listing to buy from: a provider id from market_listings (kind providers). The request then matches that listing only, never another one; unknown, inactive, your own, not offering what you ask for, or priced above max_price_per_unit is refused (404, with the reason). Leave it unset to buy from the open market (the cheapest fitting listing)",
        +  "title": "Provider Id"
        +}
  9. 1 tool update
    • Changedtrade_settlement1 field changed
      • addedOutput schema / properties / dispute
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "null = the trade was never disputed; else {open, opened_at, deadline (only while open: an unresolved dispute auto-refunds the buyer then), at_deadline, extended_until, extension_state (none | offer_pending | agreed | agreed_new_offer_pending), extension_offer ({by, until} | null), extend_route}",
        +  "title": "Dispute"
        +}
  10. 40 tool updates
    • Changedbilling_attempts2 fields changed
      • addedInput schema / properties / limit / description
        Added value: +"Maximum rows to return. 1-200. Default 50."
      • addedInput schema / properties / offset / description
        Added value: +"Rows to skip, for paging. Default 0."
    • Changedbilling_quote8 fields changed
      • addedInput schema / properties / as_of / description
        Added value: +"site.reconstruction date, YYYY-MM-DD."
      • addedInput schema / properties / entity_type / description
        Added value: +"Entity kind: deposit | infrastructure | company | project. Alternative to lat/lng for a site."
      • addedInput schema / properties / hops / description
        Added value: +"Graph depth for a relationships path (an agent key up to 10)."
      • addedInput schema / properties / id / description
        Added value: +"Entity id (with entity_type) for a site."
      • addedInput schema / properties / lat / description
        Added value: +"Latitude in decimal degrees, -90 to 90 (WGS84). For site.reconstruction: the site, so the quote names its tier."
      • addedInput schema / properties / lng / description
        Added value: +"Longitude in decimal degrees, -180 to 180 (WGS84)."
      • addedInput schema / properties / path / description
        Added value: +"The API path the call would hit, e.g. \"/api/v1/relationships\", \"/api/v1/look.from\", \"/api/v1/companies/{id}\", \"/api/v1/companies\", \"/api/v1/deposits\", \"/api/v1/site.reconstruction\"."
      • addedInput schema / properties / radius_m / description
        Added value: +"site.reconstruction square half-side in metres."
    • Changedcompany1 field changed
      • addedInput schema / properties / id / description
        Added value: +"The GreenlandAI company id: a whole number (known_companies.id, e.g. \"4334\"). Get it from `company_search` (by name), a `look_from` / `nearby` pin, a `relationships` row, or a deposit's `operators[]`. A merged-away id answers with the company it was merged into and says so in `merged`."
    • Addedcompany_search
    • Changedcontribute_receipts2 fields changed
      • addedInput schema / properties / limit / description
        Added value: +"Maximum rows to return. Default 50."
      • addedInput schema / properties / offset / description
        Added value: +"Rows to skip, for paging. Default 0."
    • Changedcontribute_relations2 fields changed
      • addedInput schema / properties / entities / description
        Added value: +"New entities proposed alongside a relation that references them; never accepted on their own."
      • addedInput schema / properties / relations / description
        Added value: +"The relationships to submit. Each item: subject, relation, object, source_url (a real http(s) page), quote (a verbatim passage of 15+ characters from that page stating it); optional subject_type, object_type."
    • Changedcontribute_submissions2 fields changed
      • addedInput schema / properties / limit / description
        Added value: +"Maximum rows to return. Default 50."
      • addedInput schema / properties / offset / description
        Added value: +"Rows to skip, for paging. Default 0."
    • Changeddeposit1 field changed
      • addedInput schema / properties / id / description
        Added value: +"The deposit's numeric id (from `deposits`, a pin, or a relationship row)."
    • Removeddeposit_status
    • Changeddeposits9 fields changed
      • addedInput schema / properties / commodity / description
        Added value: +"A commodity name, e.g. \"neodymium\". Filters by the commodity GRAPH: matches deposits that contain it directly or contain a group it belongs to (so neodymium returns every rare-earth deposit)."
      • addedInput schema / properties / country / description
        Added value: +"Country as an ISO code or a name."
      • addedInput schema / properties / limit / description
        Added value: +"Maximum rows to return. Up to 100. Default 50."
      • addedInput schema / properties / max_port_km / description
        Added value: +"Only deposits within this many km of a port."
      • addedInput schema / properties / offset / description
        Added value: +"Rows to skip, for paging. Default 0."
      • addedInput schema / properties / owner_country / description
        Added value: +"Country of the deposit's owners (their home states), ISO code or name."
      • addedInput schema / properties / resource_type / description
        Added value: +"The deposit's primary resource label (exact, case-insensitive)."
      • addedInput schema / properties / search / description
        Added value: +"Part of the deposit's name (substring)."
      • addedInput schema / properties / status / description
        Added value: +"Deposit status, e.g. operating, development, exploration."
    • Changedentity_change9 fields changed
      • addedInput schema / properties / entity_type / description
        Added value: +"Entity kind: deposit | infrastructure | company | project. With id; or pass lat + lng."
      • addedInput schema / properties / id / description
        Added value: +"The entity's numeric id (with entity_type)."
      • addedInput schema / properties / lat / description
        Added value: +"Latitude in decimal degrees, -90 to 90 (WGS84)."
      • addedInput schema / properties / lng / description
        Added value: +"Longitude in decimal degrees, -180 to 180 (WGS84)."
      • addedInput schema / properties / max_cloud / description
        Added value: +"Maximum cloud cover of a scene, 0-100 percent. Default 40."
      • addedInput schema / properties / radius_m / description
        Added value: +"Footprint radius in metres, 50-2500, overriding the site's held footprint (else a 500 m circle)."
      • addedInput schema / properties / same_season / description
        Added value: +"For spans of 300+ days, take the t0 frame at t1's day of year. Default true."
      • addedInput schema / properties / t0 / description
        Added value: +"The earlier date, YYYY-MM-DD, on or after 1984-03-16. Required."
      • addedInput schema / properties / t1 / description
        Added value: +"The later date, YYYY-MM-DD. Default today."
    • Changedentity_history2 fields changed
      • addedInput schema / properties / entity_type / description
        Added value: +"Entity kind: deposit | infrastructure | company | project. Required."
      • addedInput schema / properties / id / description
        Added value: +"The entity's numeric id. Required."
    • Changedentity_state5 fields changed
      • addedInput schema / properties / as_of / description
        Added value: +"The date of the packet, YYYY-MM-DD. Default today."
      • addedInput schema / properties / entity_type / description
        Added value: +"Entity kind: deposit | infrastructure | company | project. Required."
      • addedInput schema / properties / id / description
        Added value: +"The entity's numeric id. Required."
      • addedInput schema / properties / max_cloud / description
        Added value: +"Maximum cloud cover of a scene, 0-100 percent. For the still. Default 20."
      • addedInput schema / properties / radius_km / description
        Added value: +"Radius for the nearby pins, in km. Default 25."
    • Changedfunding_prepare1 field changed
      • addedInput schema / properties / needed / description
        Added value: +"The joules you are short (the shortfall from joules_deficit or a 402). Default 0."
    • Addedfunding_status
    • Removedhops
    • Changedjoules_balance3 fields changed
      • addedInput schema / properties / wallet_id / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / wallet_id / description
        Added value: +"Wallet id (UUID) to read — needed for a JoulePAI (jlp_) or ENYAL (eyl_) credential; not needed with a GreenlandAI agent key (gai_/gqa_), which reads its own wallet."
      • removedInput schema / properties / wallet_id / type
        Removed value: -"string"
    • Changedjoules_deficit4 fields changed
      • addedInput schema / properties / cost / description
        Added value: +"The joules the next call will cost (its joules_all_in from billing_quote)."
      • addedInput schema / properties / wallet_id / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / wallet_id / description
        Added value: +"Wallet to read (UUID); omit to use your own. Not used with a GreenlandAI agent key."
      • removedInput schema / properties / wallet_id / type
        Removed value: -"string"
    • Changedlook_at6 fields changed
      • addedInput schema / properties / as_of / description
        Added value: +"Newest scene on or before this date, YYYY-MM-DD. Default: the newest scene."
      • addedInput schema / properties / entity_type / description
        Added value: +"Entity kind: deposit | infrastructure | company | project. With `id`, anchors the still on that entity."
      • addedInput schema / properties / id / description
        Added value: +"Entity id to anchor on (with entity_type)."
      • addedInput schema / properties / lat / description
        Added value: +"Latitude in decimal degrees, -90 to 90 (WGS84). Use with lng, or pose on an entity instead."
      • addedInput schema / properties / lng / description
        Added value: +"Longitude in decimal degrees, -180 to 180 (WGS84)."
      • addedInput schema / properties / max_cloud / description
        Added value: +"Maximum cloud cover of a scene, 0-100 percent. Default 20."
    • Changedlook_from7 fields changed
      • addedInput schema / properties / energy / description
        Added value: +"Include energy-fleet infrastructure (power plants and grid assets). Default false."
      • addedInput schema / properties / entity_type / description
        Added value: +"Entity kind: deposit | infrastructure | company | project. Alone (with lat/lng) it FILTERS the frame to that type; with `id` it ANCHORS the pose on that entity and keeps all types."
      • addedInput schema / properties / id / description
        Added value: +"Entity id to anchor the pose on (with entity_type)."
      • addedInput schema / properties / include_country_centroids / description
        Added value: +"Also return country-centre placeholder pins (entities known only by country). Default false."
      • addedInput schema / properties / lat / description
        Added value: +"Latitude in decimal degrees, -90 to 90 (WGS84). Use with lng, or pose on an entity instead."
      • addedInput schema / properties / lng / description
        Added value: +"Longitude in decimal degrees, -180 to 180 (WGS84)."
      • addedInput schema / properties / radius_km / description
        Added value: +"Search radius around the pose, in km. Default 100."
    • Changedlook_through8 fields changed
      • addedInput schema / properties / entity_type / description
        Added value: +"Entity kind: deposit | infrastructure | company | project."
      • addedInput schema / properties / id / description
        Added value: +"Entity id to anchor on (with entity_type)."
      • addedInput schema / properties / lat / description
        Added value: +"Latitude in decimal degrees, -90 to 90 (WGS84)."
      • addedInput schema / properties / lng / description
        Added value: +"Longitude in decimal degrees, -180 to 180 (WGS84)."
      • addedInput schema / properties / max_cloud / description
        Added value: +"Maximum cloud cover of a scene, 0-100 percent. Default 20."
      • addedInput schema / properties / max_frames / description
        Added value: +"How many equal windows to cut the range into, 1-12; one still per window. Default 6."
      • addedInput schema / properties / t0 / description
        Added value: +"Start of the date range, YYYY-MM-DD, on or after 2015-06-23. Required."
      • addedInput schema / properties / t1 / description
        Added value: +"End of the date range, YYYY-MM-DD. Default today."
    • Changedmap_viewport7 fields changed
      • addedInput schema / properties / energy / description
        Added value: +"Include energy-fleet infrastructure and projects. Default false."
      • addedInput schema / properties / entity_type / description
        Added value: +"Entity kind: deposit | infrastructure | company | project. Default all four."
      • addedInput schema / properties / include_country_centroids / description
        Added value: +"Also return country-centre placeholder pins (entities known only by country). Default false."
      • addedInput schema / properties / max_lat / description
        Added value: +"North edge of the bounding box (latitude)."
      • addedInput schema / properties / max_lng / description
        Added value: +"East edge of the bounding box (longitude)."
      • addedInput schema / properties / min_lat / description
        Added value: +"South edge of the bounding box (latitude). Send all four edges together."
      • addedInput schema / properties / min_lng / description
        Added value: +"West edge of the bounding box (longitude)."
    • Removedmapdata
    • Changedmarket_accept2 fields changed
      • addedInput schema / properties / idempotency_key / description
        Added value: +"Your own opaque key: the same key accepts once, never twice."
      • addedInput schema / properties / match_id / description
        Added value: +"The marketplace match id (UUID). You must be its buyer."
    • Changedmarket_listings14 fields changed
      • addedInput schema / properties / active / description
        Added value: +"Only active listings. Default true."
      • addedInput schema / properties / frontier / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / frontier / description
        Added value: +"Listings in this frontier only (providers)."
      • removedInput schema / properties / frontier / type
        Removed value: -"string"
      • addedInput schema / properties / kind / description
        Added value: +"\"providers\" (marketplace listings) or \"oracles\". Default providers."
      • addedInput schema / properties / limit / description
        Added value: +"Maximum rows to return. Up to 200. Default 50."
      • addedInput schema / properties / offset / description
        Added value: +"Rows to skip, for paging. Default 0."
      • addedInput schema / properties / oracle_verified / anyOf
        Added value: +[
        +  {
        +    "type": "boolean"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / oracle_verified / description
        Added value: +"Only providers that opted in to oracle verification (true) or did not (false)."
      • removedInput schema / properties / oracle_verified / type
        Removed value: -"boolean"
      • addedInput schema / properties / resource_type / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / resource_type / description
        Added value: +"Listings of this resource type only (providers)."
      • removedInput schema / properties / resource_type / type
        Removed value: -"string"
      • addedInput schema / properties / sort / description
        Added value: +"Sort order, e.g. price_asc (default) or price_desc."
    • Changedmarket_match1 field changed
      • addedInput schema / properties / match_id / description
        Added value: +"The marketplace match id (UUID). You must be a party to it."
    • Changedmarket_provide16 fields changed
      • addedInput schema / $defs / ProvideBody / properties / capacity_total / description
        Added value: +"total units you can supply"
      • addedInput schema / $defs / ProvideBody / properties / endpoint_url / description
        Added value: +"where buyers reach your service"
      • addedInput schema / $defs / ProvideBody / properties / frontier / description
        Added value: +"the marketplace frontier the listing is in"
      • addedInput schema / $defs / ProvideBody / properties / idempotency_key / description
        Added value: +"your own opaque key: the same key and body is one listing change, never two"
      • addedInput schema / $defs / ProvideBody / properties / max_units_per_match / description
        Added value: +"the largest single match, in units"
      • addedInput schema / $defs / ProvideBody / properties / min_units / description
        Added value: +"the smallest match you accept, in units"
      • addedInput schema / $defs / ProvideBody / properties / price_joules_per_unit / description
        Added value: +"your price in joules per unit, a whole number >= 0"
      • addedInput schema / $defs / ProvideBody / properties / resource_type / description
        Added value: +"the resource type you sell"
      • addedInput schema / $defs / ProvideBody / properties / sla / description
        Added value: +"your service-level terms, as a JSON object"
      • addedInput schema / $defs / ProvideBody / properties / speed / description
        Added value: +"delivery speed class, per the RAREEAI docs"
      • addedInput schema / $defs / ProvideBody / properties / stake_amount / description
        Added value: +"joules you stake on the listing"
      • addedInput schema / $defs / ProvideBody / properties / timeout_hours / description
        Added value: +"delivery deadline in hours (or use timeout_minutes)"
      • addedInput schema / $defs / ProvideBody / properties / timeout_minutes / description
        Added value: +"delivery deadline in minutes (or use timeout_hours)"
      • addedInput schema / $defs / ProvideBody / properties / unit_type / description
        Added value: +"the unit the price is per"
      • addedInput schema / $defs / ProvideBody / properties / wallet_id / description
        Added value: +"your wallet UUID: it pays the registration fee and receives payouts"
      • addedInput schema / properties / body / description
        Added value: +"The listing; each field is described in its schema."
    • Changedmarket_quote1 field changed
      • addedInput schema / properties / request_id / description
        Added value: +"The marketplace REQUEST id (UUID) you posted with `market_request`."
    • Changedmarket_request18 fields changed
      • addedInput schema / $defs / PhysicalClaimBody / properties / radius_m / description
        Added value: +"the site's radius in metres, 50-2500"
      • addedInput schema / $defs / PhysicalClaimBody / properties / site_entity_id / description
        Added value: +"that entity's id"
      • addedInput schema / $defs / PhysicalClaimBody / properties / site_entity_type / description
        Added value: +"the GreenlandAI entity at the site, if any"
      • addedInput schema / $defs / PhysicalClaimBody / properties / site_lat / description
        Added value: +"the site's latitude, decimal degrees"
      • addedInput schema / $defs / PhysicalClaimBody / properties / site_lng / description
        Added value: +"the site's longitude, decimal degrees"
      • addedInput schema / $defs / RequestBody / properties / frontier / description
        Added value: +"the marketplace frontier to buy in"
      • addedInput schema / $defs / RequestBody / properties / idempotency_key / description
        Added value: +"your own opaque key: the same key and body is one request, never two"
      • addedInput schema / $defs / RequestBody / properties / max_price_per_unit / description
        Added value: +"the most you pay per unit, in joules, a whole number > 0"
      • addedInput schema / $defs / RequestBody / properties / priority / description
        Added value: +"matching priority, per the RAREEAI docs"
      • addedInput schema / $defs / RequestBody / properties / privacy_mode / description
        Added value: +"the request's privacy mode, per the RAREEAI docs"
      • addedInput schema / $defs / RequestBody / properties / requirements / description
        Added value: +"extra requirements for providers, as a JSON object"
      • addedInput schema / $defs / RequestBody / properties / resource_type / description
        Added value: +"what you want to buy; scene_stack, change_report, site_reconstruction and satellite_imagery need physical_claim"
      • addedInput schema / $defs / RequestBody / properties / speed / description
        Added value: +"the delivery speed class you want, per the RAREEAI docs"
      • addedInput schema / $defs / RequestBody / properties / ttl_seconds / description
        Added value: +"seconds until the request expires unmatched"
      • addedInput schema / $defs / RequestBody / properties / unit_type / description
        Added value: +"the unit you buy in (the provider's unit_type)"
      • addedInput schema / $defs / RequestBody / properties / units_needed / description
        Added value: +"how many units, a whole number > 0"
      • addedInput schema / $defs / RequestBody / properties / wallet_id / description
        Added value: +"your wallet UUID: it pays the escrow when the request matches"
      • addedInput schema / properties / body / description
        Added value: +"The buy request; each field is described in its schema."
    • Changednearby8 fields changed
      • addedInput schema / properties / entity_type / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / entity_type / description
        Added value: +"Entity kind: deposit | infrastructure | company | project. Optional filter; default all four."
      • removedInput schema / properties / entity_type / type
        Removed value: -"string"
      • addedInput schema / properties / include_country_centroids / description
        Added value: +"Also return country-centre placeholder pins (entities known only by country). Default false."
      • addedInput schema / properties / lat / description
        Added value: +"Latitude in decimal degrees, -90 to 90 (WGS84). Required."
      • addedInput schema / properties / limit / description
        Added value: +"Maximum rows to return. Up to 100. Default 20."
      • addedInput schema / properties / lng / description
        Added value: +"Longitude in decimal degrees, -180 to 180 (WGS84). Required."
      • addedInput schema / properties / radius_km / description
        Added value: +"Search radius in km. Default 100."
    • Changedoracle_assess6 fields changed
      • addedInput schema / $defs / OracleAssessBody / properties / execution_trace / description
        Added value: +"how you verified the delivery, as a JSON object"
      • addedInput schema / $defs / OracleAssessBody / properties / notes / description
        Added value: +"your reasons, up to 2,000 characters"
      • addedInput schema / $defs / OracleAssessBody / properties / quality_score / description
        Added value: +"0-100; below 40 opens a dispute automatically"
      • addedInput schema / $defs / OracleAssessBody / properties / verdict / description
        Added value: +"valid or invalid: was the delivery what was bought"
      • addedInput schema / properties / body / description
        Added value: +"Your verdict; each field is described in its schema."
      • addedInput schema / properties / match_id / description
        Added value: +"The marketplace match id (UUID). One you are assigned to assess."
    • Changedoracle_assignments4 fields changed
      • addedInput schema / properties / limit / description
        Added value: +"Maximum rows to return. 1-200. Default 50."
      • addedInput schema / properties / status / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / status / description
        Added value: +"Only assignments in this status."
      • removedInput schema / properties / status / type
        Removed value: -"string"
    • Changedoracle_deregister1 field changed
      • addedInput schema / properties / wallet_id / description
        Added value: +"Your oracle wallet's UUID (the one that holds the stake)."
    • Changedoracle_register4 fields changed
      • addedInput schema / $defs / OracleRegisterBody / properties / specialisations / description
        Added value: +"1 to 7 values from exactly: code, translation, data, general, content, research, infrastructure"
      • addedInput schema / $defs / OracleRegisterBody / properties / stake_amount / description
        Added value: +"joules to stake, at least 10,000; refundable on deregister"
      • addedInput schema / $defs / OracleRegisterBody / properties / wallet_id / description
        Added value: +"your wallet UUID: it holds the stake"
      • addedInput schema / properties / body / description
        Added value: +"The registration; each field is described in its schema."
    • Changedplace_index11 fields changed
      • addedInput schema / properties / entity_type / description
        Added value: +"Entity kind: deposit | infrastructure | company | project. With id, centres on that entity's site."
      • addedInput schema / properties / entity_types / description
        Added value: +"Comma list of entity kinds to include (deposit, infrastructure, company, project)."
      • addedInput schema / properties / from_date / description
        Added value: +"Only rows valid on or after this date, YYYY-MM-DD."
      • addedInput schema / properties / id / description
        Added value: +"The entity's numeric id (with entity_type)."
      • addedInput schema / properties / kinds / description
        Added value: +"Comma list of row kinds: still, quote, verdict, match, measurement."
      • addedInput schema / properties / lat / description
        Added value: +"Latitude in decimal degrees, -90 to 90 (WGS84). With lng; or name an entity."
      • addedInput schema / properties / limit / description
        Added value: +"Maximum rows to return. 1-500. Default 100."
      • addedInput schema / properties / lng / description
        Added value: +"Longitude in decimal degrees, -180 to 180 (WGS84)."
      • addedInput schema / properties / offset / description
        Added value: +"Rows to skip, for paging. Default 0."
      • addedInput schema / properties / radius_km / description
        Added value: +"Radius in km, up to 50. Default 2."
      • addedInput schema / properties / to_date / description
        Added value: +"Only rows valid on or before this date, YYYY-MM-DD."
    • Changedrelationships21 fields changed
      • addedInput schema / properties / as_of / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / as_of / description
        Added value: +"Answer for a past date: YYYY-MM-DD or a UTC datetime. Needs one start entity; a future date is a 400, not charged."
      • removedInput schema / properties / as_of / type
        Removed value: -"string"
      • addedInput schema / properties / entity / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / entity / description
        Added value: +"Start entity by NAME: an exact (case-insensitive) match, else a name that contains it. A name matching several entities is a 409 listing candidates."
      • removedInput schema / properties / entity / type
        Removed value: -"string"
      • addedInput schema / properties / entity_id / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / entity_id / description
        Added value: +"The start entity's numeric id (with entity_type) — the unambiguous way to name it."
      • removedInput schema / properties / entity_id / type
        Removed value: -"string"
      • addedInput schema / properties / entity_type / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / entity_type / description
        Added value: +"Entity kind: deposit | infrastructure | company | project. Pins the start node with entity_id."
      • removedInput schema / properties / entity_type / type
        Removed value: -"string"
      • addedInput schema / properties / hops / description
        Added value: +"Traversal depth, 1-10 (agent keys). Default 1. The billing unit: priced per hop."
      • addedInput schema / properties / limit / description
        Added value: +"Maximum edges to return, up to 100. Default 50."
      • addedInput schema / properties / offset / description
        Added value: +"Rows to skip, for paging. Default 0."
      • addedInput schema / properties / relation_type / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / relation_type / description
        Added value: +"Only edges with this relation label, e.g. OPERATES, CONTAINS, MEMBER_OF. Checked against the allowed set: an unknown label is a 400 before any charge."
      • removedInput schema / properties / relation_type / type
        Removed value: -"string"
      • addedInput schema / properties / search / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / search / description
        Added value: +"Free-text filter over edge text."
      • removedInput schema / properties / search / type
        Removed value: -"string"
    • Changedsite_reconstruction7 fields changed
      • addedInput schema / properties / as_of / description
        Added value: +"Pick the lidar collection and texture nearest this date, YYYY-MM-DD."
      • addedInput schema / properties / entity_type / description
        Added value: +"Entity kind: deposit | infrastructure | company | project. With id; or pass lat + lng."
      • addedInput schema / properties / id / description
        Added value: +"The entity's numeric id (with entity_type)."
      • addedInput schema / properties / include_model / description
        Added value: +"Also return the binary glTF model as model_glb_base64 (a lidar model is about 5 MB as base64). Default false: the card only."
      • addedInput schema / properties / lat / description
        Added value: +"Latitude in decimal degrees, -90 to 90 (WGS84)."
      • addedInput schema / properties / lng / description
        Added value: +"Longitude in decimal degrees, -180 to 180 (WGS84)."
      • addedInput schema / properties / radius_m / description
        Added value: +"Half the square's side, in metres, 100-1000. Default 300."
    • Changedtrade_settlement1 field changed
      • addedInput schema / properties / match_id / description
        Added value: +"The marketplace match id (UUID). You must have been its buyer or seller."
    • Changedverify_proof1 field changed
      • addedInput schema / properties / identifier / description
        Added value: +"The id to look up: a chunk_id, proof_id, match_id or transfer id (UUID), or a BSV transaction id (64 hex)."
    • Changedwallet_transfer9 fields changed
      • addedInput schema / $defs / TransferBody / properties / amount / description
        Added value: +"joules to send, a whole number > 0 (the transfer fee is charged to the sender on top)"
      • addedInput schema / $defs / TransferBody / properties / idempotency_key / description
        Added value: +"your own opaque key, 1-128 characters: the same key and body is one transfer, never two. Never use a settlement-shaped key (release|refund|dispute_release|dispute_split:<match_id>:…) — those are refused"
      • addedInput schema / $defs / TransferBody / properties / include_proof / description
        Added value: +"also return the transfer's proof in the response"
      • addedInput schema / $defs / TransferBody / properties / note / description
        Added value: +"a note recorded with the transfer, up to 500 characters"
      • addedInput schema / $defs / TransferBody / properties / platform / description
        Added value: +"the platform the transfer is made for, recorded on the transfer"
      • addedInput schema / $defs / TransferBody / properties / privacy_mode / description
        Added value: +"the transfer's privacy mode, per the JoulePAI docs"
      • addedInput schema / $defs / TransferBody / properties / to_handle / description
        Added value: +"recipient handle instead of a wallet id"
      • addedInput schema / $defs / TransferBody / properties / to_wallet_id / description
        Added value: +"recipient wallet UUID; send this or to_handle"
      • addedInput schema / properties / body / description
        Added value: +"The transfer; each field is described in its schema."

Publisher details

Operator
Greenland AI Limited
Operator website
https://greenlandai.ai
Vendor relationship
First-party
Trust center
Unknown
Restrictions
Unknown

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Enables AI agents to investigate corporate ownership, trace ultimate beneficial owners, screen sanctions, detect offshore exposure, and access fully cited dossiers from 130M+ entities across 31 global registries.
    21
    96 npm
    1
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Query 20 structured datasets from AI agents — healthcare providers (9M NPI records), SEC EDGAR filings, PACER federal courts, USPTO patents and trademarks, OFAC sanctions screening, crypto whale wallets, DeFi liquidation signals, Polymarket smart money, economic indicators (FRED/BLS), federal contracts, NOAA weather, and OTC shell risk scoring. Pay per query, no subscriptions
    75
    1
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    100+ agent-payable C-suite expertises with x402 micro-payments — competitive intel, SEC filings, sanctions, KYC, clinical evidence, real estate, ESG. 183 tools, free tier 100 calls/month.
    1
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources