Geode
Server Details
Use the Geode blockchain's apps: marketplace, social, surveys, messaging, DNS and GEODE transfers.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 138 tools
Tools are largely distinguishable by domain prefix and verb, and detailed descriptions clarify read-only vs write and signature requirements. Yet some clusters are confusable without careful reading: multiple survey variants (_1/_3/_5), six seller-order status views, paid vs private messaging, and account/profile tools across subdomains.
All names use snake_case with a consistent geode_<domain>_<action> prefix, which is highly predictable. However, action phrasing varies (add_a_product, make_a_new_survey_1, send_message_public, prepare, build, status), and articles (a, an, the) are used inconsistently, preventing a perfect score.
138 tools far exceeds the 3-15 sweet spot; even for a multi-app blockchain platform, this is an extreme mismatch. The surface should be split into domain-specific servers to remain usable.
The surface covers extensive lifecycle operations across many subdomains (market, messaging, social, surveys, DNS, exchange, profile), with create/update/delete and read counterparts in most areas. Minor gaps remain, such as no delete for profiles, Life and Work claims, or exchange listings, and no generic chain-level query beyond the provided account and intent tools.
Available Tools
138 toolsgeode_accept_termsAccept the Terms of UseAInspect
Record your signed acceptance of the current Terms of Use (required once per Terms version, before your first write). Produce the signature with geode-local-signer accept_terms.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| signature | Yes | Signature from geode-local-signer accept_terms | |
| timestamp | Yes | ISO 8601 timestamp that was signed (from accept_terms) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say non-read-only and non-destructive; the description adds the crucial flow: signature must be generated offline by geode-local-signer and the call is gated per Terms version. It doesn't say what the tool returns on success or what happens if the version already matches, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the precondition/gating rule first, the signing dependency second. Nothing redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-param write tool with full schema docs and annotations, the description covers the essential workflow (offline signing, per-version gating). Minor gap: no mention of success/failure behavior or what to do if the terms version has changed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%; each field is documented identically in the schema (SS58 signer address, signature from the signer, ISO 8601 signed timestamp). The description restates the same information rather than adding format or edge-case detail, so baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action — recording a signed Terms-of-Use acceptance — with the exact precondition (once per Terms version, before first write) and the tool that produces the signature. Unambiguously distinct from every sibling tool in the list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear triggering condition ('required once per Terms version, before your first write') and names the prerequisite tool geode-local-signer accept_terms. No explicit exclusions or alternative paths are stated, 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.
geode_account_infoAccount infoARead-onlyInspect
Read-only: whether an address exists on-chain, its free/reserved/frozen balance, the existential deposit (minimum balance), and its nonce.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Geode account address (SS58) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description leads with 'Read-only', reinforcing annotations and telling the agent the call is safe. It adds that it reports the existential deposit and nonce, which goes beyond generic readOnly/destructive hints. It does not cover failure behavior for nonexistent addresses beyond 'whether an address exists'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the read-only safety marker, then a compact enumeration of return fields. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter read tool with no output schema, the description lists the key return values, which is the main missing piece. It does not explain how a nonexistent address is represented, a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is only one parameter, and the schema fully documents it (SS58 address). The description adds no format or validation details 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (an address's on-chain state) and enumerates exactly what is returned: existence, free/reserved/frozen balance, existential deposit, nonce. No sibling tool overlaps this purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (reading account state) but does not state when to use this versus related tools like geode_profile_get_account_profile or geode_messaging_get_account_settings_data, nor any prerequisites. Usage is inferable but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_agent_statusAgent statusARead-onlyInspect
Read-only: the current Terms of Use (and whether an address has accepted them), the spending caps, and the address's pending intents.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Account address (SS58) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered and the bar is lower. The description nonetheless adds substantive context by disclosing the composite return payload (ToU acceptance state, spending caps, pending intents), which matters because there is no output schema. It omits auth requirements, but for a read-only status call that is a minor gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence that front-loads the read-only nature and then lists the three returned components. The 'Read-only:' prefix slightly duplicates the readOnlyHint annotation, but the sentence is otherwise waste-free.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must carry the return-value burden, and it does enumerate the three payload categories an agent needs to know. It stops short of describing format or detail level of those categories, which is a modest gap for a composite status tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single parameter with 100% schema description coverage ('Account address (SS58)'), so the schema fully documents it. The description adds no additional meaning about the address argument, making the baseline 3 correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (agent status) and enumerates its components: Terms of Use acceptance, spending caps, and pending intents. This is far more informative than the bare title 'Agent status'. It does not, however, differentiate itself from the adjacent geode_account_info or geode_get_intent siblings, leaving the boundary to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states what is returned but gives no when-to-use guidance, no prerequisites, and no alternatives. It never mentions geode_accept_terms (the write counterpart for the Terms of Use it reports on) or geode_get_intent (which retrieves a single intent), so the agent must guess which of these to call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_balances_transferSend GEODEADestructiveInspect
Send GEODE from signer to another account (keep-alive transfer: your account can never be emptied below the minimum balance). Irreversible, so the first call returns a confirm_token and the real cost; call again with it to get the intent. Sign with geode-local-signer, restating the recipient and amount in expect, then submit with geode_submit_intent. Sending to a new address creates that account (at least 1 GEODE). Counts toward the per-transaction and rolling 24-hour caps.
| Name | Required | Description | Default |
|---|---|---|---|
| dest | Yes | Recipient account address (SS58) | |
| amount | Yes | Amount in GEODE as a decimal string (e.g. "1.25"), or {"raw": "<planck>"} | |
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| confirm_token | No | Token from the first call |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructive/openWorld/not-readOnly, but the description adds substantially more: irreversible, keep-alive so the account can never be emptied below minimum balance, two-phase confirmation with a confirm_token, account creation on send to a new address, and rate-cap exposure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded and every clause carries operational meaning; there is little filler. The single dense paragraph packs the two-step flow, signing step, and caps into one wall of text, which slightly hurts scanability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly explains what the first call returns (confirm_token and real cost) and what to do next, plus constraints. It does not cover confirm_token expiry or mismatch behavior, which matters for an irreversible transfer, but the core flow is adequately documented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents signer, dest, amount, and confirm_token; the description adds lifecycle context for confirm_token (returned by first call, reused on second). However, it introduces '`expect`' — a field of geode-local-signer, not of this tool's schema — which could mislead an agent into passing an unsupported parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb+resource: 'Send GEODE from `signer` to another account', and immediately qualifies it with keep-alive semantics. It is clearly distinguishable from siblings such as geode_submit_intent, which it names as the final step rather than a competitor.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Lays out the exact operating procedure: first call returns confirm_token and real cost, second call retrieves the intent, sign with geode-local-signer, then submit with geode_submit_intent. It also states the new-address minimum (1 GEODE) and that this counts toward per-transaction and 24-hour caps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_dns_get_addressDNS: get addressARead-onlyInspect
Look up the account address a Geode DNS name points to. Read-only; no signature. Optional caller: the account whose view to read (for caller-dependent results).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| caller | No | Optional account address (SS58) to run the query as |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered; the description adds genuinely new context by stating no signature is required and that results can be caller-dependent. It does not describe failure behavior for unresolvable names or the return shape, keeping it 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose, then two short supporting clauses — no wasted sentences. The 'Read-only' fragment mildly duplicates readOnlyHint, though 'no signature' keeps the clause from being purely redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter, fully documented read tool with no output schema, the description covers what it returns at a high level ('the account address') and the meaning of both parameters. Missing only edge behavior, such as what happens when the name is unregistered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, and the description earns an extra point by explaining the *purpose* of `caller` ('the account whose view to read (for caller-dependent results)'), which goes beyond the schema's terse 'optional account address (SS58) to run the query as'. `name` is left to the schema, which documents it well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Look up the account address a Geode DNS name points to.' This is distinct from the sibling geode_dns_get_owner (which returns an owner) and geode_dns_set_address (a write), though neither sibling is named explicitly, so the agent must infer the routing from the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied — use this to resolve a name to the address it points to — but there is no explicit when-to-use, when-not-to-use, or pointer to the nearest alternative (geode_dns_get_owner vs geode_dns_set_address). The caller hint gives partial context for when to pass a caller, but not when to pick this tool over a sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_dns_get_ownerDNS: get ownerARead-onlyInspect
Look up the account that owns a Geode DNS name. Read-only; no signature. Optional caller: the account whose view to read (for caller-dependent results).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| caller | No | Optional account address (SS58) to run the query as |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and destructiveHint=false, so 'Read-only' is partly redundant. However, 'no signature' discloses the authentication/signing requirement and the caller clause notes that results may be caller-dependent, adding behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the core purpose, with the read-only caveat and the caller explanation following. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter lookup with no output schema, the description conveys what is returned (the owning account) and the caller semantics. It stops short of describing the return shape or the not-found case, but nothing critical for calling it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds a conceptual detail for `caller` not present in the schema ('the account whose view to read (for caller-dependent results)'), clarifying why the optional parameter changes output.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (look up) and resource (the account that owns a Geode DNS name), which is clearly distinguishable in meaning from sibling geode_dns_get_address. It does not explicitly name a sibling to route against, but the 'owner' framing is specific enough that an agent can tell what it returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives some context ('Read-only; no signature') but never states when to use this versus geode_dns_get_address or the mutation siblings (register/set_address/transfer). Usage is only implied by the read-only lookup framing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_dns_registerDNS: registerAInspect
Register a Geode DNS name to signer. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (which only flag readOnly=false, destructive=false, openWorld=true), the description discloses the critical two-phase behavior: it writes an unsigned transaction and 'nothing happens until you sign it.' This is exactly the kind of non-obvious behavioral trait the annotations cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste, with the core action front-loaded and the deferred-signing 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description adequately explains the two-step intent flow and the external signing requirement. It could note what the returned intent looks like or any name-uniqueness/ownership prerequisites, but the essential invocation path is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters (name, signer) are already fully documented in the schema. The description restates that the transaction is prepared for `signer` but adds no format or constraint detail beyond what the schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Register a Geode DNS name') bound to `signer`, which is more precise than the title alone. It does not explicitly differentiate from DNS siblings like geode_dns_set_address or geode_dns_transfer, so the agent must infer the distinction from the action verb.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear workflow context: this prepares an intent that must then be signed with geode-local-signer and submitted via geode_submit_intent, explicitly naming the follow-up tool. It stops short of stating when-not to use it or how it differs from the other DNS mutation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_dns_set_addressDNS: set addressAInspect
Point a DNS name you own at an account address. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| new_address | Yes | Geode account address (SS58) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, but the description adds substantial non-obvious behavior: it writes to the chain, produces only an unsigned intent, and has no effect until signed and submitted. It omits ownership/permission requirements and any error conditions, keeping it from 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste: the purpose is front-loaded, and the second sentence carries only the essential two-step intent workflow. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema and full schema coverage, the description supplies the crucial intent/sign/submit lifecycle and the ownership precondition. It could note what the returned intent contains or error cases, but an agent has enough to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents signer, name, and new_address with SS58 format and byte constraints. The description implies the ownership precondition ("a DNS name you own") but adds no syntax or format 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: "Point a DNS name you own at an account address." This clearly distinguishes a DNS-mapping mutation from read siblings like geode_dns_get_address and from geode_dns_register/geode_dns_transfer, though it doesn't explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains the operational context clearly: it prepares an unsigned intent that must be signed with geode-local-signer and submitted with geode_submit_intent. This tells the agent what to do next, but it does not explicitly state when to prefer this over geode_dns_register or geode_dns_transfer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_dns_transferDNS: transferADestructiveInspect
Transfer ownership of a DNS name you own to another account. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent. Irreversible: the first call returns a confirm_token; call again with it to proceed.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| new_owner | Yes | Geode account address (SS58) | |
| confirm_token | No | Token from the first call, to confirm this irreversible action |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds rich behavioral context beyond annotations: writes to the chain, prepares an unsigned intent, requires external signing, is irreversible, and details the two-call confirmation flow with confirm_token. Fully consistent with annotations (readOnlyHint=false, destructiveHint=true, openWorldHint=true).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose, then workflow, then irreversibility warning. Every sentence contributes essential information without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a destructive, open-world mutation with no output schema, the description covers the full lifecycle: intent creation, external signing, submission, and the two-step confirmation. Nothing critical is missing for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema descriptions for signer, name, new_owner, and confirm_token are already detailed. The description adds no significant meaning beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Transfer ownership of a DNS name you own to another account.' Clearly distinguishes from siblings like geode_dns_register and geode_dns_set_address.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides the necessary workflow context: 'this prepares an unsigned transaction (an intent) for `signer`; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.' Also explains the two-step confirm_token process. Does not explicitly exclude alternatives, but the transfer action is unique among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_exchange_browse_all_listingsExchange: browse all listingsARead-onlyInspect
Browse all public listings on the Geode private coin exchange (offer coin, asking coin, price, payment method, inventory, location). Read-only; no signature. Optional caller: the account whose view to read (for caller-dependent results). Results are paginated with offset and limit (default 50, max 200).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Items to return (default 50, max 200) | |
| caller | No | Optional account address (SS58) to run the query as | |
| offset | No | Items to skip (default 0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, destructiveHint, openWorldHint), so the bar is lower. The description still adds useful context beyond them: 'no signature' discloses that no authentication is required, and it describes pagination behavior with offset/limit defaults.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences, front-loaded with the resource and scope before parameters and pagination. Every clause carries information; nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a paginated read-only list tool with annotations covering safety and a fully documented schema, this is nearly complete: it names returned fields, auth requirements, and pagination. It lacks any note on ordering or default filters, which keeps it short of a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; limit and offset are merely restated. However, the description adds real meaning for `caller` ('the account whose view to read (for caller-dependent results)') beyond the schema's terse 'account address to run the query as'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Browse) and resource (all public listings on the Geode coin exchange), and even enumerates the returned fields (offer coin, asking coin, price, payment method, inventory, location). The word 'public' and 'all' distinguishes it from the sibling geode_exchange_view_my_listings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied by 'all public listings' and 'read-only; no signature', but the description never names alternatives such as geode_exchange_view_my_listings or explains when an agent should choose this over them. No explicit when/when-not guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_exchange_edit_listingExchange: edit listingAInspect
Edit one of your exchange listings (price, method, inventory, location) or hide it. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| city | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| hide | Yes | ||
| price | Yes | Amount in GEODE as a decimal string (e.g. "1.25"), or {"raw": "<planck>"} | |
| method | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| country | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| inventory | Yes | Amount in GEODE as a decimal string (e.g. "1.25"), or {"raw": "<planck>"} | |
| listing_id | Yes | 0x-prefixed 32-byte hex id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: it discloses that this writes to the chain but only as an unsigned transaction (intent) for `signer`, and that nothing takes effect until external signing and submission. This is critical behavior an agent could not infer from readOnlyHint=false / destructiveHint=false alone, and it also notes hide as an option.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero waste: the first front-loads purpose and scope, the second delivers the essential intent/signing behavior. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description covers the key complexity (intent-based write flow) and the annotations cover the safety profile. Params are well covered by the schema. It is essentially complete, though it does not clarify that all eight params are mandatory.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 88%, so the schema already documents nearly every parameter. The description only loosely maps its field list (price, method, inventory, location) to the params without adding format or constraint detail beyond the schema. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (edit) and resource (one of your exchange listings) and enumerates the editable fields (price, method, inventory, location) plus the hide option. The scope 'one of your' implicitly separates it from geode_exchange_new_listing, but 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It describes the two-step intent flow (sign with geode-local-signer, submit with geode_submit_intent), which is genuine usage context. However, it gives no explicit when-to-use-vs-alternative guidance relative to siblings like geode_exchange_new_listing or geode_exchange_view_my_listings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_exchange_new_listingExchange: new listingAInspect
Create a listing on the Geode private coin exchange: the coin you offer, the coin you want, price, payment method, inventory and location. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| city | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| price | Yes | Amount in GEODE as a decimal string (e.g. "1.25"), or {"raw": "<planck>"} | |
| method | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| country | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| inventory | Yes | Amount in GEODE as a decimal string (e.g. "1.25"), or {"raw": "<planck>"} | |
| offer_coin | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| asking_coin | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already declaring readOnlyHint=false and openWorldHint=true, the description adds substantial value by explaining the write model: it writes to the chain and produces an unsigned transaction (intent) that does nothing until signed and submitted. This intent/sign/submit flow is exactly the kind of behavioral detail 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose and then the critical transactional behavior, with no wasted words. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-output-schema mutation tool, the description covers both the input intent and the resulting artifact (an unsigned transaction). The main omission is that it does not state what the returned intent looks like or how it is consumed by geode_submit_intent, but it is otherwise complete enough to call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all eight parameters. The description only paraphrases the field set (offer coin, want coin, price, method, inventory, location) without adding format or constraint detail 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Create) and resource (a listing on the Geode private coin exchange) and enumerates the fields involved. This clearly distinguishes it from geode_exchange_edit_listing and geode_exchange_view_my_listings, though it never explicitly names those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains the post-creation workflow (sign with geode-local-signer, then submit with geode_submit_intent), which is useful usage context, but gives no explicit when-to-use versus edit_listing or browse_all_listings. Usage is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_exchange_view_my_listingsExchange: view my listingsARead-onlyInspect
List the exchange listings created by caller. Read-only; no signature. Optional caller: the account whose view to read (for caller-dependent results).
| Name | Required | Description | Default |
|---|---|---|---|
| caller | No | Optional account address (SS58) to run the query as |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description's 'Read-only' repeats structured data. It does add one genuinely useful fact: 'no signature', telling the agent this is a free query rather than a signed transaction. No rate limits or return-shape context beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, the primary action front-loaded, with no filler. The trailing 'for caller-dependent results' phrase is slightly cryptic but costs little space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with no output schema and annotations already covering the safety profile, the description covers purpose, safety, and the caller role. The only real gap is what happens when `caller` is omitted, which an agent must infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with a single optional parameter, so the baseline is 3. The description restates that `caller` is 'the account whose view to read' but adds no format or default-value detail beyond the schema's 'Optional account address (SS58) to run the query as'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (exchange listings) scoped to those created by `caller`, which cleanly separates it from the sibling geode_exchange_browse_all_listings. An agent can pick it without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the 'my listings' scoping rather than stated; the description never names browse_all_listings as the alternative or says when to pass `caller` versus omitting it. The clause 'for caller-dependent results' hints at a default-caller behavior but does not spell out the condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_get_intentGet an intentARead-onlyInspect
Read-only: the status of an intent (pending, submitting, done, failed) and, once submitted, its result.
| Name | Required | Description | Default |
|---|---|---|---|
| intent_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds real context beyond that: the lifecycle state machine (pending, submitting, done, failed) and the fact that a result only exists after submission, which tells the agent what to expect when polling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact sentence with the read-only nature front-loaded and no wasted words, which is appropriate for a simple getter. It is efficient but minimal enough that it could absorb one clarifying clause without becoming bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with full annotation coverage and no output schema, the description adequately covers what is returned (status, and result once submitted). The only real gap is that the intent_id parameter is left entirely unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter intent_id has 0% schema description coverage, so the description carries the burden, yet it says nothing about the format, origin, or where the id comes from. Only the parameter name itself supplies meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (read) and resource (an intent) and enumerates the possible statuses (pending, submitting, done, failed), which defines the object precisely. It does not, however, draw an explicit line against the closely related sibling geode_submit_intent, so sibling differentiation is only implied by 'Read-only'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Once submitted, its result' implies the natural workflow of calling this after geode_submit_intent, which is useful implicit guidance. There is no explicit when-to-use statement, no exclusion, and no mention of geode_submit_intent or geode_agent_status as alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_lifeandwork_endorse_claimLifeAndWork: endorse claimAInspect
Endorse another account's Life and Work claim. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| claim_id | Yes | 0x-prefixed 32-byte hex id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations give readOnly=false, destructive=false and openWorld=true, but the description adds substantial non-obvious context: this only prepares an unsigned intent for `signer` and is a no-op until signed and submitted. That two-phase lifecycle is exactly the kind of information annotations cannot convey. It stops short of noting irreversibility/on-chain finality of an endorsement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler, front-loaded with the action and immediately followed by the critical lifecycle constraint. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only two fully documented parameters, no output schema, and annotations covering the safety profile, the description supplies everything an agent needs: what it does and the sign/submit handoff that must follow. Nothing material is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both `signer` (SS58 address, signed locally) and `claim_id` (0x 32-byte hex) are already documented in the schema. The description references `signer` but adds no format or constraint detail beyond what the schema provides; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Endorse another account's Life and Work claim.' The 'another account's' qualifier distinguishes it from the sibling make_claim_* tools, and it is clearly a distinct action from get_endorsers (which reads endorsement data).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly describes the required follow-up workflow: the intent must be signed with geode-local-signer and submitted with geode_submit_intent, otherwise 'nothing happens'. This is strong operational guidance. It lacks an explicit when-not/don't-use condition, so it falls just short of 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_lifeandwork_get_endorsersLifeAndWork: get endorsersARead-onlyInspect
List the accounts that endorsed a Life and Work claim. Read-only; no signature. Optional caller: the account whose view to read (for caller-dependent results). Results are paginated with offset and limit (default 50, max 200).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Items to return (default 50, max 200) | |
| caller | No | Optional account address (SS58) to run the query as | |
| offset | No | Items to skip (default 0) | |
| claim_id | Yes | 0x-prefixed 32-byte hex id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds genuinely new context beyond that: 'no signature' discloses the auth requirement and 'caller-dependent results' explains a behavioral nuance, though it omits return shape (no output schema) and rate/limit behavior beyond pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core purpose, and no filler. The pagination clause duplicates the schema's default/max text, which is minor redundancy but the only wasted content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with full schema coverage and annotations, the description covers purpose, auth ('no signature'), the caller nuance, and pagination. No output schema exists, so it need not describe return values; only a brief note on result ordering/shape would add anything.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description still adds meaning by explaining that `caller` is 'the account whose view to read (for caller-dependent results)', which is more informative than the schema's 'run the query as'; it does, however, merely repeat the offset/limit defaults already present in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'List the accounts that endorsed a Life and Work claim.' The verb clearly separates it from the sibling write tool geode_lifeandwork_endorse_claim, and an agent can identify the operation without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It conveys the read-only nature and the caller-dependent case, which implies when to pass `caller`, but it never states when to use this tool versus alternatives or any exclusions. Usage is only implied, so a 3 is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_lifeandwork_get_full_detailsLifeAndWork: get full detailsARead-onlyInspect
Get full details of one Life and Work claim, including its endorsers. Read-only; no signature. Optional caller: the account whose view to read (for caller-dependent results).
| Name | Required | Description | Default |
|---|---|---|---|
| caller | No | Optional account address (SS58) to run the query as | |
| claim_id | Yes | 0x-prefixed 32-byte hex id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description goes beyond them by stating 'no signature', which is genuine auth/execution context: it tells the agent no signed transaction is required. It stops short of return-format or pagination detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short clauses, front-loaded with the core action and with the caveat about signing placed immediately after. Nothing is redundant, though the final parenthetical is compressed enough to read as a fragment.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should carry more of the return contract; 'full details ... including its endorsers' is suggestive but does not say what fields come back or whether the result is paginated. For a simple 2-parameter read tool whose annotations already cover safety, this is adequate but leaves a clear gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real meaning for `caller` — 'the account whose view to read (for caller-dependent results)' explains why the parameter exists, beyond the schema's terse 'run the query as'. `claim_id` gets no added detail, but the schema already specifies 0x-prefixed 32-byte hex.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get full details of one Life and Work claim') and names what is included ('including its endorsers'). It is clear and distinguishable from write siblings like make_claim_* or endorse_claim, though it does not explicitly disambiguate against the adjacent readers geode_lifeandwork_get_endorsers or geode_lifeandwork_get_resume.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description never states when to choose this over geode_lifeandwork_get_endorsers or get_matching_claims, nor any prerequisites or exclusions. The only contextual hint is that `caller` yields 'caller-dependent results', which is parameter behavior, not usage routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_lifeandwork_get_matching_claimsLifeAndWork: get matching claimsARead-onlyInspect
Search Life and Work claims of one claim type by up to three keywords. Read-only; no signature. Optional caller: the account whose view to read (for caller-dependent results). Results are paginated with offset and limit (default 50, max 200).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Items to return (default 50, max 200) | |
| caller | No | Optional account address (SS58) to run the query as | |
| offset | No | Items to skip (default 0) | |
| keywords1 | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| keywords2 | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| keywords3 | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| claim_type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered, but the description adds genuinely useful context beyond them: 'no signature' tells the agent this read needs no signing step, and it documents pagination behavior (default 50, max 200). It does not describe result ordering or format, so it stops short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences, front-loaded with the core action, then safety, then paging. Every sentence carries information, though the offset/limit details repeat what the schema already states.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter search with no output schema, the description covers paging, the caller, and safety. The notable gap is claim_type: it is required, has no schema description and no enum, and the description never indicates what integer values are valid (e.g. the education/expertise/gooddeed categories implied by the make_claim siblings).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is high (86%), so the baseline is 3, but the description adds real meaning for `caller` ('the account whose view to read'), clarifying caller-dependent results beyond the schema's terse 'run the query as'. The offset/limit restatement duplicates the schema, and claim_type still has no value guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Search Life and Work claims') and narrows scope to one claim type matched by up to three keywords. That is clearly distinct from the make_claim_* siblings, though it does not explicitly name an alternative tool to reinforce the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: search claims by keyword. There is no statement of when to prefer this over geode_lifeandwork_get_full_details or get_endorsers for a known claim, and no exclusions such as 'requires at least one keyword' beyond the schema's required fields.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_lifeandwork_get_resumeLifeAndWork: get resumeARead-onlyInspect
Get an account's Life and Work resume: all its claims (expertise, work history, education, good deeds, intellectual property) with endorsements. Read-only; no signature. Optional caller: the account whose view to read (for caller-dependent results). Results are paginated with offset and limit (default 50, max 200).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Items to return (default 50, max 200) | |
| owner | Yes | Geode account address (SS58) | |
| caller | No | Optional account address (SS58) to run the query as | |
| offset | No | Items to skip (default 0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry readOnlyHint=true and destructiveHint=false, so the safety profile is covered; 'Read-only; no signature' aligns with and reinforces that. The description adds genuinely new behavior: pagination with offset/limit defaults (50) and max (200), plus the caller-dependent view semantics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with content, read semantics, parameter nuance, and pagination front-loaded in that order. No filler; every sentence carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return-value burden and does so by enumerating the claim categories and endorsements. Pagination and caller semantics are also covered, leaving little an agent needs that is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all four parameters are already documented and the baseline is 3. The description restates pagination defaults and adds a nuance for `caller` ('account whose view to read'), but the schema already describes caller as 'run the query as', so the added meaning is marginal.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (resume) and enumerates the substantive content (expertise, work history, education, good deeds, intellectual property) with endorsements. This distinguishes it from siblings like get_full_details, get_endorsers, and get_matching_claims, which each return narrower slices.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies read-only usage and explains the `caller` view ('for caller-dependent results'), but never states when to prefer this over siblings such as get_full_details or get_endorsers. No explicit when/when-not routing to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_lifeandwork_make_claim_educationLifeAndWork: make claim educationAInspect
Add an education claim to your Life and Work resume (description or keywords, plus an optional https link). Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| url_link_to_see_more | Yes | https:// URL or empty string, at most 512 bytes | |
| keywords_or_description | Yes | UTF-8 text, at most 2048 bytes; no control or invisible characters |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnly=false, destructive=false, openWorld=true, and the description usefully adds the two-phase intent workflow (prepared, not committed until signed and submitted) plus who the transaction is prepared for. That is meaningful behavioral context beyond the structured hints, though it doesn't discuss failure modes or reversibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the action and followed by the commit semantics. No filler, and both sentences earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description still tells the agent the full lifecycle (intent prepared, then sign and submit), which is what matters for a chain-writing tool. The only gap is the required-vs-optional mismatch on the URL parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters and the baseline is 3. The description adds no format details, and it actually mischaracterizes the link as 'optional' while url_link_to_see_more is listed as required in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Add an education claim to your Life and Work resume') and correctly scopes the content to description/keywords plus a link. It does not explicitly differentiate itself from the sibling make_claim_* variants (expertise, workhistory, gooddeed, intellectualproperty), relying on the name to carry that distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly describes the operating context: this only prepares an unsigned intent for `signer`, and nothing takes effect until signing with geode-local-signer and submitting with geode_submit_intent. It does not, however, say when to choose an education claim over another claim type.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_lifeandwork_make_claim_expertiseLifeAndWork: make claim expertiseAInspect
Add an expertise claim to your Life and Work resume (description or keywords, plus an optional https link). Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| url_link_to_see_more | Yes | https:// URL or empty string, at most 512 bytes | |
| keywords_or_description | Yes | UTF-8 text, at most 2048 bytes; no control or invisible characters |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=false, destructiveHint=false), it discloses high-value behavioral facts: it writes to the chain, prepares an unsigned intent for `signer`, and nothing takes effect until signed with geode-local-signer and submitted via geode_submit_intent. This two-phase commit semantics is exactly the context an agent needs and is not derivable from the annotations or schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loading what the tool does before the post-call workflow. Every sentence earns its place; only mild density in the second clause keeps it from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a chain-writing tool with no output schema, the description covers purpose, the signing/submission workflow, and the target account, while annotations carry the safety profile and the schema carries parameter detail. It is essentially complete, with only minor gaps (no return/confirmation detail after submission).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters fully; the baseline is 3. The description restates the fields at a high level ('description or keywords, plus an optional https link') without adding format or constraint detail beyond the schema, and it loosely calls the link 'optional' while the schema marks it required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Add) and resource (expertise claim to a Life and Work resume), and the 'expertise' qualifier distinguishes it from the sibling make_claim_education/gooddeed/intellectualproperty/workhistory tools. An agent can tell what this does and which claim type it targets without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys the workflow context (prepare, sign, submit) which implies when to call it, but it never explicitly states when to use this versus the other make_claim_* variants or any exclusions. Usage is implied by the claim type rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_lifeandwork_make_claim_gooddeedLifeAndWork: make claim gooddeedAInspect
Add a good-deed claim to your Life and Work resume (description or keywords, plus an optional https link). Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| url_link_to_see_more | Yes | https:// URL or empty string, at most 512 bytes | |
| keywords_or_description | Yes | UTF-8 text, at most 2048 bytes; no control or invisible characters |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, openWorldHint=true, destructiveHint=false. The description adds meaningful context beyond that: it prepares an unsigned transaction (intent) and nothing happens until signed and submitted, naming both the signing tool and submit tool. This resolves the key ambiguity of a write tool in a two-step intent model.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences, front-loaded with the purpose, then the workflow caveat. No filler; every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-output-schema mutation tool, the description adequately covers the intent-then-sign-then-submit lifecycle and the target account. Given rich schema descriptions, this is complete enough for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all three parameters are documented in-schema, making 3 the baseline. The description loosely summarizes the fields ('description or keywords, plus an optional https link'), which adds marginal framing but no syntax or constraint detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Add a good-deed claim to your Life and Work resume') with scope detail (description/keywords plus link). It clearly distinguishes itself from sibling make_claim tools like education, expertise, and workhistory by naming the claim type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context on when to use it and importantly describes the follow-up workflow (sign with geode-local-signer, submit with geode_submit_intent). It does not explicitly state when to prefer a different make_claim_* sibling, but the good-deed scope is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_lifeandwork_make_claim_intellectualpropertyLifeAndWork: make claim intellectualpropertyAInspect
Add an intellectual-property claim to your Life and Work resume, including the hash of your IP file. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| url_link_to_see_more | Yes | https:// URL or empty string, at most 512 bytes | |
| keywords_or_description | Yes | UTF-8 text, at most 2048 bytes; no control or invisible characters | |
| hash_your_intellectual_property_file_here | Yes | 0x-prefixed 32-byte hex id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as non-read-only and open-world, but the description adds crucial behavioral detail: it writes to the chain, prepares an unsigned transaction (intent) for the signer, and nothing happens until signed and submitted. This goes well beyond what the annotations provide and is exactly the kind of operational context an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action and followed by the essential workflow. No wasted words, and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a write-intent tool with no output schema, the description provides everything needed: what it does, that it prepares an unsigned transaction, and the required follow-up steps. The schema fully covers parameters, so nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters. The description mentions signer and the IP file hash, but does not add syntax or format details beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (add) and resource (intellectual-property claim to Life and Work resume) and includes the distinguishing parameter (hash of your IP file). This differentiates it from sibling make_claim_education/expertise/gooddeed/workhistory tools without needing to inspect schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context for when to use this tool: to add an IP claim to the resume. It also describes the required workflow (prepare intent, sign with geode-local-signer, submit with geode_submit_intent). It does not explicitly name alternatives or when-not to use it, so not a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_lifeandwork_make_claim_workhistoryLifeAndWork: make claim workhistoryAInspect
Add a work-history claim to your Life and Work resume (description or keywords, plus an optional https link). Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| url_link_to_see_more | Yes | https:// URL or empty string, at most 512 bytes | |
| keywords_or_description | Yes | UTF-8 text, at most 2048 bytes; no control or invisible characters |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare a write (readOnlyHint=false) but the description adds the key behavioral fact that no state changes until the returned intent is signed and submitted, which the annotations do not convey. It doesn't cover failure modes or what the intent payload contains, but it discloses the critical two-step commit model.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero waste; the core action is front-loaded and the critical workflow constraint follows immediately. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with full annotation coverage and no output schema, the description supplies exactly what is missing: the resume context and the unsigned-intent commit model. Nothing an agent needs to invoke it correctly is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all three parameters with byte limits. The description adds only 'description or keywords, plus an optional https link', which slightly conflicts with the schema marking url_link_to_see_more as required (though the schema notes empty string is allowed). Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Add a work-history claim to your Life and Work resume') and parenthetically names the content it accepts. This clearly distinguishes it from siblings like make_claim_education or make_claim_expertise that target other claim types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear workflow context: it prepares an intent that must be signed with geode-local-signer and submitted with geode_submit_intent, explicitly naming the follow-up tools. It does not state when to choose this claim type over the other make_claim_* siblings, but the context is well established.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_lifeandwork_show_or_hide_claimLifeAndWork: show or hide claimAInspect
Show or hide one of your Life and Work claims on your resume. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| claim_id | Yes | 0x-prefixed 32-byte hex id | |
| set_to_show | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only flag the safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=true). The description adds the crucial behavioral fact an agent cannot infer: this is a two-phase write — it only prepares an intent, and nothing is committed until an external signer plus geode_submit_intent complete the flow. No contradiction with the non-destructive annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler. The core action is front-loaded, and the transaction-follow-through caveat follows immediately where an agent will read it before invoking.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should explain the return and edge cases; it does imply the return is an unsigned intent and names the follow-on tools. It does not cover failure modes (claim not found, not your claim) or whether hiding is reversible/retains endorsements, but the essential call path is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67% (signer and claim_id documented; set_to_show bare). The description reinforces the signer role and implies the boolean via 'show or hide', but adds no new semantics beyond the schema — e.g. it never says the claim must be one you own. Baseline 3 is appropriate when only a third of the params lack description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific toggle verb ('show or hide') applied to a specific resource ('one of your Life and Work claims on your resume'). This is clearly separable from the sibling make_claim_* tools (which create claims) and endorse_claim (which signs support), so an agent can route correctly without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete pipeline context: it prepares an unsigned intent for `signer`, and 'nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent'. This names the required follow-on tools. It stops short of stating when to prefer this over related lifecycle operations (e.g. after making a claim), but the action constraints are explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_market_add_a_productMarket: add a productAInspect
List a product (digital or physical) in your store: title, price, brand, category, description, inventory, media links, delivery details, and an optional affiliate (zeno) percentage. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| brand | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| price | Yes | Amount in GEODE as a decimal string (e.g. "1.25"), or {"raw": "<planck>"} | |
| title | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| digital | Yes | ||
| category | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| inventory | Yes | Non-negative integer as a string of digits | |
| description | Yes | UTF-8 text, at most 2048 bytes; no control or invisible characters | |
| zeno_percent | Yes | Non-negative integer as a string of digits | |
| delivery_info | Yes | UTF-8 text, at most 2048 bytes; no control or invisible characters | |
| more_info_link | Yes | https:// URL or empty string, at most 512 bytes | |
| digital_file_url | Yes | https:// URL or empty string, at most 512 bytes | |
| product_location | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| photo_or_youtube_link1 | Yes | https:// URL or empty string, at most 512 bytes | |
| photo_or_youtube_link2 | Yes | https:// URL or empty string, at most 512 bytes | |
| photo_or_youtube_link3 | Yes | https:// URL or empty string, at most 512 bytes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, and the description goes well beyond them by explaining the two-phase mutation model: it only prepares an unsigned intent and nothing takes effect until the caller signs and submits. This is exactly the state-changing behavior an agent needs to know before invoking.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences with zero waste; the field list and the critical signing caveat are both front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 16-parameter mutation tool with no output schema, the description covers the essential behavior (intent preparation, no immediate effect) and the required follow-up tools. A minor gap is guidance on digital vs physical product differences, but the schema's boolean documents that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 94%, so the schema already documents all 16 parameters in detail. The description's enumeration of title, price, brand, category, description, inventory, media links, delivery details and zeno percent is a useful summary but adds little beyond the schema's own per-field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('List a product... in your store') and enumerates the payload fields, making it clearly distinguishable from geode_market_add_a_service and geode_market_update_product_details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear workflow context: it writes to the chain by preparing an unsigned intent for signer, then requires geode-local-signer and geode_submit_intent. It doesn't explicitly contrast with update_product_details or delete_a_product, but the operational context is well specified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_market_add_a_serviceMarket: add a serviceAInspect
List a service (online or in person) in your store: title, price, category, description, inventory, media and booking links, and an optional affiliate (zeno) percentage. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| price | Yes | Amount in GEODE as a decimal string (e.g. "1.25"), or {"raw": "<planck>"} | |
| title | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| online | Yes | ||
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| category | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| inventory | Yes | Non-negative integer as a string of digits | |
| description | Yes | UTF-8 text, at most 2048 bytes; no control or invisible characters | |
| booking_link | Yes | https:// URL or empty string, at most 512 bytes | |
| zeno_percent | Yes | Non-negative integer as a string of digits | |
| service_location | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| photo_or_youtube_link1 | Yes | https:// URL or empty string, at most 512 bytes | |
| photo_or_youtube_link2 | Yes | https:// URL or empty string, at most 512 bytes | |
| photo_or_youtube_link3 | Yes | https:// URL or empty string, at most 512 bytes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations (readOnlyHint=false, destructiveHint=false, openWorldHint=true) by disclosing that this is a two-phase write: it writes to the chain but produces an unsigned transaction that does nothing until signed and submitted. This sequencing and the external signer requirement are exactly the kind of context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the purpose and followed by the critical write/sign workflow. No filler; every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description compensates by explaining that the result is an intent to be signed and submitted, which is the essential lifecycle information for a 13-parameter prepare-intent tool. It stops short of describing the returned intent identifier or failure modes, but nothing critical to correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 92%, so the schema already documents the field formats and constraints. The description lists the fields (title, price, category, description, inventory, media/booking links, zeno percentage) but adds little beyond the schema; its claim that the zeno percentage is 'optional' conflicts with the schema marking zeno_percent required. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List a service (online or in person) in your store') and enumerates the fields being set. The 'service' framing plus 'online or in person' cleanly distinguishes it from the sibling geode_market_add_a_product.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear workflow context: it prepares an unsigned intent that must be signed with geode-local-signer and submitted with geode_submit_intent. It names the downstream steps but offers no explicit exclusions or a direct comparison to add_a_product/update_service_details, so no full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_market_add_item_to_cartMarket: add item to cartAInspect
Add a product or service (by id) to your Marketplace cart with a quantity. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| quantity | Yes | Non-negative integer as a string of digits | |
| add_item_id | Yes | 0x-prefixed 32-byte hex id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare the write/safe/open-world profile; the description adds the crucial two-phase behavior — nothing happens until the intent is signed and submitted. That is exactly the kind of context an agent cannot infer from readOnlyHint=false alone, and it prevents the agent from assuming the cart is mutated immediately.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action and its arguments, followed by the operational caveat. No filler; every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with full parameter documentation, annotations covering the safety profile, and no output schema, the description supplies everything needed: the action, its inputs, and the sign/submit lifecycle. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so signer, quantity, and add_item_id are already documented in the schema. The description restates 'by id' and 'with a quantity' and reinforces that the intent is prepared for `signer`, but adds no format or constraint detail beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Add a product or service ... to your Marketplace cart') plus the two key qualifiers (by id, with a quantity). This clearly distinguishes it from siblings like geode_market_update_cart_item_quantity and geode_market_remove_item_from_cart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear workflow context: it prepares an unsigned transaction for `signer` and routes the agent to geode-local-signer for signing and geode_submit_intent for submission. It stops short of explicitly stating when to choose this over update_cart_item_quantity (new item vs existing item), so it lacks a true exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_market_bookmark_a_storeMarket: bookmark a storeAInspect
Bookmark a seller's store. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| seller | Yes | Geode account address (SS58) | |
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only give readOnlyHint=false, destructiveHint=false, openWorldHint=true; the description adds the non-obvious two-phase commit behavior (write is deferred until signature and submission). It omits remaining behavioral facts such as whether the bookmark is reversible or whether the intent expires, so it falls just 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with zero filler; the action is front-loaded and the deferred-write caveat follows immediately, each sentence earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter mutation with no output schema, the description supplies the essential lifecycle information (unsigned intent, sign, submit) so an agent knows the call alone accomplishes nothing on-chain. Minor gaps remain around cost/reversibility of the bookmark.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters are documented with SS58 format and signing context, so the schema carries the load. The description reinforces the signer's role but adds nothing about `seller` beyond what the schema already says, matching the baseline for fully-covered schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Bookmark a seller's store") in the first clause, which is immediately distinguishable from the sibling geode_market_remove_store_bookmark and from browsing tools like geode_market_go_to_store. An agent can select this without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly frames the usage context: it prepares an unsigned intent that must be signed with geode-local-signer and submitted with geode_submit_intent before anything happens. That names the follow-up tools, but it does not state when NOT to use this (e.g., to un-bookmark, use remove_store_bookmark).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_market_checkout_cartMarket: checkout cartAInspect
Buy everything in your cart. value must be at least the cart total (see geode_market_view_my_cart). Digital products and services are delivered, and the seller paid, immediately; physical products wait for the seller to ship and deliver. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | GEODE to send with this call (explicit; never inferred) | |
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| confirm_token | No | Token from the first call, to confirm this irreversible action | |
| deliver_to_address | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond annotations: explains the two-stage delivery model (digital immediate, physical after shipping), value floor requirement, and crucially that this only prepares an unsigned intent and nothing happens until signing and submission. This is exactly the kind of multi-step behavioral context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the action, then the value constraint, then delivery semantics, then the sign/submit flow. Dense but no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the mutation's consequences, the required follow-up workflow, and the delivery outcome. With no output schema, this is complete enough for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds real value by tying `value` to the cart total minimum and referencing view_my_cart. It also contextualizes `signer` within the signing flow. It does not explain `confirm_token` (irreversibility token) in the description, but the schema already does.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (Buy) and resource (everything in your cart), clearly distinct from sibling cart tools like add/remove/update_quantity and from view_my_cart. The agent can tell exactly what this tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Points to geode_market_view_my_cart for the cart total and to geode-local-signer/geode_submit_intent for the follow-up flow. It does not explicitly state when not to use it (e.g., for orders outside a cart) but the purchase context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_market_delete_a_productMarket: delete a productADestructiveInspect
Delete one of your products from your store. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent. Irreversible: the first call returns a confirm_token; call again with it to proceed.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| confirm_token | No | Token from the first call, to confirm this irreversible action | |
| product_id_to_delete | Yes | 0x-prefixed 32-byte hex id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructive and open-world, but the description adds materially more: the operation is intent-based and has no effect until signed and submitted, and it is irreversible with a two-step confirm_token handshake. This is exactly the behavioral context an agent needs before invoking a destructive tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: purpose first, then the write/sign flow, then the irreversibility warning. The most consequential constraint (irreversible, needs second call) is placed last but is short and front-loaded enough to be noticed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description still explains what the first call returns (confirm_token) and what the agent must do with it, plus the required follow-up tools. Nothing needed to invoke this destructive tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the schema already documents all three parameters, so the baseline is 3. The description goes further by explaining the lifecycle of confirm_token (returned by the first call, replayed on the second) and the deferred role of signer, which is usage semantics the schema doesn't convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Delete one of your products from your store'), and the resource itself separates it from the sibling geode_market_delete_a_service without ambiguity. An agent can select it from the name plus first sentence alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear workflow context: the call only prepares an intent, which must be signed with geode-local-signer and submitted with geode_submit_intent, and the second call requires the confirm_token. It does not explicitly state exclusions (e.g., use the delete_a_service sibling for services), 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.
geode_market_delete_a_serviceMarket: delete a serviceADestructiveInspect
Delete one of your services from your store. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent. Irreversible: the first call returns a confirm_token; call again with it to proceed.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| confirm_token | No | Token from the first call, to confirm this irreversible action | |
| service_id_to_delete | Yes | 0x-prefixed 32-byte hex id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations (which only flag destructive/openWorld/not-readOnly) by disclosing that nothing executes until the unsigned intent is signed and submitted, that the action is irreversible, and that a confirm_token handshake gates the second call. This is exactly the extra behavioral context the annotations cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with purpose, then the execution model, then the danger/confirmation rule. No filler; each sentence carries distinct decision-relevant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, no-output-schema mutation with full annotation coverage, the description supplies the workflow, irreversibility and confirmation protocol an agent needs. Only minor gap is not stating downstream effects (e.g. effect on existing orders/listings) or return shape, which is acceptable given no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: it explains that signer is the account the transaction is prepared for and clarifies the confirm_token round-trip (first call returns it, second call proceeds), which the schema merely labels
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Delete), a bounded resource (one of your services) and scope (from your store), letting an agent distinguish it from siblings like geode_market_delete_a_product, add_a_service, and update_service_details without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear operational context – the chain-write workflow via geode-local-signer and geode_submit_intent, plus the two-call confirm_token sequence – but does not name a competing tool or an explicit when-not-to-use condition. Strong routing context, no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_market_deny_resolution_requestMarket: deny resolution requestADestructiveInspect
Seller: deny a buyer's problem report on an order. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent. Irreversible: the first call returns a confirm_token; call again with it to proceed.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| order_id | Yes | 0x-prefixed 32-byte hex id | |
| confirm_token | No | Token from the first call, to confirm this irreversible action |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, but the description goes well beyond them: it discloses that the call only prepares an unsigned intent, that nothing takes effect until signing and submission, that the action is irreversible, and that the first call returns a confirm_token needed for a second call. That is exactly the extra behavioral context an agent needs before touching a destructive write.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with actor and action, then the write/signing flow, then the irreversible two-step confirmation. No filler and no repetition; each sentence carries a distinct load.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, open-world mutation with no output schema, the description covers everything material: what it does, that it writes to chain, that it is intent-based and requires signing/submission, and that it is gated by a confirm_token. 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains signer, order_id, and confirm_token, and the description adds no new syntax, format, or constraint detail for them. It restates the signer role and the token round-trip, which is helpful framing but redundant with the structured fields, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (deny), the exact resource (a buyer's problem report on an order), and the acting role (Seller), which is enough to separate it from sibling resolution tools like geode_market_issue_refund or geode_market_issue_replacement without opening a schema. An agent can tell at a glance that this rejects a claim rather than granting one.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context for use (seller responding to a buyer problem report) and spells out the required follow-through workflow: sign with geode-local-signer and submit with geode_submit_intent. What it omits is any explicit exclusion or alternative, e.g. which sibling to call instead when the seller wants to accept or refund the claim.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_market_go_to_storeMarket: go to storeARead-onlyInspect
View a seller's public Marketplace store: seller profile, products and services. Read-only; no signature. Optional caller: the account whose view to read (for caller-dependent results).
| Name | Required | Description | Default |
|---|---|---|---|
| caller | No | Optional account address (SS58) to run the query as | |
| seller | Yes | Geode account address (SS58) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true. The description's 'Read-only' repeats the annotation, but 'no signature' adds genuine auth context (no signing required) and the caller note explains view-dependence. Return/pagination behavior is not covered, so it stays at a 3.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: purpose first, then the read-only/auth note, then the optional-parameter caveat. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does the work of naming return contents (profile, products, services) and explaining the optional param. Complete enough to call correctly; only list pagination/ordering is unaddressed, a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description goes beyond the schema by clarifying that `caller` is the account whose view to read (for caller-dependent results), which the schema's 'run the query as' only partially conveys. That added meaning earns the bump.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (View) and resource (a seller's public Marketplace store) and enumerates the content returned (seller profile, products and services). The word 'public' plus 'a seller's' distinguishes it from sibling tools like geode_market_view_my_seller_profile and the search_stores variants.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the name and the 'public store' framing — you call it to browse a specific seller's storefront. However, no alternative is named (e.g., search_stores_by_keyword for discovery vs. this for a known seller), and no when-not guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_market_issue_refundMarket: issue refundADestructiveInspect
Seller: resolve a reported problem by refunding the buyer. value is the refund you send from your own balance. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent. Irreversible: the first call returns a confirm_token; call again with it to proceed.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | GEODE to send with this call (explicit; never inferred) | |
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| order_id | Yes | 0x-prefixed 32-byte hex id | |
| confirm_token | No | Token from the first call, to confirm this irreversible action |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: it explains that the call writes to chain but only prepares an unsigned intent, that signing happens locally via geode-local-signer and submission via geode_submit_intent, and that the action is irreversible with a confirm_token round-trip. This is exactly the operational context the destructiveHint/openWorldHint 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with actor and action, then the amount semantics, then the write/sign/submit flow, then the irreversibility caveat. Four tight sentences with no filler; each one carries a distinct fact the agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, chain-writing tool with full schema coverage and no output schema, the description covers the mutation lifecycle (intent, sign, submit), the confirmation requirement, and the source of funds. Nothing material to correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real meaning by clarifying that `value` is the refund drawn from the seller's own balance (the schema only says 'GEODE to send') and by explaining the confirm_token's role in the second call. Minor addition, but genuinely beyond the schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('resolve a reported problem by refunding the buyer') and pins the actor role ('Seller'), which separates it from buyer-side siblings and from adjacent seller actions like geode_market_issue_replacement or geode_market_deny_resolution_request. An agent can identify the operation without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear usage context (a seller responding to a reported problem) and describes the required two-step confirm workflow. It does not explicitly name when to prefer this over the sibling resolution tools (replacement, deny), so it falls short of full alternative-routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_market_issue_replacementMarket: issue replacementAInspect
Seller: resolve a reported problem by sending a replacement (with new tracking information). Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| order_id | Yes | 0x-prefixed 32-byte hex id | |
| tracking | Yes | UTF-8 text, at most 2048 bytes; no control or invisible characters |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already declaring readOnlyHint=false and destructiveHint=false, the bar is lower, yet the description adds real value: it discloses the two-step intent model ('prepares an unsigned transaction ... nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent'). It stops short of covering reversibility or failure behavior, so a 4 rather than 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with purpose before the mechanical intent/signing detail. Every clause earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-output-schema mutation tool, the description explains the actor, the intended effect, and the full signing/submission workflow, which is what an agent needs to invoke it correctly. Minor gaps remain around what happens on failure or how the replacement links to the original order.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description loosely references 'signer' and 'tracking' ('with new tracking information', 'for `signer`') but adds no format or constraint detail beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource ('issue replacement' / 'sending a replacement') and adds a role qualifier ('Seller') plus the distinguishing detail 'with new tracking information', which implicitly separates it from geode_market_issue_refund. However, it never explicitly names the sibling tools (issue_refund, deny_resolution_request) it must be distinguished from, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It identifies the actor ('Seller: resolve a reported problem') and the situation, which implies when to use it, but gives no explicit when-not guidance and never names the alternatives (issue refund, deny resolution request) that a seller would pick between. Usage is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_market_message_the_buyerMarket: message the buyerAInspect
Seller: send a message about an order to its buyer. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| message | Yes | UTF-8 text, at most 2048 bytes; no control or invisible characters | |
| order_id | Yes | 0x-prefixed 32-byte hex id | |
| photo_or_youtube_url | Yes | https:// URL or empty string, at most 512 bytes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnly=false, destructive=false, openWorld=true), but the description adds genuinely important context: this only prepares an unsigned intent and nothing happens until it is signed with geode-local-signer and submitted with geode_submit_intent. It omits fee/permission details, keeping 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences, front-loaded with the actor and action, then the chain-writing constraint. No filler or repetition of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a write tool with no output schema, the description supplies the essential two-step intent workflow an agent must know. It does not describe what comes back (e.g., the intent id) or any cost, but those are minor gaps given the annotations and complete schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so every parameter is already documented with format constraints in the schema. The description only alludes to 'signer' via the unsigned-transaction sentence, adding no syntax or format 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (send a message about an order), names the direction (to its buyer), and prefixes the required role ('Seller:'), which cleanly distinguishes it from the buyer-facing sibling geode_market_message_the_seller. An agent can select it without inspecting the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Seller:' prefix and 'about an order' scoping give clear context for when this applies, and the follow-up workflow (sign then submit) is spelled out. It stops short of explicitly naming the alternative tool a buyer would use, so it is clear-but-not-exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_market_message_the_sellerMarket: message the sellerAInspect
Send a message about one of your orders to its seller. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| message | Yes | UTF-8 text, at most 2048 bytes; no control or invisible characters | |
| order_id | Yes | 0x-prefixed 32-byte hex id | |
| photo_or_youtube_url | Yes | https:// URL or empty string, at most 512 bytes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover the safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=true). The description adds the crucial non-obvious trait that this does not mutate state by itself: it prepares an unsigned intent that only takes effect after signing and submitting. It stops short of noting fee costs or that the message becomes publicly visible on-chain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler, with the purpose front-loaded before the intent/signing mechanics. Every clause earns its place by preventing a misuse (treating the call as a completed send).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-required-param write tool with no output schema, the description supplies what the schema cannot: the intent workflow and the two sibling tools needed to complete it. It could go slightly further on what the returned intent contains or that get_intent can inspect it, but nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already documents signer, message, order_id, and photo_or_youtube_url in detail (byte limits, hex format, URL rules). The description only echoes `signer`, so it adds nothing beyond the structured fields; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (send a message), the resource (an order), the recipient (its seller), and the constraint (must be one of your orders). This cleanly separates it from the sibling geode_market_message_the_buyer and from the generic geode_messaging_send_private_message tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the context of use explicit (messaging a seller about one of your orders) and names the required follow-up tools, geode-local-signer and geode_submit_intent, so the agent knows this is step one of a two-step flow. It does not state when to prefer this over generic private messaging, but the domain scoping is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_market_rate_a_buyerMarket: rate a buyerAInspect
Seller: rate (1 to 5) and review the buyer of one of your orders. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| buyer | Yes | Geode account address (SS58) | |
| rating | Yes | Non-negative integer as a string of digits | |
| review | Yes | UTF-8 text, at most 2048 bytes; no control or invisible characters | |
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| order_id | Yes | 0x-prefixed 32-byte hex id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing the two-step intent model: the call only prepares an unsigned transaction for `signer`, and nothing is committed until geode-local-signer signs and geode_submit_intent submits. This is exactly the behavioral context an agent needs to avoid assuming an immediate on-chain write.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences. The rate/review action is front-loaded, and the chain-write caveat follows immediately. Every clause carries information; nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, it adequately explains the intent/sign/submit lifecycle. It leaves out whether a rating is final or editable and any fee/gas implications, which would be useful for a one-shot chain write.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds the rating bound of "1 to 5" that the schema's "non-negative integer as a string" does not state, and it reinforces that `signer` is the account the transaction is prepared for. Review length limits and order_id format remain schema-only.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (rate/review) and resource (the buyer of one of your orders), with the seller-side scope made explicit in the first word. This cleanly separates it from the sibling geode_market_rate_a_product_or_service without the agent needing to open either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Seller: ... the buyer of one of your orders" implies the precondition (you are the seller with a completed order) and gives clear context for when it applies. It does not explicitly name the alternative (rating a product/service) or state exclusions, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_market_rate_a_product_or_serviceMarket: rate a product or serviceAInspect
Rate (1 to 5) and review a product or service. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| rating | Yes | Non-negative integer as a string of digits | |
| review | Yes | UTF-8 text, at most 2048 bytes; no control or invisible characters | |
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| item_id | Yes | 0x-prefixed 32-byte hex id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false, destructiveHint=false and openWorldHint=true. The description goes well beyond them by disclosing that this writes to the chain via a two-phase intent flow: it prepares an unsigned transaction for `signer` and nothing takes effect until the caller signs with geode-local-signer and submits with geode_submit_intent. That is exactly the kind of non-obvious behavioral context an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action and followed by the essential workflow caveat. Every clause carries weight; no filler or restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with annotations covering the safety profile and no output schema, the description supplies the critical missing piece: the intent/sign/submit lifecycle and the fact that nothing commits until submission. It does not cover edge cases such as re-rating an item or failure behavior, but nothing essential for a correct invocation is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds a constraint the schema omits: the rating must be 1 to 5, whereas the schema only says 'Non-negative integer as a string of digits'. It also reinforces that the transaction is bound to the `signer` account, which the schema states but ties into the workflow.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Rate (1 to 5) and review a product or service'), and the resource ('product or service') implicitly separates it from the sibling geode_market_rate_a_buyer. However, it never names or contrasts against that sibling explicitly, so an agent must infer the distinction from the tool name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus alternatives such as geode_market_rate_a_buyer or the other market write tools. The second sentence explains the signing/submission workflow rather than selection criteria, so usage must be inferred entirely from the purpose sentence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_market_refuse_an_orderMarket: refuse an orderADestructiveInspect
Seller: refuse an order that has not shipped yet; the buyer is refunded in full. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent. Irreversible: the first call returns a confirm_token; call again with it to proceed.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| order_id | Yes | 0x-prefixed 32-byte hex id | |
| confirm_token | No | Token from the first call, to confirm this irreversible action |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true and openWorldHint=true, and the description goes well beyond them: it discloses the intent/signing model, that nothing takes effect until the intent is signed and submitted, the exact downstream tools, and the two-phase confirm_token confirmation flow for an irreversible action. This is exactly the behavioral context an agent needs before invoking a destructive tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact clauses, front-loaded with the action and precondition before the mechanics and the irreversibility warning. No filler; every sentence changes how the agent should behave.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive write tool with no output schema, the description covers the mutation, its side effect, the signing/submission handoff, and the confirmation requirement. Nothing an agent needs to call it safely is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real semantics: it explains that the transaction is prepared for 'signer' and that confirm_token comes from the first call and gates the second, irreversible call. That clarifies the multi-call lifecycle of the parameters rather than merely restating their types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('refuse an order'), the acting role ('Seller'), and the precondition ('has not shipped yet'), plus the consequence ('the buyer is refunded in full'). This clearly separates it from siblings like geode_market_deny_resolution_request and geode_market_issue_refund without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear applicability condition (order has not shipped yet, seller perspective) and routes the agent through the required follow-on tools (geode-local-signer, geode_submit_intent). It does not explicitly name when to prefer this over adjacent refund/denial tools, so it falls 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.
geode_market_remove_item_from_cartMarket: remove item from cartAInspect
Remove an item from your cart. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| item_id | Yes | 0x-prefixed 32-byte hex id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say readOnlyHint=false, destructiveHint=false, openWorldHint=true; the description adds the crucial two-phase semantics — it writes to the chain but produces an unsigned intent, and nothing takes effect until signed and submitted. This is exactly the kind of context annotations cannot convey, and nothing contradicts them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, zero filler, with the mutating action front-loaded and the signing-submission requirement 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter mutation with no output schema, the description supplies the full lifecycle (prepare → sign → submit), which is the only missing piece beyond the schema and annotations. An agent can invoke it correctly without further context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already documented in the schema; the description only reinforces that the intent is prepared for `signer`. Baseline 3 applies since the schema does the heavy lifting and the description adds no format or syntax detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Remove an item from your cart') that is immediately distinguishable from siblings like geode_market_add_item_to_cart and geode_market_update_cart_item_quantity. No ambiguity about what the tool mutates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names the required follow-up path explicitly ('sign it with geode-local-signer and submit it with geode_submit_intent'), which tells the agent this is step one of a multi-tool workflow. It does not state when to prefer this over directly updating quantity or whether the item must already exist, but the operative workflow context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_market_remove_store_bookmarkMarket: remove store bookmarkAInspect
Remove a store bookmark. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| seller | Yes | Geode account address (SS58) | |
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations only declaring readOnlyHint=false and destructiveHint=false, the description adds the crucial behavioral fact that this is a two-phase deferred write: nothing happens on-chain until the caller signs and submits. That is real value beyond the structured fields and is consistent with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action and followed by the execution caveat. Every clause earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does not need to explain return values, and it covers the deferred-signing lifecycle well. It omits any prerequisite (e.g., the bookmark or store must exist) but is otherwise complete for this simple two-param mutation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters are fully documented in the schema, so baseline 3 applies. The description references `signer` but only restates what the schema already says, adding no new syntax or constraint detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Remove a store bookmark') and immediately clarifies the non-obvious execution model (prepares an unsigned intent). An agent can distinguish this from the sibling geode_market_bookmark_a_store without inspecting either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names the follow-up tools (geode-local-signer and geode_submit_intent) and the condition under which they are needed, which is actionable workflow guidance. It does not, however, state prerequisites or when-not-to-use this versus other market mutation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_market_report_problem_damagedMarket: report problem damagedAInspect
Report that a delivered order arrived damaged. Only allowed within 24 hours of delivery. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| message | Yes | UTF-8 text, at most 2048 bytes; no control or invisible characters | |
| order_id | Yes | 0x-prefixed 32-byte hex id | |
| problem_photo_or_youtube_url | Yes | https:// URL or empty string, at most 512 bytes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=false, destructiveHint=false, openWorldHint=true), it discloses the crucial two-step intent flow: it prepares an unsigned transaction and nothing executes until the agent signs and submits it. That is exactly the behavioral context an agent needs for a chain-writing tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence, followed by the deadline constraint and then the write mechanism. Three dense sentences, no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, it covers what the tool does, its eligibility constraint, and the full signing/submission lifecycle. An agent has everything needed to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters are already documented in the schema. The description only reinforces the role of `signer`; it adds no new syntax or format detail beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource+condition: 'Report that a delivered order arrived damaged.' This clearly distinguishes it from siblings geode_market_report_problem_not_received and geode_market_report_problem_wrong_item without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete eligibility window ('Only allowed within 24 hours of delivery') and points to the downstream tools (geode-local-signer, geode_submit_intent). It does not, however, explicitly say when to choose this over the not_received/wrong_item siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_market_report_problem_not_receivedMarket: report problem not receivedAInspect
Report that an order marked delivered was not received. Only allowed within 24 hours of delivery. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| message | Yes | UTF-8 text, at most 2048 bytes; no control or invisible characters | |
| order_id | Yes | 0x-prefixed 32-byte hex id | |
| problem_photo_or_youtube_url | Yes | https:// URL or empty string, at most 512 bytes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing the full write workflow: it prepares an unsigned transaction (an intent) for `signer`, nothing happens until signed with geode-local-signer and submitted with geode_submit_intent. This is exactly the kind of non-obvious behavioral context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: purpose, constraint, then the critical sign/submit workflow. Front-loaded and free of redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema and fully documented parameters, the description covers purpose, eligibility, and the intent/sign/submit pipeline an agent must complete. Nothing essential to correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters. The description only reinforces the role of `signer`; it adds no syntax or format detail beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Report that an order marked delivered was not received.' This precisely distinguishes it from its close siblings geode_market_report_problem_damaged and geode_market_report_problem_wrong_item without needing to name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a concrete eligibility condition ('Only allowed within 24 hours of delivery'), which is strong usage guidance. It stops short of explicitly naming alternative report tools or what to do when the window has passed, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_market_report_problem_wrong_itemMarket: report problem wrong itemAInspect
Report that a delivered order was the wrong item. Only allowed within 24 hours of delivery. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| message | Yes | UTF-8 text, at most 2048 bytes; no control or invisible characters | |
| order_id | Yes | 0x-prefixed 32-byte hex id | |
| problem_photo_or_youtube_url | Yes | https:// URL or empty string, at most 512 bytes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Provides crucial behavioral context beyond annotations: 'Writes to the chain: this prepares an unsigned transaction (an intent) for `signer`; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.' This explains the multi-step intent flow, which is not in the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the purpose and constraint, then the behavioral note. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of an on-chain write via intent, the description covers the critical flow (prepare, sign, submit) and the time constraint. No output schema is needed. Complete for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all parameters. The description does not add meaning beyond the schema; it references `signer` but doesn't explain parameters like `message` or `order_id` further. Baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Report that a delivered order was the wrong item.' This clearly distinguishes it from siblings like report_problem_damaged and report_problem_not_received.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Includes a clear constraint: 'Only allowed within 24 hours of delivery.' This gives explicit context for when to use, though it doesn't explicitly name alternative tools for other problem types.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_market_search_products_by_keywordMarket: search products by keywordARead-onlyInspect
Search Geode Marketplace products by up to three keywords. Read-only; no signature. Optional caller: the account whose view to read (for caller-dependent results).
| Name | Required | Description | Default |
|---|---|---|---|
| caller | No | Optional account address (SS58) to run the query as | |
| keywords1 | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| keywords2 | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| keywords3 | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is largely covered. The description adds the useful auth detail 'no signature' (no signing required) and notes that results can be caller-dependent, which goes beyond what the annotations state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short clauses with the core action front-loaded; almost nothing is wasted. 'for caller-dependent results' is slightly jargon-heavy but still compact and informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should ideally hint at what results look like, which it does not. Otherwise it is adequate: a read-only, signature-free search with a documented caller parameter, and annotations cover the safety profile for this 4-param tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description does clarify the optional `caller` as 'the account whose view to read (for caller-dependent results)', which adds nuance beyond the schema's 'run the query as'. However, it says 'up to three keywords' while the schema marks all three keyword slots as required, a tension that could mislead invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Search Geode Marketplace products by keyword'), which distinguishes it by resource type from the service- and store-search siblings. It stops short of naming those siblings, so the agent must infer the differentiation from the resource noun alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Use is implied by the name and description (search products), and the caller note hints at a use case, but there is no explicit when-to-use, when-not-to-use, or pointer to geode_market_search_services_by_keyword / geode_market_search_stores_by_keyword for the other resource types.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_market_search_services_by_keywordMarket: search services by keywordBRead-onlyInspect
Search Geode Marketplace services by up to three keywords. Read-only; no signature. Optional caller: the account whose view to read (for caller-dependent results).
| Name | Required | Description | Default |
|---|---|---|---|
| caller | No | Optional account address (SS58) to run the query as | |
| keywords1 | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| keywords2 | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| keywords3 | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, destructiveHint=false, so 'Read-only; no signature' mostly repeats annotation info. It does not describe what is returned, pagination, or result ordering. The caller note adds a bit of context but overall adds little beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences, front-loaded with the core action and mechanism, then the optional caller note. No wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only search tool with annotations covering safety and full schema coverage, the description is nearly sufficient. Missing return format is acceptable since no output schema exists, though a hint on result shape would help.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so schema documents all four parameters including the caller SS58 address and keyword byte limits. The description only restates 'up to three keywords' and 'caller' without adding syntax or format beyond the schema; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Search) and resource (Geode Marketplace services) with a keyword-based mechanism. It distinguishes itself from geo_market_search_products_by_keyword and geo_market_search_stores_by_keyword implicitly by naming 'services', but does not explicitly name those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies read-only search usage and explains the optional caller for caller-dependent results, but gives no explicit when-to-use vs alternatives or exclusions (e.g., why use this vs search_products/search_stores). Usage must largely be inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_market_search_stores_by_keywordMarket: search stores by keywordARead-onlyInspect
Search Geode Marketplace stores (seller profiles) by up to three keywords. Read-only; no signature. Optional caller: the account whose view to read (for caller-dependent results).
| Name | Required | Description | Default |
|---|---|---|---|
| caller | No | Optional account address (SS58) to run the query as | |
| keywords1 | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| keywords2 | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| keywords3 | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly, destructive, and openWorld hints, so the bar is lower. The description still adds useful behavioral context beyond annotations: 'no signature' (no auth/signing requirement) and the caller-dependent view semantics of the optional caller parameter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the core action and scope, followed by the safety/signature note and the caller nuance. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a keyword-search tool with full schema coverage and annotations covering the safety profile, the description is nearly complete. It implies the return is stores but does not describe result shape or pagination, which is a minor gap given no output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema documents all four parameters, setting the baseline at 3. The description adds nuance to caller ('the account whose view to read (for caller-dependent results)'), but its phrase 'up to three keywords' mildly conflicts with the schema requiring all three keyword fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Search Geode Marketplace stores (seller profiles)') with clear scope ('by up to three keywords'). The parenthetical 'seller profiles' distinguishes it from the sibling search_products and search_services tools without needing to name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description identifies the resource clearly enough to imply when to use it over product/service searches, and notes read-only/no-signature context. However, it never explicitly states when to choose this tool over the sibling search tools or what conditions select it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_market_update_buyer_account_settingsMarket: update buyer account settingsAInspect
Set your Marketplace buyer name and location. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| location | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare write/openWorld/non-destructive. The description adds genuinely non-obvious behavior: the call does not mutate state directly but prepares an unsigned intent for `signer`, and nothing takes effect until it is signed and submitted. This lifecycle detail is exactly the context annotations cannot supply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste: the first front-loads the purpose, the second adds the essential write-via-intent workflow. Nothing is redundant or buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-param write tool with a 100%-covered schema and no output schema, the description supplies the crucial two-step intent/sign/submit model. It stops short of stating what the call itself returns (the unsigned intent), but it is otherwise sufficient to call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters (name, location, signer). The description only calls out `signer` as the target account, adding marginal meaning beyond the schema; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Set) and resource (Marketplace buyer name and location), and the word 'buyer' cleanly distinguishes it from the sibling geode_market_update_seller_account_settings 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys what the tool is for and outlines the follow-up flow (sign with geode-local-signer, submit with geode_submit_intent), which implies when to reach for it. However, it never states when NOT to use it or names an alternative for a conflicting intent, so usage is only implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_market_update_cart_item_quantityMarket: update cart item quantityAInspect
Change the quantity of an item in your cart. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| item_id | Yes | 0x-prefixed 32-byte hex id | |
| new_quantity | Yes | Non-negative integer as a string of digits |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and openWorldHint=true. The description adds crucial behavioral context beyond annotations: it writes to chain, produces an unsigned transaction (intent), and nothing happens until signed and submitted. This is valuable process information not in the schema or annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action, then immediately followed by the critical workflow constraint. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given annotations cover safety, schema is complete, and no output schema exists, the description provides enough context for correct invocation. It could mention whether the item must already be in the cart or how to get item_id, but overall it's complete for the tool's scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all three parameters. The description does not add parameter-specific details beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (change quantity) and resource (item in your cart), clearly distinguished from siblings like add/remove item and checkout. The scope is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states the workflow context: prepares an unsigned intent for the signer, then must be signed and submitted via geode-local-signer and geode_submit_intent. It doesn't explicitly name when not to use it (e.g., use add_item_to_cart for new items), but the mutation nature and intent flow are clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_market_update_order_tracking_informationMarket: update order tracking informationAInspect
Seller: update an order's tracking and move it forward: awaiting → shipped, then shipped → delivered (delivery releases payment to you). Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| shipped | Yes | ||
| order_id | Yes | 0x-prefixed 32-byte hex id | |
| delivered | Yes | ||
| tracking_update | Yes | UTF-8 text, at most 2048 bytes; no control or invisible characters |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial context beyond the annotations: it writes to the chain, it only prepares an unsigned intent for `signer`, and nothing happens until geode-local-signer signs and geode_submit_intent submits. It also discloses the side effect that delivery releases payment, which the destructiveHint=false annotation does not convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences with no filler: role and action first, then the state machine and its payment effect, then the signing flow. Every clause carries actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description covers the actor, the state transitions, the economic consequence, and the full intent/sign/submit lifecycle, which is everything an agent needs to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 60%: signer, order_id and tracking_update are documented in the schema, but the shipped and delivered booleans have no descriptions. The description's state-transition wording implicitly maps to those booleans but never explains whether they are set independently or which combinations are valid, so it only partially compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (update), resource (an order's tracking), actor (Seller), and the exact state transitions (awaiting → shipped → delivered). This clearly distinguishes it from sibling tools like geode_market_view_my_seller_orders_shipped, which merely read the same states.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description pins down who uses it (Seller) and the workflow it participates in, including the payment-release consequence of the delivered transition. It gives clear context but does not name alternative tools or state when not to use it (e.g. vs. geode_market_refuse_an_order or issue_refund).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_market_update_product_detailsMarket: update product detailsAInspect
Update one of your products' details (the title cannot change). Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| brand | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| price | Yes | Amount in GEODE as a decimal string (e.g. "1.25"), or {"raw": "<planck>"} | |
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| category | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| inventory | Yes | Non-negative integer as a string of digits | |
| product_id | Yes | 0x-prefixed 32-byte hex id | |
| description | Yes | UTF-8 text, at most 2048 bytes; no control or invisible characters | |
| delivery_info | Yes | UTF-8 text, at most 2048 bytes; no control or invisible characters | |
| more_info_link | Yes | https:// URL or empty string, at most 512 bytes | |
| digital_file_url | Yes | https:// URL or empty string, at most 512 bytes | |
| product_location | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| photo_or_youtube_link1 | Yes | https:// URL or empty string, at most 512 bytes | |
| photo_or_youtube_link2 | Yes | https:// URL or empty string, at most 512 bytes | |
| photo_or_youtube_link3 | Yes | https:// URL or empty string, at most 512 bytes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial context beyond the annotations: it writes to the chain, produces an unsigned intent bound to `signer`, and requires a separate sign-and-submit step, which the readOnlyHint=false / openWorldHint=true hints do not spell out. It does not disclose whether the 13 mutable fields fully replace existing values or what happens to fields the caller might expect to keep, which matters for a destructiveHint=false mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler, and correctly front-loaded: purpose and constraint first, then the write/sign/submit pipeline. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 14-parameter mutation with no output schema and annotations already covering the safety profile, the description covers the essential unknown: that this is a two-step intent flow rather than an immediate write. It stops short of clarifying full-replace semantics and any ownership/precondition on product_id, which an agent would still need to guess at.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (14 well-documented params, including the price decimal/raw duality and byte limits), so the schema carries the parameter burden and the baseline is 3. The description adds only the title immutability constraint and notes that the intent is bound to `signer`; it contributes little beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Update one of your products' details") and adds the meaningful invariant that the title cannot change, which the name alone would not convey. It does not explicitly route away from the near-identical sibling geode_market_update_service_details, so the product/service split is left to inference from the resource noun.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear usage context: this prepares an unsigned intent for `signer`, and nothing happens until it is signed with geode-local-signer and submitted with geode_submit_intent. It does not state exclusions (e.g., that after creating a product you should use geode_market_add_a_product instead of this, or when a service update is the right sibling), so the when-not side is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_market_update_seller_account_settingsMarket: update seller account settingsAInspect
Set your store's name, location, description and links. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| location | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| banner_url | Yes | https:// URL or empty string, at most 512 bytes | |
| description | Yes | UTF-8 text, at most 2048 bytes; no control or invisible characters | |
| youtube_url | Yes | https:// URL or empty string, at most 512 bytes | |
| external_link | Yes | https:// URL or empty string, at most 512 bytes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag a write (readOnlyHint=false) with no destruction, but the description adds crucial context beyond them: the operation only writes an unsigned intent to the chain, and nothing takes effect until the agent signs and submits it. This deferred-execution/signing requirement is exactly the kind of behavioral detail 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with what gets set and immediately followed by the critical execution caveat. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, but the description covers what an agent needs: which fields are set and the intent/sign/submit lifecycle. For a 7-parameter mutation tool this is complete enough to call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema fully documents all 7 required parameters including byte limits and URL constraints. The description names the fields it sets (name, location, description, links) but adds no syntax or format detail 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Set') and resource ('your store's name, location, description and links'), which maps unambiguously to the seller-account-settings tool. It is clearly distinguishable from sibling geode_market_update_buyer_account_settings and from the product/service detail update tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains the multi-step workflow an agent must follow: this prepares an intent, which must then be signed with geode-local-signer and submitted with geode_submit_intent. It gives clear context for completion but does not state explicit exclusions or contrast with the buyer-settings sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_market_update_service_detailsMarket: update service detailsAInspect
Update one of your services' details (the title cannot change). Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| price | Yes | Amount in GEODE as a decimal string (e.g. "1.25"), or {"raw": "<planck>"} | |
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| category | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| inventory | Yes | Non-negative integer as a string of digits | |
| service_id | Yes | 0x-prefixed 32-byte hex id | |
| description | Yes | UTF-8 text, at most 2048 bytes; no control or invisible characters | |
| booking_link | Yes | https:// URL or empty string, at most 512 bytes | |
| service_location | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| photo_or_youtube_link1 | Yes | https:// URL or empty string, at most 512 bytes | |
| photo_or_youtube_link2 | Yes | https:// URL or empty string, at most 512 bytes | |
| photo_or_youtube_link3 | Yes | https:// URL or empty string, at most 512 bytes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations declaring readOnlyHint=false, the description adds important context beyond them: it explains that it only *prepares* an unsigned intent and 'nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent'. This is genuinely useful behavioral detail (non-destructive, two-step). Doesn't mention replacing all fields or error side effects, but strong.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with what it does and a key constraint, then the transaction workflow. No waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with annotations and full schema, the description covers the crucial non-obvious part: it's an intent-preparation step requiring signer and submit. It doesn't explain that all fields are required/replaces the whole service, but overall it's complete enough for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so every parameter is fully documented in the schema. The description adds only the signer workflow context, which maps to the 'signer' param, but doesn't add value for the other 10 params. Baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Update one of your services' details'. The parenthetical 'the title cannot change' clarifies scope. It does not explicitly differentiate from sibling geode_market_update_product_details, though 'service' vs 'product' distinguishes it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage by an owner of a service, and gives a crucial workflow: prepare intent → sign → submit. But it doesn't say when to use this vs add_a_service or delete_a_service, nor prerequisites like ownership. Adequate but with gaps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_market_view_my_buyer_accountMarket: view my buyer accountARead-onlyInspect
Get caller's Marketplace buyer account: profile, bookmarked stores, digital downloads and orders. Read-only; no signature. Optional caller: the account whose view to read (for caller-dependent results).
| Name | Required | Description | Default |
|---|---|---|---|
| caller | No | Optional account address (SS58) to run the query as |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so 'Read-only' largely restates structured data. 'No signature' is a genuinely new auth detail not captured by annotations, and the content enumeration hints at the response shape, but overall additions beyond annotations are modest.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the core purpose front-loaded, then the parameter note. No wasted clauses, though the quoted `caller` and the clause 'for caller-dependent results' are slightly cryptic.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only view tool with one optional param, full schema coverage and annotations covering the safety profile, the description is largely sufficient, and it even enumerates the data sections since there is no output schema. It stops short of clarifying what a caller-dependent result actually changes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already describes caller as an optional SS58 address to run the query as. The description's 'the account whose view to read (for caller-dependent results)' adds a little meaning about why you would set it, but no format or effect details beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('Get') plus a clearly scoped resource (caller's Marketplace buyer account) with an enumeration of contents: profile, bookmarked stores, digital downloads, orders. This distinguishes the aggregate view from narrower siblings like view_my_orders and view_my_cart, though it never explicitly says so.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the name and the word 'my'. There is no statement of when to choose this over view_my_orders / view_my_cart / view_my_seller_profile, nor any exclusion. The only usage-like hint is that caller is 'for caller-dependent results'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_market_view_my_cartMarket: view my cartARead-onlyInspect
Get caller's unpaid Marketplace cart: products, services and total. Read-only; no signature. Optional caller: the account whose view to read (for caller-dependent results).
| Name | Required | Description | Default |
|---|---|---|---|
| caller | No | Optional account address (SS58) to run the query as |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds genuine context beyond that: the cart is 'unpaid', no signature is required, and results are caller-dependent, all of which affect how the call behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short clauses with zero filler; the core action and return payload are front-loaded, followed by the auth note and the parameter note in descending priority.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully names the returned contents (products, services, total), and annotations cover the safety profile. Minor gaps remain: nothing about pagination or behavior when the cart is empty, but for a simple single-parameter read it is close to complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already documents `caller` as an optional SS58 account. The description's 'the account whose view to read (for caller-dependent results)' mostly restates that, adding only a mild hint about caller-scoped output, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource ('Get caller's unpaid Marketplace cart') plus the payload ('products, services and total'). It is clearly distinguishable from siblings like geode_market_view_my_orders or geode_market_checkout_cart, which concern orders or mutation rather than a read of the pending cart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'view my' framing and 'Read-only; no signature' clause imply when to use it, but no alternative is named (e.g., checkout_cart, update_cart_item_quantity) and no condition distinguishing it from other cart-adjacent tools is given. 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.
geode_market_view_my_ordersMarket: view my ordersARead-onlyInspect
List the Marketplace orders placed by caller as a buyer. Read-only; no signature. Optional caller: the account whose view to read (for caller-dependent results).
| Name | Required | Description | Default |
|---|---|---|---|
| caller | No | Optional account address (SS58) to run the query as |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true. The description adds the useful fact that no signature is required (auth context), but says nothing about pagination, result ordering, or filtering behavior for this listing-style read.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the core action and scope, followed by the optional-parameter note. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with annotations covering safety and no output schema to explain, the description covers the actor and the parameter well. It stops short of noting result shape or whether results are paginated, a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already describes the SS58 address. The description adds value by explaining the parameter's role as 'the account whose view to read (for caller-dependent results)', clarifying why it is optional.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (Marketplace orders placed by caller). The qualifier 'as a buyer' implicitly separates it from the seller-side siblings (view_my_seller_orders_*), but it 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the name and the 'as a buyer' framing, but there is no explicit when-to-use, when-not-to-use, or named alternative (e.g. the seller order views). The 'no signature' clause is a mild usage hint, not routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_market_view_my_seller_orders_awaitingMarket: view my seller orders awaitingARead-onlyInspect
List caller's seller orders awaiting shipment. Read-only; no signature. Optional caller: the account whose view to read (for caller-dependent results). Results are paginated with offset and limit (default 50, max 200).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Items to return (default 50, max 200) | |
| caller | No | Optional account address (SS58) to run the query as | |
| offset | No | Items to skip (default 0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds genuinely new context: 'no signature' discloses the auth requirement, and the pagination defaults (50, max 200) disclose result-set behavior not present in the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with the resource and state front-loaded, followed by auth and pagination facts. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, zero-required-parameter listing tool with annotations carrying the safety profile, the description covers purpose, auth, and pagination. No output schema exists, so return-value detail is not required, and nothing an agent needs 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters are already documented in the schema with their defaults and bounds. The description's note that caller is 'the account whose view to read (for caller-dependent results)' adds mild semantic color but largely restates the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (seller orders) narrowed by an explicit state (awaiting shipment). That state qualifier cleanly distinguishes it from the sibling tools view_my_seller_orders_shipped, _delivered, _refused, _resolved, and _problem without needing to open any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the state filter: use this to read orders still awaiting shipment. However, it names no explicit when/when-not condition and does not route the agent to the sibling state-specific variants, so the agent must infer the boundaries itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_market_view_my_seller_orders_deliveredMarket: view my seller orders deliveredARead-onlyInspect
List caller's seller orders that were delivered. Read-only; no signature. Optional caller: the account whose view to read (for caller-dependent results). Results are paginated with offset and limit (default 50, max 200).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Items to return (default 50, max 200) | |
| caller | No | Optional account address (SS58) to run the query as | |
| offset | No | Items to skip (default 0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful non-annotation context: 'no signature' clarifies the auth requirement, and the pagination bounds (default 50, max 200) describe behavior beyond the schema's per-field notes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with the core action front-loaded, followed by auth and pagination notes. No filler or repetition; every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, zero-required-parameter listing tool with no output schema and safety covered by annotations, the description supplies the essential missing pieces (caller semantics, pagination). It stops short of describing the returned order fields or how 'delivered' is determined, but nothing critical to correct invocation is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters are already documented in the schema; baseline is 3. The description adds only a light gloss on caller ('the account whose view to read'), which mostly restates the schema's 'account address (SS58) to run the query as'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List caller's seller orders that were delivered'), and the status qualifier 'delivered' distinguishes it from the awaiting/shipped/problem/refused/resolved siblings. It does not, however, name any sibling explicitly, so the differentiation is inferred from the name rather than spelled out.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the filter state, but there is no explicit when-to-use guidance and no mention of the five sibling status tools an agent might confuse this with. The note about caller being for 'caller-dependent results' is the only contextual hint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_market_view_my_seller_orders_problemMarket: view my seller orders problemARead-onlyInspect
List caller's seller orders with a reported problem. Read-only; no signature. Optional caller: the account whose view to read (for caller-dependent results). Results are paginated with offset and limit (default 50, max 200).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Items to return (default 50, max 200) | |
| caller | No | Optional account address (SS58) to run the query as | |
| offset | No | Items to skip (default 0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true and destructiveHint=false. The description usefully adds 'no signature' required and states the read-only nature, but omits other behavioral context such as what counts as a 'problem' report or response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short clauses, front-loaded with purpose before the safety note and pagination detail. Minor redundancy between the description's pagination note and the schema's identical parameter descriptions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter-required read-only list tool with no output schema, the description covers scope, optional caller and pagination adequately. It does not describe the shape of returned order records, which would help given the absence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so caller, limit and offset are already documented in the schema; the description restates rather than extends them (repeating the default 50/max 200 that the schema already gives). Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (caller's seller orders) with a differentiating filter ('with a reported problem'), which separates it from the awaiting/delivered/refused/resolved/shipped siblings. An agent can select it without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The filter condition is stated but there is no explicit when-to-use guidance or named alternative among the near-identical sibling order views (e.g., resolved vs problem). Usage is implied rather than instructed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_market_view_my_seller_orders_refusedMarket: view my seller orders refusedARead-onlyInspect
List caller's seller orders that were refused. Read-only; no signature. Optional caller: the account whose view to read (for caller-dependent results). Results are paginated with offset and limit (default 50, max 200).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Items to return (default 50, max 200) | |
| caller | No | Optional account address (SS58) to run the query as | |
| offset | No | Items to skip (default 0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes beyond the annotations by stating the operation needs no signature (no auth), and documents pagination behavior with offset/limit including the default (50) and max (200). Annotations already cover read-only/destructive semantics, so this extra operational context is the value-add.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the core action and filter, then the read-only note and pagination details. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with three fully documented params and annotations covering safety, the description supplies the essentials (scope, auth-free note, pagination). No output schema exists, but for a filtered list the return shape is unsurprising; only minor detail on result contents is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds meaningful context by explaining that 'caller' is the account whose view is read and that results depend on it, plus restating pagination limits. Slight added value over the schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (caller's seller orders that were refused), and the 'refused' status filter inherently distinguishes it from the sibling order-status tools (awaiting, delivered, shipped, problem, resolved). It stops short of explicitly naming those siblings, so it sits just below the top band.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the usage context (viewing one's own refused seller orders) and notes it is read-only with no signature required, but offers no explicit when-to-use guidance or pointers to the alternative status views. Adequate but leaves routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_market_view_my_seller_orders_resolvedMarket: view my seller orders resolvedARead-onlyInspect
List caller's seller orders whose problems were resolved. Read-only; no signature. Optional caller: the account whose view to read (for caller-dependent results). Results are paginated with offset and limit (default 50, max 200).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Items to return (default 50, max 200) | |
| caller | No | Optional account address (SS58) to run the query as | |
| offset | No | Items to skip (default 0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds 'no signature' (auth requirement) as genuine extra context, but 'Read-only' largely restates the annotation and it discloses nothing further about result contents or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the scoping condition and scope of the query. The pagination sentence duplicates the schema's parameter descriptions, a minor waste, but the text is otherwise efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, zero-required-parameter list tool with no output schema, the description covers scope, the caller-dependent semantics, and pagination. Given annotations carry the safety profile, an agent has essentially everything needed to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all three parameters are already documented. The description adds a modest gloss on `caller` ('the account whose view to read, for caller-dependent results') but only repeats offset/limit defaults that the schema already states, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb (list) and resource (seller orders) with a specific filter (problems resolved), which separates it from sibling view tools like awaiting/refused/shipped. It does not name any sibling explicitly, so an agent infers the distinction from the state qualifier alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the state in the name and description signals when this view applies, but there is no explicit when-to-use or when-not-to-use guidance and no routing to the parallel order-state siblings. Adequate but with clear gaps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_market_view_my_seller_orders_shippedMarket: view my seller orders shippedARead-onlyInspect
List caller's seller orders that have shipped. Read-only; no signature. Optional caller: the account whose view to read (for caller-dependent results). Results are paginated with offset and limit (default 50, max 200).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Items to return (default 50, max 200) | |
| caller | No | Optional account address (SS58) to run the query as | |
| offset | No | Items to skip (default 0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds genuinely useful context beyond that: no signature is required, and results are paginated with stated defaults (50) and caps (200).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences with the operation front-loaded, followed by auth and pagination details. No filler; slightly more compact phrasing could merge the auth and pagination notes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description should orient the agent on return shape; 'List ... seller orders' plus pagination semantics covers the essentials. It stops short of describing ordering or the fields returned, which is a minor gap for a list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters are already documented. The description adds only marginal value over the schema, mainly glossing `caller` as 'the account whose view to read (for caller-dependent results)' and repeating the pagination defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List caller's seller orders that have shipped'), so the status filter is unambiguous. It does not explicitly distinguish itself from the sibling status views (awaiting/delivered/problem/refused/resolved), though the 'shipped' qualifier effectively does that work.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clarifies the read-only, no-signature nature and explains why `caller` is optional, but gives no explicit when-to-use guidance or named alternative (e.g., why this vs. geode_market_view_my_orders or the other seller-order status views). Usage is only implied by the filter term.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_market_view_my_seller_profileMarket: view my seller profileARead-onlyInspect
Get caller's own Marketplace seller account, including its products and services. Read-only; no signature. Optional caller: the account whose view to read (for caller-dependent results).
| Name | Required | Description | Default |
|---|---|---|---|
| caller | No | Optional account address (SS58) to run the query as |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and destructiveHint, so the safety profile is covered. The description adds genuinely new context — 'no signature' signals no signing/auth step is required, and it explains the caller-dependent behavior. Return format remains unspecified but the annotation bar is met.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the core purpose front-loaded, followed by the safety/auth note and the parameter clarification. Nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-optional-param read-only tool with no output schema, the description covers purpose, auth posture, and parameter intent. It could say more about what 'products and services' entails, but it is essentially complete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single caller param, so the schema already documents it. The description's phrasing 'the account whose view to read (for caller-dependent results)' adds a marginal nuance but largely restates the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Get caller's own Marketplace seller account, including its products and services.' The 'seller' qualifier distinguishes it from the parallel geode_market_view_my_buyer_account, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: it clarifies this is a read-only call needing no signature and explains the optional caller for caller-dependent results. It never states when to prefer this over geode_market_view_my_buyer_account or the seller-orders variants.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_messaging_allow_accountMessaging: allow accountAInspect
Allow accounts to send you private messages. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| allow | Yes | List of Geode account addresses (SS58), at most 50 | |
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite annotations indicating a write operation, the description adds crucial context: it's an intent-based write that requires signing with geode-local-signer and submission with geode_submit_intent, and nothing happens until then. This is significant behavioral information beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action, then the transactional context. Efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the mutation nature and sibling tools, the description provides necessary context about the intent flow. It lacks explicit guidance on limits (max 50 accounts) but that's in schema. Overall complete enough for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so schema already documents both parameters. The description adds no parameter-specific details beyond what's in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: allow accounts to send private messages. It doesn't explicitly distinguish from sibling geode_messaging_disallow_account or geode_messaging_block_account, though the inverse is inferable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the intent flow (sign then submit) which implies when to use, but does not explicitly state when to use this vs disallow or block, nor any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_messaging_block_accountMessaging: block accountAInspect
Block an account from messaging you. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| block | Yes | Geode account address (SS58) | |
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only reveal readOnlyHint=false, destructiveHint=false, and openWorldHint=true. The description goes well beyond them by disclosing the intent-based write model: it prepares an unsigned transaction for `signer`, it has no effect until signed with geode-local-signer, and it must be submitted via geode_submit_intent. That is exactly the behavioral context an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler, front-loaded with the purpose followed immediately by the transaction mechanism. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a chain-writing mutation with no output schema, the description supplies the full lifecycle (prepare → sign locally → submit) and the safety-relevant constraint that nothing happens until signing. 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is already 100%, so the baseline is 3. The description nevertheless adds meaning to `signer` by tying it to the local-signing requirement, clarifying why this address must be the caller's own account.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource with scope: 'Block an account from messaging you.' Combined with the tool name and domain, an agent can distinguish it from geode_social_block_account and from geode_messaging_unblock_account / allow_account without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'when' is clear ('block an account from messaging you') and the description lays out the required follow-up flow. It stops short of naming the complementary tools (unblock_account, allow_account, disallow_account) or stating when not to use it, so guidance is strong but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_messaging_clear_my_paid_inboxMessaging: clear my paid inboxADestructiveInspect
Delete every message in your paid inbox. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent. Irreversible: the first call returns a confirm_token; call again with it to proceed.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| confirm_token | No | Token from the first call, to confirm this irreversible action |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond annotations (which say non-readonly, open-world, destructive): states writes to the chain, that it only prepares an unsigned intent for `signer`, that nothing happens before signing/submission, that it is irreversible, and that the first call returns a confirm_token needed for the second. Documents the two-phase safety behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences with zero waste: action first, then write/signing flow, then the confirmation/irreversibility contract. Front-loaded and appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, intent-preparing tool with no output schema, the description supplies everything needed to call it correctly: the signer requirement, external signing/submission pathway, irreversible nature, and confirm_token handshake.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3; the description adds behavior for confirm_token (returned by first call, used to confirm irreversibility) and identifies signer as the account the transaction is prepared for, which is meaningful beyond schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Delete) and resource (every message in your paid inbox), clearly distinguishing it from sibling geode_messaging_get_my_paid_inbox (read) and other delete tools scoped to accounts/groups/lists.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly describes the two-step flow: first call prepares the unsigned intent, sign with geode-local-signer, submit with geode_submit_intent; second call with confirm_token executes. The irreversible confirmation requirement is an explicit usage contract.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_messaging_delete_all_messages_to_accountMessaging: delete all messages to accountADestructiveInspect
Delete all private messages you sent to an account. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent. Irreversible: the first call returns a confirm_token; call again with it to proceed.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| confirm_token | No | Token from the first call, to confirm this irreversible action | |
| delete_all_messages_to | Yes | Geode account address (SS58) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations (destructiveHint=true, readOnlyHint=false) by disclosing that this writes to the chain, produces an unsigned transaction, requires external signing and submission, is irreversible, and uses a confirm_token two-step protocol. This is rich behavioral context an agent cannot infer from 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The destructive action is front-loaded in the first sentence, followed by the write/sign workflow and the irreversibility warning. Three tight sentences with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, chain-writing tool with no output schema, the description fully covers the transaction lifecycle, the required signer/submit tooling, and the irreversible confirmation protocol. Nothing an agent needs 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.
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 meaningful context for confirm_token by describing the two-call confirmation flow ('the first call returns a confirm_token; call again with it to proceed'), which the terse schema description alone does not fully convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (delete) and resource (all private messages you sent to an account), which clearly distinguishes it from siblings like geode_messaging_delete_single_message_to_account and geode_messaging_delete_all_messages_to_group.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly explains the operational workflow: it prepares an unsigned intent for `signer`, nothing happens until signed with geode-local-signer and submitted via geode_submit_intent. It implies the two-step confirmation but doesn't explicitly contrast when to choose this over the single-message or group deletion variants.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_messaging_delete_all_messages_to_groupMessaging: delete all messages to groupADestructiveInspect
Delete all messages you sent to a group. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent. Irreversible: the first call returns a confirm_token; call again with it to proceed.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| confirm_token | No | Token from the first call, to confirm this irreversible action | |
| delete_my_messages_to_group_id | Yes | 0x-prefixed 32-byte hex id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare destructiveHint/readOnlyHint/openWorldHint; the description goes well beyond them by disclosing that this writes to the chain, that nothing happens until the intent is signed and submitted, that the action is irreversible, and that it uses a two-call confirm_token handshake. These are exactly the behavioral traits an agent needs before invoking a destructive write.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, front-loaded with the purpose before the mechanics. Every sentence carries distinct information (what it deletes, the intent model, the signer/submit chain, the confirmation flow) with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, output-schema-less tool, the description covers the critical unknowns: irreversibility, the intent lifecycle, and the confirm_token return. The one gap is that the payload of the intent/preparation response beyond confirm_token is not described, though this is a minor omission given the two-stage design.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100%, so the baseline is 3. The description adds real value on top by explaining confirm_token's role in the flow ('the first call returns a confirm_token; call again with it to proceed'), clarifying that it is a second-call-only parameter rather than an upfront input.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource+scope: 'Delete all messages you sent to a group.' The scope words ('all', 'to a group', 'you sent') implicitly separate it from geode_messaging_delete_single_message_to_group and geode_messaging_delete_all_messages_to_account, but neither sibling is named, so an agent must infer the boundary rather than being told it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear operating workflow: an intent is prepared for `signer`, then signed with geode-local-signer and submitted with geode_submit_intent. That is strong, actionable context. What is missing is explicit routing guidance for when to prefer this over the single-message or per-account delete variants in the same family.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_messaging_delete_an_open_listMessaging: delete an open listADestructiveInspect
Delete an open list you own. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent. Irreversible: the first call returns a confirm_token; call again with it to proceed.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| confirm_token | No | Token from the first call, to confirm this irreversible action | |
| delete_list_id | Yes | 0x-prefixed 32-byte hex id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial context beyond the annotations: it discloses that the operation writes to the chain, prepares an unsigned intent rather than executing directly, is irreversible, and requires a two-step confirm_token handshake. This is exactly the kind of behavioral detail the destructiveHint=true annotation does not convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the action and followed by the critical execution model and the irreversibility/confirmation detail. No wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, chain-writing tool with no output schema, the description covers ownership, execution model, required follow-up tools, irreversibility, and the confirm_token workflow. An agent has everything needed to call it correctly and safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters are already documented, including signer address, delete_list_id format, and confirm_token purpose. The description reinforces the confirm_token flow but adds little format or semantic detail beyond the schema, warranting the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Delete an open list') with an ownership qualifier ('you own'). It does not explicitly differentiate from nearby siblings like geode_messaging_leave_a_group or geode_messaging_join_an_open_list, but the resource name is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the workflow (sign with geode-local-signer, submit with geode_submit_intent) but does not state when to use this tool versus related destructive messaging tools such as delete_single_message_to_list or unsubscribe_from_open_list. Usage is implied by the ownership phrase 'you own'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_messaging_delete_single_message_to_accountMessaging: delete single message to accountADestructiveInspect
Delete one private message you sent. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent. Irreversible: the first call returns a confirm_token; call again with it to proceed.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| confirm_token | No | Token from the first call, to confirm this irreversible action | |
| message_id_to_delete | Yes | 0x-prefixed 32-byte hex id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare the mutation/destructive profile, and the description goes well beyond them: it reveals the intent-based two-phase design, that nothing happens until signing/submitting, that the operation is irreversible, and that the first call returns a confirm_token required for the second call. That is exactly the behavioral detail an agent needs to avoid an unintended deletion.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences: the action first, then the write/intent workflow, then the irreversibility and confirm_token requirement. No filler and the riskiest fact is not buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, no-output-schema tool, the description covers the action, the safety prerequisite (signing), the two-step confirmation, and irreversibility, while annotations cover the read/write profile. Nothing an agent needs 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so signer, message_id_to_delete and confirm_token are already documented in the schema, including the 0x-prefixed byte format. The description reinforces the confirm_token round trip but adds no parameter-level detail the schema lacks, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource with scope baked in ('Delete one private message you sent'), which cleanly separates it from geode_messaging_delete_all_messages_to_account, geode_messaging_delete_single_message_to_group, and geode_messaging_delete_single_message_to_list without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear workflow context — this only prepares an intent, and the agent must then sign with geode-local-signer and submit with geode_submit_intent. It also implies the two-call confirmation flow. It does not explicitly contrast against the delete-all sibling, but the 'one message' scoping makes the choice mostly unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_messaging_delete_single_message_to_groupMessaging: delete single message to groupADestructiveInspect
Delete one message you sent to a group. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent. Irreversible: the first call returns a confirm_token; call again with it to proceed.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| confirm_token | No | Token from the first call, to confirm this irreversible action | |
| message_id_to_delete | Yes | 0x-prefixed 32-byte hex id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the destructiveHint/readOnlyHint annotations by disclosing that this writes to the chain, that nothing happens until the intent is signed and submitted, that the operation is irreversible, and that a confirm_token round-trip is required. This is exactly the behavioral context an agent needs before invoking a destructive on-chain mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with no filler: the action and scope come first, the on-chain/signing consequence second, and the irreversibility/confirm requirement last. Every clause carries decision-relevant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, no-output-schema mutation tool, the description supplies the prerequisite signing workflow, the irreversibility warning, and the multi-step confirmation path, so an agent knows both what it does and what it must do around it. Nothing decision-critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description adds value by explaining the confirm_token two-call protocol (first call returns it, second call consumes it) that the schema only names. The signer/submit relationship is restated from the schema rather than extended, keeping it out of 5 territory.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (delete) and a precisely scoped resource (one message you sent to a group), which directly distinguishes it from siblings like geode_messaging_delete_all_messages_to_group and geode_messaging_delete_single_message_to_account. An agent can select it without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains the full flow: it prepares an unsigned transaction for `signer`, then you sign with geode-local-signer and submit via geode_submit_intent. It also describes the two-step confirm_token gate. It never explicitly states when NOT to use it or contrasts against the list/account deletion siblings, so it falls just 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.
geode_messaging_delete_single_message_to_listMessaging: delete single message to listADestructiveInspect
Delete one message you broadcast to a list. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent. Irreversible: the first call returns a confirm_token; call again with it to proceed.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| confirm_token | No | Token from the first call, to confirm this irreversible action | |
| message_id_to_delete | Yes | 0x-prefixed 32-byte hex id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations (readOnlyHint=false, destructiveHint=true, openWorldHint=true) by explaining that the call only prepares an unsigned intent, that nothing happens until signing and submission, that the action is irreversible, and that a confirm_token two-step is required. This is exactly the behavioral context an agent needs for a destructive on-chain mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action, then the chain/intent mechanics, then the irreversibility and confirm flow. No filler; each sentence carries distinct, load-bearing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by describing the return of the first call (confirm_token) and the required second call. For a destructive, two-phase on-chain mutation, everything needed to invoke it correctly is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3, but the description adds real meaning for confirm_token by explaining the first-call/confirm-call protocol and frames signer as the account the intent is prepared for. It adds value beyond the schema without re-documenting the hex id format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource with scope: 'Delete one message you broadcast to a list.' The 'single'/'to a list' scoping is precise enough to separate it from the sibling delete_all_messages_to_list, delete_single_message_to_account, and delete_single_message_to_group without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear usage context (removing one message you broadcast to a list) and routes the agent through the follow-up steps: sign with geode-local-signer, submit with geode_submit_intent. It does not explicitly say when to prefer this over delete_all_messages_to_list or the account/group variants, so it stops short of the 5-level exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_messaging_disallow_accountMessaging: disallow accountAInspect
Stop allowing an account to send you private messages. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| disallow | Yes | Geode account address (SS58) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=true), so the description is not the sole source. It still adds real value by disclosing that the call only writes an unsigned intent and that nothing takes effect until signing and submission — critical for a write tool. Return details of the intent are implied rather than described.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the first states the effect, the second states the write/signing constraint. No filler, and the most important constraint is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a write tool with no output schema, the description covers the essential behavior: what is written, for whom, and the signing/submission path. The only omission is disambiguating against the near-identical block_account sibling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (signer, disallow) are already fully documented with SS58 formats. The description only echoes `signer`; baseline 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource: 'Stop allowing an account to send you private messages,' which an agent can map cleanly to a distinct action. It does not, however, explicitly distinguish itself from the sibling geode_messaging_block_account, which also halts messages, so the allow/disallow/block triad is left for the agent to infer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description supplies a clear operational context: this prepares an intent, which must be signed with geode-local-signer and then submitted with geode_submit_intent. It names the exact follow-up tools. It stops short of stating when to prefer this over block_account or allow_account.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_messaging_find_groups_by_keywordMessaging: find groups by keywordARead-onlyInspect
Search public messaging groups by up to three keywords. Read-only; no signature. Optional caller: the account whose view to read (for caller-dependent results).
| Name | Required | Description | Default |
|---|---|---|---|
| caller | No | Optional account address (SS58) to run the query as | |
| keywords1 | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| keywords2 | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| keywords3 | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, but the description adds useful context beyond them: 'no signature' tells the agent no auth/signing is required, and it explains the caller-dependent view semantics. It stops short of describing result shape or pagination, but it clearly enriches the safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly packed sentences with the core purpose front-loaded and no wasted wording. The read-only/signature note and the caller clarification both earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only open-world search with no output schema, the description covers purpose, keyword constraints, auth expectations, and the caller parameter adequately. It could note result ordering or limits, but annotations and schema already carry most of the remaining load.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description goes slightly beyond the schema by clarifying the three keywords are 'up to three' and that caller is 'the account whose view to read (for caller-dependent results)', which adds intent the raw SS58 field description does not convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (search) and resource (public messaging groups) with the scope 'by up to three keywords'. It implicitly distinguishes itself from sibling geode_messaging_get_my_groups by scoping to 'public' groups, but it never names that sibling or the analogous find_lists_by_keyword, so differentiation 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'Search public messaging groups' – an agent can infer it is for discovery rather than management. However, there is no explicit when-to-use vs geode_messaging_get_my_groups or geode_messaging_find_lists_by_keyword, and no stated prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_messaging_find_lists_by_keywordMessaging: find lists by keywordARead-onlyInspect
Search public open broadcast lists by up to three keywords. Read-only; no signature. Optional caller: the account whose view to read (for caller-dependent results).
| Name | Required | Description | Default |
|---|---|---|---|
| caller | No | Optional account address (SS58) to run the query as | |
| keywords1 | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| keywords2 | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| keywords3 | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so 'Read-only' is largely redundant, but 'no signature' is genuinely new behavioral information (no signing key required to run the query). It also discloses that only public open lists are searched, which is useful context not present in annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: scope first, then the read-only/no-signature caveat, then the optional caller. No filler, and the most decision-relevant facts lead.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the burden of explaining what comes back, and it never says what a search yields (list results, pagination, or how a list is identified). For a search tool with an unannotated return shape, that is a meaningful gap, though the input side is adequately covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the parameter contract is already documented; by rule this sets a baseline of 3. The description does add value for caller ('the account whose view to read (for caller-dependent results)'), which explains why the account matters, but 'up to three keywords' conflicts with the three required keyword parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Search') and resource ('public open broadcast lists'), with scope ('by up to three keywords') that separates it from get_my_open_lists and find_groups_by_keyword. The only blemish is 'up to three keywords' while the schema marks all three keywords as required, which slightly muddies the intended call shape.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies the usage context (finding open broadcast lists to join/subscribe) and explains the optional caller as the account whose view is read, but it never states when to prefer this over find_groups_by_keyword or get_my_open_lists, nor any prerequisites. Usage is inferred rather than directed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_messaging_get_account_settings_dataMessaging: get account settings dataARead-onlyInspect
Get an account's public messaging settings: username, interests, inbox fee, last update. Read-only; no signature. Optional caller: the account whose view to read (for caller-dependent results).
| Name | Required | Description | Default |
|---|---|---|---|
| caller | No | Optional account address (SS58) to run the query as | |
| get_settings_for | Yes | Geode account address (SS58) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety bar is low; the description still adds real value by noting 'no signature' (implying other tools require one) and that results can be caller-dependent. What is missing is any note on visibility/authorization scope for arbitrary accounts.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the operation and its returned fields come first, then the read-only/no-signature note, then the optional caller nuance. No filler or repetition of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by listing the returned fields and covering both parameters plus the read-only nature. It is nearly sufficient for a 2-parameter read tool, though it does not address error cases (e.g. nonexistent or non-public accounts).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the structured fields already carry the baseline. The description goes further by reframing `caller` as 'the account whose view to read (for caller-dependent results)', which clarifies intent beyond the schema's 'Optional account address (SS58) to run the query as'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb+resource (get an account's public messaging settings) and enumerates the returned fields (username, interests, inbox fee, last update), which is far more concrete than the bare title. It implicitly separates itself from the write-side sibling geode_messaging_update_settings via 'Get' and 'Read-only', but never names an alternative explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the tool is read-only and needs no signature, which implies when it is safe/appropriate to call, but there is no explicit when-to-use versus alternatives such as geode_messaging_get_my_inbox or geode_messaging_update_settings. Usage context is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_messaging_get_my_allowed_and_blocked_accountsMessaging: get my allowed and blocked accountsARead-onlyInspect
List the accounts caller has allowed and blocked for private messaging. Read-only; no signature. Optional caller: the account whose view to read (for caller-dependent results).
| Name | Required | Description | Default |
|---|---|---|---|
| caller | No | Optional account address (SS58) to run the query as |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds meaningful context beyond them: that the operation requires no signature and that results are caller-dependent, which helps an agent reason about output variability.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly worded sentences with the core action front-loaded and no filler. The trailing caller clarification is brief and earns its place, though the semicolon-delimited notes are slightly terse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool with no output schema and full annotation coverage, the description supplies what is needed: the resource, the read-only/signing posture, and the caller semantics. It could note the return shape (e.g. two lists), but not required given the absence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the single caller parameter (SS58 address to run the query as). The description's note that caller is for 'caller-dependent results' adds a small amount of meaning but largely restates the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (accounts the caller has allowed and blocked for private messaging), which clearly reads as the retrieval counterpart to allow/block sibling tools. It does not explicitly name the mutation siblings, so an agent must infer the distinction, keeping it just below a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides contextual facts (read-only, no signature needed, caller is optional) but never states when to use this tool versus alternatives such as get_account_settings_data or the allow/block mutations. Usage is implied rather than guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_messaging_get_my_groupsMessaging: get my groupsBRead-onlyInspect
List the messaging groups caller belongs to. Read-only; no signature. Optional caller: the account whose view to read (for caller-dependent results). Results are paginated with offset and limit (default 50, max 200).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Items to return (default 50, max 200) | |
| caller | No | Optional account address (SS58) to run the query as | |
| offset | No | Items to skip (default 0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and destructiveHint=false, so 'read-only' is largely redundant. However, 'no signature' is genuine auth-context disclosure the annotations do not carry — it tells the agent no wallet signing flow is required — and the pagination defaults are restated for quick scanning.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, purpose front-loaded, then auth note, then pagination. The pagination sentence duplicates values already in the schema and could be trimmed, but nothing is padded and the ordering is sensible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should say something about what a returned group contains or its ordering, but it only says results are paginated. The core call is answerable, yet the agent cannot anticipate the response shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters are already documented with defaults and bounds. The description adds only the meaning of `caller` ('account whose view to read', caller-dependent results) and repeats limit/offset values, which does not exceed the schema's own detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: list the messaging groups `caller` belongs to. That is clear enough to act on, but it does not distinguish itself from the very similar sibling `geode_messaging_get_my_inbox_groups` (nor from `find_groups_by_keyword` or `get_my_subscribed_lists`), leaving the agent to guess which 'my groups' variant applies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use statement and no named alternative. The description hints that `caller` selects 'caller-dependent results', but nothing tells the agent when to prefer this over `get_my_inbox_groups` or when to use `find_groups_by_keyword` instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_messaging_get_my_inboxMessaging: get my inboxARead-onlyInspect
Get caller's private-message inbox, grouped by conversation. Read-only; no signature. Optional caller: the account whose view to read (for caller-dependent results). Results are paginated with offset and limit (default 50, max 200).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Items to return (default 50, max 200) | |
| caller | No | Optional account address (SS58) to run the query as | |
| offset | No | Items to skip (default 0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description still adds non-obvious operational context: 'no signature' required (an auth/invocation detail not in the schema) and the pagination ceiling behavior, which matters for a read that can span many conversations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core action and scope. The pagination sentence largely duplicates schema-declared defaults (default 50, max 200), which is the only sentence that does not fully earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and zero required parameters, the description covers scope, auth requirement, grouping granularity, and pagination — enough to call it correctly. It stops short of describing what a conversation entry contains (e.g. unread counts, latest message, ordering), which is the only meaningful remaining gap for a read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all three parameters including defaults and bounds. The description restates the offset/limit defaults and adds only a light gloss on `caller` ('the account whose view to read'), which is marginally more informative than the schema's 'run the query as' but not enough to exceed the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource: 'Get caller's private-message inbox, grouped by conversation.' The 'grouped by conversation' qualifier implicitly separates it from the sibling inbox tools (get_my_inbox_groups, get_my_inbox_lists, get_my_paid_inbox), but none of those siblings are named, so the differentiation is left to inference 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent must deduce that group messages live in get_my_inbox_groups, list messages in get_my_inbox_lists, and paid messages in get_my_paid_inbox. There is no explicit 'use X instead when...' guidance and no exclusion for those adjacent tools, despite six close siblings in the messaging family.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_messaging_get_my_inbox_groupsMessaging: get my inbox groupsARead-onlyInspect
Get messages delivered to caller from its groups. Read-only; no signature. Optional caller: the account whose view to read (for caller-dependent results). Results are paginated with offset and limit (default 50, max 200).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Items to return (default 50, max 200) | |
| caller | No | Optional account address (SS58) to run the query as | |
| offset | No | Items to skip (default 0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so 'Read-only' is redundant; 'no signature' adds genuinely useful auth context and the pagination/default details add behavioral info. However nothing about result shape or failure modes is disclosed, so it stays at the baseline-plus level.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight clauses with no filler, front-loading the core action and following with auth and pagination notes. Well sized for a low-complexity read tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, zero-required-param list tool with full schema coverage and annotations carrying the safety profile, the description covers scope, caller semantics, and pagination adequately. The only minor gap is the absence of any routing to sibling inbox tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description meaningfully enriches 'caller' beyond the schema text by explaining it selects the account view for caller-dependent results. It also re-states the default/max pagination bounds, which is helpful but duplicative.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get messages delivered to caller from its groups'), and the scope phrase 'from its groups' distinguishes it from the sibling inbox/inbox_lists tools. It never names those siblings explicitly, so differentiation is inferential rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage via the 'from its groups' scope and mentions the optional caller, but offers no explicit when-to-use, when-not-to-use, or routing to alternatives like get_my_inbox or get_my_inbox_lists. Guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_messaging_get_my_inbox_listsMessaging: get my inbox listsARead-onlyInspect
Get messages delivered to caller from the open lists it subscribes to. Read-only; no signature. Optional caller: the account whose view to read (for caller-dependent results).
| Name | Required | Description | Default |
|---|---|---|---|
| caller | No | Optional account address (SS58) to run the query as |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true. The description adds 'no signature' (auth context) and clarifies caller-dependent results, but does not describe pagination, ordering, or return shape. With annotations covering safety, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences plus a short clause for the optional caller. The information is front-loaded and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, but the description states the source (messages from subscribed open lists) and read-only nature. It omits pagination or result format details, which are minor for a one-parameter read-only retrieval tool, so it is largely complete though not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already documents caller as an SS58 account to run the query as. The description adds that caller is 'the account whose view to read (for caller-dependent results),' enriching the parameter's meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb and resource: 'Get messages delivered to caller from the open lists it subscribes to.' The scope distinguishes it from general inbox and subscribed-list siblings without needing to open the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context with 'Read-only; no signature' but does not name alternatives or state when to prefer this over tools like geode_messaging_get_my_inbox or geode_messaging_get_my_subscribed_lists. No exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_messaging_get_my_open_listsMessaging: get my open listsARead-onlyInspect
List the open broadcast lists caller owns. Read-only; no signature. Optional caller: the account whose view to read (for caller-dependent results). Results are paginated with offset and limit (default 50, max 200).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Items to return (default 50, max 200) | |
| caller | No | Optional account address (SS58) to run the query as | |
| offset | No | Items to skip (default 0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true, destructiveHint=false, openWorldHint=true, so the safety profile is covered. The description adds genuinely new context: 'no signature' discloses an authentication requirement, and the pagination bounds (default 50, max 200) disclose result-size behavior. These go beyond what the annotations state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences, front-loaded with the core purpose followed by auth and pagination notes. Minor redundancy with the schema's pagination descriptions, but no wasted or padding language.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with no output schema, full schema coverage, and annotations covering safety, the definition supplies the missing pieces an agent needs: auth expectation (no signature) and pagination behavior. Nothing critical is omitted, though it stops short of explicitly differentiating the list siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents limit, offset, and caller. The description's 'caller: the account whose view to read (for caller-dependent results)' adds a small clarifying nuance about caller-dependent behavior, but the pagination values merely restate the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (open broadcast lists the caller owns), and the qualifier 'owns' implicitly separates it from sibling geode_messaging_get_my_subscribed_lists. An agent can distinguish this tool from the other list-related siblings without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'List the open broadcast lists caller owns' but there is no explicit when-to-use/when-not guidance and no named alternative among the many list siblings (get_my_subscribed_lists, get_my_inbox_lists, find_lists_by_keyword). The caller parameter note hints at context but does not route the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_messaging_get_my_paid_inboxMessaging: get my paid inboxBRead-onlyInspect
Get caller's paid inbox: messages from non-contacts who paid the inbox fee. Read-only; no signature. Optional caller: the account whose view to read (for caller-dependent results). Results are paginated with offset and limit (default 50, max 200).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Items to return (default 50, max 200) | |
| caller | No | Optional account address (SS58) to run the query as | |
| offset | No | Items to skip (default 0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description confirms 'Read-only; no signature', which is useful context beyond the annotations that already declare readOnlyHint=true and destructiveHint=false. Pagination defaults and maximums are also stated. However, it does not describe authentication requirements or what happens with the caller parameter beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a compact paragraph with front-loaded purpose and key behavioral traits. Every sentence adds some value, though a bit more separation between purpose, caller semantics, and pagination could improve scannability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and a simple read operation, the description covers the essentials: scope, read-only nature, caller semantics, and pagination. Still, it omits the return shape and any filtering/ordering behavior, leaving an agent with minor uncertainty about what exactly is returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema itself documents all three parameters thoroughly. The description repeats the pagination details (default 50, max 200) and clarifies 'caller' as the account whose view to read, but adds little beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Get caller's paid inbox') and defines the exact content: 'messages from non-contacts who paid the inbox fee'. This clearly distinguishes it from siblings like geode_messaging_get_my_inbox or geode_social_get_account_paid_messages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what the tool returns but gives no guidance on when to use it versus alternatives such as get_my_inbox or social paid message tools, and no prerequisites or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_messaging_get_my_subscribed_listsMessaging: get my subscribed listsBRead-onlyInspect
List the open broadcast lists caller subscribes to. Read-only; no signature. Optional caller: the account whose view to read (for caller-dependent results). Results are paginated with offset and limit (default 50, max 200).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Items to return (default 50, max 200) | |
| caller | No | Optional account address (SS58) to run the query as | |
| offset | No | Items to skip (default 0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description's 'Read-only' restates that. However, 'no signature' adds genuine auth context not present in annotations, and the pagination note discloses result-bounding behavior. It stops short of explaining return shape or failure modes, so a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences, front-loaded with the core purpose before the read-only note and pagination detail. Every sentence carries information, though the 'Read-only' clause mildly duplicates the readOnlyHint annotation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-param read-only list tool with full schema coverage and complete safety annotations, the description covers purpose, the optional caller rationale, and pagination. The absence of an output schema means return values need not be described, so it is essentially complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all three parameters (limit, caller, offset) are documented in the schema with defaults and ranges. The description reinforces the pagination defaults and clarifies caller's purpose ('view to read'), adding marginal value but not new syntax beyond the schema, keeping it at baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('List') and resource ('open broadcast lists caller subscribes to'), which lets an agent identify the operation. It does not explicitly distinguish itself from close siblings like geode_messaging_get_my_open_lists, so an agent must infer the subscribed-vs-open distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to choose this over alternatives such as get_my_open_lists, get_my_inbox_lists, or find_lists_by_keyword. The 'caller-dependent results' note describes a parameter rather than a usage condition, leaving the agent to infer selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_messaging_join_a_groupMessaging: join a groupAInspect
Join a messaging group. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| group_id | Yes | 0x-prefixed 32-byte hex id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare a non-read-only, open-world, non-destructive write, and the description goes meaningfully beyond that by explaining the two-phase intent model — nothing executes until signing and submission. It adds real context the annotations cannot express, but does not mention permissions, failure modes, or whether joining is reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the action front-loaded and the transaction caveat immediately after. The second sentence is dense but every clause (unsigned, intent, signer, sign, submit) carries needed information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a chain-writing tool with no output schema and no annotations covering the intent workflow, the description supplies the essential lifecycle the agent needs. It could say more about what the prepared intent returns or any prerequisites (e.g., group membership rules), but the critical mechanics are present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented in the schema and the baseline is 3. The description reinforces what `signer` means in the transaction flow but adds no syntax or format detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Join a messaging group") that is plainly distinct from siblings like geode_messaging_join_an_open_list and geode_messaging_make_a_new_group. It does not explicitly name those siblings to draw the contrast, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear operational context: this only prepares an unsigned intent, and the caller must sign with geode-local-signer and submit via geode_submit_intent. That effectively names the required follow-up tools, though it offers no explicit when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_messaging_join_an_open_listMessaging: join an open listAInspect
Subscribe to an open broadcast list. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| list_id | Yes | 0x-prefixed 32-byte hex id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only mark it as a non-read-only, non-destructive open-world write. The description adds the crucial behavioral fact that nothing is committed on-chain until a separate sign/submit cycle, which an agent must know to sequence calls correctly. It stops short of stating cost, finality, or what membership state results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the action and immediately followed by the commit/signing constraint. No filler or redundant restatement of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter mutation with full schema coverage and no output schema, the description supplies the essential missing piece: the intent/sign/submit lifecycle and the naming of the follow-up tools. It does not describe the resulting subscription state or any prerequisites for the list being open, which keeps it just short of complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters (signer, list_id) are fully documented in the schema. The description restates the role of `signer` in the signing flow but adds no new format or constraint detail, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Subscribe to an open broadcast list'), which clearly separates it from geode_messaging_unsubscribe_from_open_list and from the group siblings like geode_messaging_join_a_group. An agent can identify the operation without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains the two-step workflow explicitly: this only prepares an unsigned intent, which must then be signed with geode-local-signer and submitted with geode_submit_intent. That is strong actionable context, though it gives no when-not guidance (e.g. joining a closed/paid list or a group).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_messaging_leave_a_groupMessaging: leave a groupAInspect
Leave a messaging group. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| group_id_to_leave | Yes | 0x-prefixed 32-byte hex id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, openWorldHint=true, destructiveHint=false, so the write/safety profile is covered. The description goes well beyond by disclosing the crucial intent-based two-phase behavior: nothing executes until the returned unsigned transaction is signed and submitted, and it names the exact sibling tools required. That is high-value behavioral context not present in annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the purpose front-loaded and the workflow immediately following. No filler, every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and annotations covering the safety profile, the main gaps are minor: it doesn't state membership prerequisites (must currently be in the group) or what happens to prior messages on leaving. For a transaction-preparation tool it is otherwise complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (signer, group_id_to_leave) are already fully documented. The description only echoes the role of `signer` and adds no format or semantic 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Leave a messaging group'), immediately distinguishing it from siblings like geode_messaging_join_a_group and geode_messaging_make_a_new_group. An agent can select it without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly explains the required downstream flow — prepare intent, sign with geode-local-signer, submit with geode_submit_intent — which tells the agent how and in what context to use it. It stops short of naming when-not-to-use conditions or alternatives (e.g., leave vs delete-all-messages-to-group), so no explicit exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_messaging_make_a_new_groupMessaging: make a new groupAInspect
Create a messaging group with a first message. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| file_url | Yes | https:// URL or empty string, at most 512 bytes | |
| description | Yes | UTF-8 text, at most 2048 bytes; no control or invisible characters | |
| first_message | Yes | UTF-8 text, at most 2048 bytes; no control or invisible characters | |
| new_group_name | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| hide_from_search | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only mark it as non-read-only, open-world, non-destructive. The description adds far more: this writes to chain, produces an unsigned intent rather than a committed effect, and nothing occurs until an external sign-and-submit cycle. That is exactly the state-changing behavior an agent must know before calling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the creation action first, then the two-step write/sign/submit consequence. Every clause carries information and nothing is repeated from the schema or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a six-required-param mutation with no output schema, the description covers the critical unknown — that the call yields an unsigned intent needing external signing and submission. It does not say what the prepared intent contains or how the new group is later referenced, but with no return contract to satisfy this is close to complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 83%, so most parameters (file_url, description, first_message, new_group_name) are already documented, and the description's only parameter reference is `signer`, tying it to the signing flow. No additional format or constraint detail is supplied 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Create a messaging group with a first message'), which cleanly separates it from siblings like geode_messaging_make_a_new_list, geode_messaging_join_a_group, and geode_messaging_update_group_settings. An agent can identify the operation without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description routes the agent through the correct completion path — sign with geode-local-signer, then submit with geode_submit_intent — which is essential usage context for this tool family. It does not contrast with near-neighbors (new list vs new group), but the workflow guidance is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_messaging_make_a_new_listMessaging: make a new listAInspect
Create an open broadcast list that others can subscribe to. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| description | Yes | UTF-8 text, at most 2048 bytes; no control or invisible characters | |
| new_list_name | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| hide_from_search | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations confirm a non-read-only, open-world write, and the description adds genuinely non-obvious behavior: nothing is committed until the returned intent is signed and submitted. It does not mention fees, rate limits, or name-collision behavior, but the intent-flow disclosure is the key nuance.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences: the purpose first, then the write/sign/submit constraint. No filler, and the most important behavioral caveat is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema and no annotation detail beyond hints, the description covers the critical fact that this is a two-step intent flow. Minor gaps remain around the undocumented hide_from_search parameter and any limits on list creation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75% and the schema already documents signer, description, and new_list_name in detail. The description only mentions `signer`, which is already explained in the schema; `hide_from_search` remains undocumented in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Create an open broadcast list that others can subscribe to.' An agent can distinguish this from geode_messaging_make_a_new_group by the list/subscribe framing, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear procedural context: it prepares an unsigned intent for `signer`, which must be signed with geode-local-signer and submitted with geode_submit_intent. This tells the agent exactly what happens next, though it doesn't contrast when to pick a list over a group.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_messaging_send_message_to_groupMessaging: send message to groupAInspect
Send a message to a group you belong to. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| file_url | Yes | https:// URL or empty string, at most 512 bytes | |
| new_message | Yes | UTF-8 text, at most 2048 bytes; no control or invisible characters | |
| to_group_id | Yes | 0x-prefixed 32-byte hex id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations (readOnlyHint=false, openWorldHint=true, destructiveHint=false) by disclosing that this writes to the chain, produces an unsigned transaction (an intent), and has no effect until signed locally and submitted. This is exactly the kind of behavioral trait an agent needs to sequence correctly and is not derivable from the annotations alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences. The core action and group scope are front-loaded, and the second sentence carries the transaction-lifecycle detail with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a chain-writing tool with no output schema, the description covers the essential transaction lifecycle and gates the agent's next steps. Safety profile is handled by annotations and params are fully documented in 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and all four parameters are documented, so the baseline is 3. The description mentions `signer` and its local-signing role, but the schema's own signer description already says the same thing, so the description adds little parameter meaning beyond structured data.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Send a message to a group you belong to.' The scope ('a group you belong to') makes it distinguishable in practice from group-adjacent siblings. It does not explicitly name alternatives like geode_messaging_send_private_message or geode_messaging_send_message_to_list, so the differentiation is implicit 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear operational context: this only prepares an unsigned intent, and 'nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.' That routes the agent through the correct two-step follow-up. It stops short of stating when to choose this over other messaging tools, so no explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_messaging_send_message_to_listMessaging: send message to listAInspect
Broadcast a message to an open list you own. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| file_url | Yes | https:// URL or empty string, at most 512 bytes | |
| to_list_id | Yes | 0x-prefixed 32-byte hex id | |
| new_message | Yes | UTF-8 text, at most 2048 bytes; no control or invisible characters |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say readOnlyHint=false, destructiveHint=false, openWorldHint=true. The description adds crucial context the annotations cannot convey: this writes to the chain, but only prepares an unsigned intent, and nothing is committed until the user signs and submits. This two-step async pattern is exactly the behavioral detail an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no waste, and the core purpose and scope are front-loaded before the workflow caveat. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a chain-mutating tool with no output schema, the description supplies the missing pieces: the write semantics, the intent/unsigned-transaction model, and the required follow-up calls. An agent has everything needed to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (signer, file_url, to_list_id, new_message) are already documented in the schema. The description only references `signer` in passing, adding no new format or constraint 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Broadcast') and resource ('message to an open list you own'), with the ownership scope baked in. This clearly distinguishes it from send_message_to_group, send_private_message, and send_paid_message without needing to name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'open list you own' phrasing gives a clear precondition for use, and the sentence spells out the follow-up workflow (sign with geode-local-signer, submit with geode_submit_intent). It does not explicitly name when to prefer an alternative sibling, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_messaging_send_paid_messageMessaging: send paid messageAInspect
Send a message to an account's paid inbox (reaches accounts that have not allowed you). value must be at least the recipient's inbox fee (see geode_messaging_get_account_settings_data); higher amounts rank higher. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | GEODE to send with this call (explicit; never inferred) | |
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| file_url | Yes | https:// URL or empty string, at most 512 bytes | |
| to_account | Yes | Geode account address (SS58) | |
| new_message | Yes | UTF-8 text, at most 2048 bytes; no control or invisible characters | |
| confirm_token | No | Token from the first call, to confirm this irreversible action |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say readOnlyHint=false, destructiveHint=false, openWorldHint=true. The description goes well beyond that by disclosing the two-phase write path: it prepares an unsigned intent for `signer`, nothing happens until the agent signs with geode-local-signer and submits via geode_submit_intent. That workflow disclosure is exactly what an agent needs before calling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with no waste: the channel and its reach are front-loaded, the fee constraint follows, and the write/sign/submit workflow closes it out.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-param mutation with no output schema, the description covers the destination, the fee economics, and the intent/sign/submit lifecycle. It does not explain the confirm_token two-step confirmation (that lives only in the schema), leaving a small gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real meaning for `value` that the schema does not: it must be at least the recipient's inbox fee and higher amounts rank higher. Other params are left to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (send a message to a paid inbox) and immediately distinguishes the channel with '(reaches accounts that have not allowed you),' which separates it from geode_messaging_send_private_message 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical about reaching accounts that have not allowed you implies when this tool is the right choice, and it points to geode_messaging_get_account_settings_data for the fee that governs the call. It stops short of naming the alternative send tool explicitly or stating exclusions, so 4 rather than 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_messaging_send_private_messageMessaging: send private messageAInspect
Send a private message to an account that has allowed you to message it. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| to_acct | Yes | Geode account address (SS58) | |
| file_url | Yes | https:// URL or empty string, at most 512 bytes | |
| new_message | Yes | UTF-8 text, at most 2048 bytes; no control or invisible characters |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial behavior beyond the annotations: this is a chain write that only produces an unsigned intent, and nothing is committed until the agent signs locally and calls geode_submit_intent. Annotations (readOnlyHint=false, destructiveHint=false, openWorldHint=true) cover the safety profile, but the description does not cover fees, failure modes, or the result of calling it when the recipient has not allowed the sender.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler. The purpose leads, then the write/intent mechanics and required follow-up calls are packed into the second sentence, which is exactly the ordering an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a four-parameter write tool with no output schema, the description covers the essential mechanics (intent, signing, submission) and the recipient-permission precondition. What is missing is the failure/error expectation when the precondition fails and any routing hint toward the paid/group/list message variants.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each of the four parameters is already documented in the schema. The description only echoes `signer`'s role in the signing workflow and adds no format or constraint detail (e.g., byte limits, SS58 form) 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (send a private message to an account) and adds a scoping qualifier ('that has allowed you to message it') that separates it from geode_messaging_send_paid_message, send_message_to_group, and send_message_to_list. An agent can identify the right sibling without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives the precondition for use (recipient must have allowed you to message it) and a clear end-to-end flow: prepare intent, sign with geode-local-signer, submit with geode_submit_intent. It stops short of naming the alternative messaging tools and when to prefer them (paid message, group, list), so it is strong context without explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_messaging_unblock_accountMessaging: unblock accountAInspect
Unblock an account. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| unblock | Yes | Geode account address (SS58) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag this as a non-read, open-world write, but the description adds the crucial behavioral fact that no state changes until a separate signing and submission step occurs. Naming the exact companion tools (geode-local-signer, geode_submit_intent) tells the agent how the multi-step flow completes, which annotations alone cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero filler: the action is front-loaded and the intent/sign/submit workflow follows immediately. Nothing could be cut without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter mutation with no output schema, the description covers the action, the signer semantics, and the deferred-commitment workflow. It lacks any statement about preconditions (e.g. the account must currently be blocked) or post-submission behavior, which are minor omissions given the schema carries the field detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already fully documented. The description reinforces the role of `signer` ('prepared for this account') but adds no syntax or format detail beyond what the schema already states, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Unblock an account') and immediately frames it as a chain write that produces an unsigned intent. It does not differentiate itself from the near-identical sibling geode_social_unblock_account, so an agent must rely on the tool name/prefix to pick the messaging variant.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear procedural context: prepare the intent, then sign with geode-local-signer and submit with geode_submit_intent, so the agent knows nothing is committed on its own. It offers no guidance on when to choose this over geode_social_unblock_account or its inverse geode_messaging_block_account, so alternatives are implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_messaging_unsubscribe_from_open_listMessaging: unsubscribe from open listAInspect
Unsubscribe from an open broadcast list. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| list_id | Yes | 0x-prefixed 32-byte hex id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a non-read-only, non-destructive, open-world write, but the description adds crucial behavioral context beyond them: it is not an immediate on-chain action, it prepares an unsigned transaction, and nothing happens until the agent signs and submits. This is exactly the kind of non-obvious behavior the description should disclose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is two tightly written sentences with zero wasted words. The core action is front-loaded, followed immediately by the essential workflow constraint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a transaction-preparing mutation tool with no output schema, the description covers the core action and the critical sign-and-submit flow. It could be slightly more complete by noting the prerequisite of being subscribed or pointing to get_my_subscribed_lists for list_id, but the essential invocation path is clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, both signer and list_id are already well documented in the schema. The description mentions signer in passing, but adds no new syntax, format, or usage meaning for either parameter, which is the expected baseline when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence gives a specific verb and resource ('Unsubscribe from an open broadcast list'), which distinguishes it from group and private-message siblings. However, it does not explicitly contrast itself with the inverse sibling geode_messaging_join_an_open_list or other list operations, so sibling differentiation is only implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly explains the required two-step workflow: this prepares an unsigned transaction (intent) that must be signed with geode-local-signer and submitted with geode_submit_intent. It lacks explicit when-not conditions or named alternatives, but the operational context is clear enough for an agent to invoke it correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_messaging_update_group_settingsMessaging: update group settingsAInspect
Update a group's description and search visibility. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| group_id | Yes | 0x-prefixed 32-byte hex id | |
| description | Yes | UTF-8 text, at most 2048 bytes; no control or invisible characters | |
| hide_from_search | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds crucial lifecycle context beyond annotations: it writes to chain, prepares an unsigned intent for the signer, and nothing happens until the agent signs with geode-local-signer and submits with geode_submit_intent. This clearly discloses the two-step transaction model and dependency chain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences: the first front-loads purpose, the second explains the transaction workflow. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description explains the return conceptually (an unsigned intent) plus the required next steps. It omits authorization/ownership requirements for updating group settings, which is a notable gap for a mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 75%, with signer, group_id, and description already documented. The description maps 'search visibility' to the otherwise undocumented hide_from_search boolean, but does not explain its true/false semantics or add format details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Update') and resource ('a group's description and search visibility'), immediately distinguishing this tool from account-settings updates and other group operations like join/leave/create. An agent can tell what it does and roughly which sibling category it belongs to.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (change group description/search visibility) but gives no explicit when-to-use, prerequisites, or alternatives. It does not say whether group ownership/admin is required or when to prefer this over other group-management tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_messaging_update_settingsMessaging: update settingsAInspect
Set your messaging username, interests, paid-inbox fee and search visibility. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| my_username | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| my_inbox_fee | Yes | Amount in GEODE as a decimal string (e.g. "1.25"), or {"raw": "<planck>"} | |
| my_interests | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| hide_from_search | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations mark it as a non-read-only, non-destructive write, and the description adds the crucial two-phase intent semantics: nothing is committed until an external signer signs and the intent is submitted. This is meaningful context beyond the annotations. It could go further by noting that all five fields are required (a full overwrite of settings).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the purpose and followed by the workflow caveat. No filler and every clause carries actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a mutation tool with annotations present and no output schema, the description covers scope, the intent/sign/submit lifecycle, and the relevant parameters. It stops short of stating permissions or that the call replaces all settings atomically, which would be the remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
At 80% schema description coverage the baseline is 3, but the description adds a plain-language mapping for the fields (e.g., 'search visibility' -> hide_from_search, 'paid-inbox fee' -> my_inbox_fee) and clarifies that signer is the account the intent is prepared for. Minor gain over the schema, hence 4 rather than 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Set) plus resource (messaging settings) and enumerates the exact fields being changed: username, interests, paid-inbox fee, search visibility. This clearly separates it from read-side siblings like geode_messaging_get_account_settings_data and from the unrelated geode_social_update_settings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains the operational context: it writes to chain and produces an intent that must be signed with geode-local-signer and submitted via geode_submit_intent. That tells the agent when and how to complete the flow, though it does not explicitly contrast itself against the other update_settings siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_profile_get_account_profileProfile: get account profileARead-onlyInspect
Get an account's Geode profile: display name, location, tags, bio, links and linked app accounts. Read-only; no signature. Optional caller: the account whose view to read (for caller-dependent results). Results are paginated with offset and limit (default 50, max 200).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Items to return (default 50, max 200) | |
| caller | No | Optional account address (SS58) to run the query as | |
| offset | No | Items to skip (default 0) | |
| account | Yes | Geode account address (SS58) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false), but the description adds genuinely new context: 'no signature' discloses an authentication/cost requirement, and 'caller-dependent results' warns that output varies by viewer. The pagination sentence largely restates the schema rather than adding behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the resource description and only three compact sentences. The pagination clause duplicates schema metadata and could be trimmed, but overall there is little waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully enumerates the returned fields and notes pagination, so an agent can anticipate the response shape. The main completeness gap is the absence of any disambiguation against the overlapping social-profile sibling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: it explains `caller` as 'the account whose view to read' rather than merely 'run the query as', which clarifies why results can differ. Pagination defaults/max are repeated from the schema rather than extended.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get an account's Geode profile') and enumerates the returned data (display name, location, tags, bio, links, linked app accounts), so the agent knows exactly what this returns. However, it does nothing to distinguish itself from the near-identical sibling geode_social_get_account_profile, which is a real selection risk.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance and no named alternative. The only conditional language is the `caller` note ('for caller-dependent results'), which describes a parameter rather than when this tool is the right choice over geode_social_get_account_profile or geode_account_info.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_profile_new_profileProfile: new profileAInspect
Create your Geode profile (once per account; use update_your_profile afterwards). Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| my_bio | Yes | UTF-8 text, at most 2048 bytes; no control or invisible characters | |
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| website1 | Yes | https:// URL or empty string, at most 512 bytes | |
| website2 | Yes | https:// URL or empty string, at most 512 bytes | |
| website3 | Yes | https:// URL or empty string, at most 512 bytes | |
| photo_link | Yes | https:// URL or empty string, at most 512 bytes | |
| my_location | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| social_account | Yes | Geode account address (SS58) | |
| life_and_work_account | Yes | Geode account address (SS58) | |
| preferred_display_name | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| private_messaging_account | Yes | Geode account address (SS58) | |
| marketplace_seller_account | Yes | Geode account address (SS58) | |
| expertise_and_offerings_tags | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| hide_your_profile_from_search | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false, openWorldHint=true, destructiveHint=false. The description adds substantial context beyond that: this is a two-phase chain write that only prepares an unsigned transaction (intent) for `signer`, and nothing executes until the caller signs and submits elsewhere. This is exactly the behavior an agent needs and cannot get 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences with no filler; the once-per-account constraint and the sibling reference are front-loaded, and the intent/sign/submit workflow follows. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 14-parameter mutation with no output schema and full annotation coverage, the description supplies the missing pieces: the create-once semantics and the deferred, two-step signing/submission model. An agent has everything needed to call it and understand what happens next.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 93% with 14 required parameters, so the schema already documents field formats, byte limits, and URL constraints. The description adds only the meaning of `signer` (transaction prepared for this account). Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Create your Geode profile') and explicitly scopes it as once-per-account, immediately distinguishing it from the sibling geode_profile_update_your_profile which it names. An agent can select it correctly 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives the selection condition ('once per account') and directs to the alternative ('use update_your_profile afterwards'), plus the full downstream workflow: sign with geode-local-signer, submit with geode_submit_intent. Nothing about when to use this tool is left implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_profile_update_your_profileProfile: update your profileAInspect
Update your Geode profile. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| my_bio | Yes | UTF-8 text, at most 2048 bytes; no control or invisible characters | |
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| website1 | Yes | https:// URL or empty string, at most 512 bytes | |
| website2 | Yes | https:// URL or empty string, at most 512 bytes | |
| website3 | Yes | https:// URL or empty string, at most 512 bytes | |
| photo_link | Yes | https:// URL or empty string, at most 512 bytes | |
| my_location | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| social_account | Yes | Geode account address (SS58) | |
| life_and_work_account | Yes | Geode account address (SS58) | |
| preferred_display_name | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| private_messaging_account | Yes | Geode account address (SS58) | |
| marketplace_seller_account | Yes | Geode account address (SS58) | |
| expertise_and_offerings_tags | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| hide_your_profile_from_search | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds valuable context beyond that: the write is staged as an unsigned intent, requires an external signing step, and must be submitted separately. It omits that all 14 fields are required (likely a full overwrite rather than a partial patch), which is a meaningful 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the purpose front-loaded and the transaction lifecycle immediately following. No filler, though the sentence is dense enough that the workflow detail could be slightly clearer.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 14-required-param mutation with rich schema coverage and annotations, the description covers the essential intent/sign/submit lifecycle. It lacks any note that a complete profile must be supplied each call, but given the schema and annotations carry most of the load, this is close to complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 93%, so the schema already documents nearly every parameter including byte limits, URL formats, and SS58 address formats. The description adds no parameter-level meaning, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Update your Geode profile'), which is clear and distinguishable from the create sibling geode_profile_new_profile by the verb alone. It does not explicitly name or contrast with that sibling, so an agent must infer the distinction from the tool name rather than the description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear operational context: it prepares an unsigned intent and nothing happens until signed with geode-local-signer and submitted via geode_submit_intent. This tells the agent how this tool fits into a workflow, though it offers no explicit when-not-to-use guidance (e.g., vs new_profile or social_update_settings).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_social_block_accountSocial: block accountAInspect
Block an account on Geode Social. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| block | Yes | Geode account address (SS58) | |
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already set readOnlyHint=false and destructiveHint=false, and the description adds meaningful context beyond them: the effect is a chain write, but it is only an unsigned intent and 'nothing happens' until signed and submitted. It could go further by noting the block is reversible (via geode_social_unblock_account).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the action first, then the intent/sign/submit contract. No filler, and the most decision-relevant fact (no state change until signed) is front-loaded rather than buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly frames the return as an unsigned intent and names the follow-up tools needed to complete the operation. It stops short of describing the intent's shape or an example of the success response, but the workflow gap an agent would otherwise hit is closed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented in the schema. The description restates that the transaction is prepared for `signer` but adds no syntax, format, or edge-case detail beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Block an account on Geode Social'), which is immediately actionable. It does not explicitly differentiate itself from the near-identical siblings geode_social_unblock_account or geode_messaging_block_account, leaving the agent to rely on naming convention alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides the crucial downstream workflow: the call only prepares an unsigned intent, which must then be signed with geode-local-signer and submitted via geode_submit_intent. That is real when/how-to-use guidance, though it offers no exclusions (e.g., when blocking is preferable to messaging-level blocking or reporting).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_social_elevate_messageSocial: elevate messageAInspect
Endorse (elevate) a public post. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| this_message_id | Yes | 0x-prefixed 32-byte hex id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false, destructiveHint=false, openWorldHint=true. The description goes well beyond them, disclosing the critical behavioral trait that this is a deferred write: it prepares an unsigned intent and 'nothing happens until you sign it' and submit it. That is exactly the non-obvious behavior an agent needs to avoid assuming a side effect occurred.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: purpose first, then the deferred-write mechanism and the follow-up tooling. No padding, and the most consequential information (nothing happens until signing) is not buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter mutation with no output schema, the description covers what the agent needs: what it does, that it only stages an intent, and which tools complete the flow. It could be slightly more complete by noting that a returned intent must be submitted (return-value shape), but it is otherwise sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both signer and this_message_id fully. The description reinforces that the transaction is prepared for `signer`, adding marginal meaning over the schema's own description. Baseline 3 is appropriate when the schema carries the parameter detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Endorse (elevate)') and resource ('a public post'), which is unambiguous. It implicitly separates itself from geode_social_elevate_paid_message by scoping to a 'public post,' but never names the sibling or the boundary explicitly, so it just misses a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives real workflow context: sign with geode-local-signer, then submit with geode_submit_intent. That is useful next-step guidance, but it never states when to choose this tool over alternatives like elevate_paid_message or the lifeandwork endorsement tools. Usage is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_social_elevate_paid_messageSocial: elevate paid messageAInspect
Endorse a paid post. If your social interests contain its target interests and payouts remain, you receive the per-endorser payment. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| this_message_id | Yes | 0x-prefixed 32-byte hex id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations mark this as a non-destructive write (readOnlyHint=false, destructiveHint=false), and the description goes well beyond that by disclosing the deferred-execution model: it prepares an unsigned intent for `signer`, nothing takes effect until signed locally and submitted via geode_submit_intent, and it names the payout mechanic. That is exactly the behavioral context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core action and followed by the payout condition and the signing workflow. Efficient and well ordered, with only mild redundancy between "writes to the chain" and the intent explanation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter write tool with no output schema, the description covers purpose, earning condition, and the full prepare-sign-submit lifecycle, including naming the two follow-up tools. An agent has enough to invoke and complete the flow correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both `signer` and `this_message_id` fully. The description adds a modest gloss on `signer` (the transaction is prepared for this account), but nothing on the id format beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Endorse a paid post" gives a specific verb and resource, and the "paid" qualifier hints at the distinction from geode_social_elevate_message. It's clear what the tool does, but it never explicitly names the non-paid sibling it must be distinguished from, so the differentiation 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description supplies a real precondition for use: your social interests must contain the post's target interests and payouts must remain, otherwise you receive nothing. That is clear context for when this tool pays off. It stops short of stating when to prefer it over the plain elevate_message sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_social_follow_accountSocial: follow accountAInspect
Follow an account on Geode Social. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| follow | Yes | Geode account address (SS58) | |
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only give readOnlyHint=false, destructiveHint=false, openWorldHint=true. The description adds the critical, non-obvious behavior: this is a chain write that only *prepares* an unsigned transaction (intent) and has no effect until signed locally and submitted. That is exactly the context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two front-loaded sentences with zero filler: the first states the action, the second the deferred-execution mechanics and required follow-up calls. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter write tool with annotations but no output schema, the description supplies everything missing: write-to-chain semantics, the intent abstraction, and the sign/submit handoff. An agent can call it and complete the workflow correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters ('follow', 'signer') are documented in the schema, including that signer is the account the transaction is prepared for. The description adds no parameter-level detail beyond that, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Follow an account on Geode Social') and immediately disambiguates from the sibling geode_social_unfollow_account. The intent/transaction nature of the operation is clear without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly explains the two-step workflow requirement: nothing happens until you sign with geode-local-signer and submit with geode_submit_intent. This routes the agent correctly to the follow-up tools, though it does not explicitly state when to choose this over e.g. block_account.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_social_get_account_followingSocial: get account followingARead-onlyInspect
List the accounts an account follows on Geode Social. Read-only; no signature. Optional caller: the account whose view to read (for caller-dependent results). Results are paginated with offset and limit (default 50, max 200).
| Name | Required | Description | Default |
|---|---|---|---|
| user | Yes | Geode account address (SS58) | |
| limit | No | Items to return (default 50, max 200) | |
| caller | No | Optional account address (SS58) to run the query as | |
| offset | No | Items to skip (default 0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, destructiveHint=false), so the bar is lower, yet the description adds real value: 'no signature' tells the agent no auth is required, and the caller note flags that results are viewpoint-dependent. Pagination behavior is disclosed, though only as a restatement of the schema bounds.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core action, then the auth/caller caveat, then pagination. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries more burden, but it conveys the result content (followed accounts), the caller-dependent nature, and pagination limits. What a returned record actually contains (addresses only? profile data?) is left unstated, 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.
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 clarifies semantics the schema does not: `caller` is described as 'the account whose view to read (for caller-dependent results)' rather than merely 'run the query as', and the pagination defaults are restated in one place. This is modest added meaning above the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List the accounts an account follows on Geode Social'), which immediately separates it from the follow/unfollow and profile siblings. An agent can tell exactly what this returns without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It notes the operation is read-only and needs no signature, which is useful invocation context, and explains the `caller` viewpoint. However, it never states when to prefer this over adjacent reads like geode_social_get_account_profile or geode_profile_get_account_profile, nor any exclusions, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_social_get_account_paid_messagesSocial: get account paid messagesARead-onlyInspect
List an account's paid (promoted) Social posts. Read-only; no signature. Optional caller: the account whose view to read (for caller-dependent results). Results are paginated with offset and limit (default 50, max 200).
| Name | Required | Description | Default |
|---|---|---|---|
| user | Yes | Geode account address (SS58) | |
| limit | No | Items to return (default 50, max 200) | |
| caller | No | Optional account address (SS58) to run the query as | |
| offset | No | Items to skip (default 0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry the read-only safety profile, but the description adds beyond them: 'no signature' discloses auth requirements and it documents pagination behavior (offset/limit, default 50, max 200). It does not describe return shape, though no output schema exists to cover that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the purpose followed by safety and parameter context. Every sentence is functional with no filler, though the caller clause parenthetical is slightly dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with no output schema, the description covers purpose, auth signal, the caller nuance, and pagination semantics adequately. Only the absence of any note on return/ordering content keeps it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% so the baseline is 3, but the description adds genuine meaning: it clarifies caller as 'the account whose view to read (for caller-dependent results)', which is more informative than the schema's terse 'to run the query as'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (an account's paid/promoted Social posts), which an agent can distinguish from feed and message siblings at a glance. It does not explicitly differentiate itself from the very similar geode_social_get_paid_feed, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through 'Read-only; no signature' and explains the caller parameter's purpose, giving useful context. However, it never states when to choose this over sibling read tools like get_paid_feed or get_account_following, so guidance stays at the implied level.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_social_get_account_profileSocial: get account profileBRead-onlyInspect
Get an account's Social profile: username, followers, who it follows, and its posts. Read-only; no signature. Optional caller: the account whose view to read (for caller-dependent results).
| Name | Required | Description | Default |
|---|---|---|---|
| user | Yes | Geode account address (SS58) | |
| caller | No | Optional account address (SS58) to run the query as |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=true. The description adds a little beyond that: 'no signature' indicates no crypto signing is required, and it enumerates the returned content. It does not cover pagination or rate limits, so a moderate score is warranted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the verb+resource and contents, then appends behavioral ('Read-only; no signature') and parameter notes. Compact and well-ordered with no wasted sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully enumerates return contents (username, followers, following, posts) and confirms read-only semantics. It is largely complete for a simple two-param read, though sibling disambiguation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already documented. The description reframes 'caller' as 'the account whose view to read (for caller-dependent results)', which adds a useful nuance about view-dependence, but this is marginal beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (account's Social profile) and enumerates what the profile contains (username, followers, following, posts). However it does not differentiate from the similarly-named sibling geode_profile_get_account_profile, so an agent must infer the 'Social' namespace distinction on its own.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use guidance and no comparison to alternatives, despite a confusingly similar sibling (geode_profile_get_account_profile) and related social reads (get_account_following, get_public_feed). The caller note hints at a use case but does not frame selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_social_get_details_for_messageSocial: get details for messageARead-onlyInspect
Get full details of one Social post. Read-only; no signature. Optional caller: the account whose view to read (for caller-dependent results).
| Name | Required | Description | Default |
|---|---|---|---|
| caller | No | Optional account address (SS58) to run the query as | |
| message_id | Yes | 0x-prefixed 32-byte hex id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so repeating 'Read-only' adds little, but 'no signature' supplies auth context the annotations don't cover, and the caller note explains caller-dependent results. That is meaningful behavioral context beyond the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, zero waste, and the core purpose is front-loaded ahead of the optional-parameter note. Nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only single-post getter with no output schema and 100% schema coverage, the description is sufficient to call it correctly. The only minor gap is that 'full details' leaves the returned fields unspecified, though no output schema exists to lean on.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real meaning for `caller` ('the account whose view to read, for caller-dependent results') beyond the schema's 'run the query as'. It does not restate the message_id format, which the schema already covers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Get full details of one Social post'), which is clear and actionable. It does not, however, name or contrast against the very similar sibling geode_social_get_details_for_paid_message, so an agent must infer which detail-getter applies to a given message.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied (fetch details of a single post) and the caller parameter's purpose is described, but there is no explicit when-to-use/when-not or routing against siblings like get_details_for_paid_message or get_replies_for_message. Adequate but with a clear gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_social_get_details_for_paid_messageSocial: get details for paid messageARead-onlyInspect
Get full details of one paid Social post, including endorsers and staked amounts. Read-only; no signature. Optional caller: the account whose view to read (for caller-dependent results).
| Name | Required | Description | Default |
|---|---|---|---|
| caller | No | Optional account address (SS58) to run the query as | |
| message_id | Yes | 0x-prefixed 32-byte hex id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered; the description still adds meaningful context by stating 'no signature' (no auth/signing requirement) and explaining that caller drives caller-dependent results. It stops short of describing pagination or response size.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences, front-loaded with the core purpose, then the safety/auth note, then the optional parameter. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only single-item fetch with no output schema, the description covers purpose, safety, and the optional parameter's effect. It could say more about what 'full details' includes beyond endorsers and staked amounts, but nothing essential to calling it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for both parameters, so the schema already documents caller and message_id fully. The description adds only the rationale for caller ('the account whose view to read'), which is a modest gain over the schema's 'run the query as'. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (get full details) and resource (one paid Social post), and names the payload fields (endorsers, staked amounts). The 'paid' qualifier distinguishes it from the non-paid sibling geode_social_get_details_for_message, though that sibling is never named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the 'paid post' scoping and the note that caller is for caller-dependent results, but the description never states when to pick this over geode_social_get_details_for_message, geode_social_get_account_paid_messages, or geode_social_get_paid_feed. No explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_social_get_paid_feedSocial: get paid feedBRead-onlyInspect
Get caller's paid (promoted) Social feed, optionally filtered by a keyword. Read-only; no signature. Optional caller: the account whose view to read (for caller-dependent results).
| Name | Required | Description | Default |
|---|---|---|---|
| caller | No | Optional account address (SS58) to run the query as | |
| keyword | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so 'Read-only' is largely redundant; however 'no signature' adds genuine auth context beyond the annotations. It still does not mention pagination, result size, or return format, so added value is modest.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the core action front-loaded and no filler. The trailing clause on `caller` is a slight redundancy given the schema, but overall it is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only two-parameter tool with full annotation coverage, the description is adequate but not complete: it omits any return-shape or pagination note (no output schema exists) and contains the keyword required/optional inconsistency. It covers the essentials without fully resolving ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description usefully expands `caller` beyond the schema's 'SS58 to run the query as' by explaining it selects whose view is read, but it also says the feed is 'optionally filtered by a keyword' while the schema marks `keyword` as required — a mismatch that weakens the parameter guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get caller's paid (promoted) Social feed') and clarifies the 'paid/promoted' terminology. However, it does not explicitly differentiate itself from close siblings like geode_social_get_public_feed or geode_social_get_account_paid_messages, leaving the boundary to inference from names.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies context by noting the feed is 'paid (promoted)' and can be keyword-filtered, but never states when to use this tool versus the public feed or account paid-messages siblings, and offers no exclusions or prerequisites. Usage 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.
geode_social_get_public_feedSocial: get public feedARead-onlyInspect
Get caller's Geode Social feed (posts from accounts it follows). Read-only; no signature. Optional caller: the account whose view to read (for caller-dependent results).
| Name | Required | Description | Default |
|---|---|---|---|
| caller | No | Optional account address (SS58) to run the query as |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds genuinely new behavioral context: 'no signature' tells the agent no signing/auth step is required, and it clarifies that results can vary by caller. It stops short of explaining return volume or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short clauses, front-loaded with the core action and then the notable behaviors. Minimal waste; the caller sentence is slightly redundant with the parameter name but still earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-optional-parameter read tool with full annotation coverage and no output schema, the description supplies the key facts: what the feed contains, that it is unsigned/read-only, and how caller changes the result. Only the absence of sibling differentiation and any hint at result volume keeps it from being complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, and the description adds real semantic value: it explains the default (the caller's own view) and that passing caller yields caller-dependent results, which the schema's terse 'run the query as' does not convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get ... feed') plus the content scope ('posts from accounts it follows'), which distinguishes it from messaging inbox tools. However, it never distinguishes itself from the very similar sibling geode_social_get_paid_feed, leaving the agent to guess which feed variant applies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not guidance is given, and the obvious alternative (geode_social_get_paid_feed) is not named or contrasted. The only guidance present is about the caller parameter, not about selecting this tool over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_social_get_replies_for_messageSocial: get replies for messageARead-onlyInspect
List the replies to a Social post. Read-only; no signature. Optional caller: the account whose view to read (for caller-dependent results). Results are paginated with offset and limit (default 50, max 200).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Items to return (default 50, max 200) | |
| caller | No | Optional account address (SS58) to run the query as | |
| offset | No | Items to skip (default 0) | |
| message_id | Yes | 0x-prefixed 32-byte hex id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so 'Read-only' is largely redundant. The genuinely additive context is 'no signature' (no auth/signing needed to call it) plus the pagination behavior with default and max. It doesn't describe ordering or error behavior for an unknown message_id, keeping it out of 5 territory.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core action, then auth profile, then parameter notes. Nothing extraneous; each clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list endpoint with fully documented parameters, the description covers what the agent needs to invoke it. With no output schema, it could say slightly more about what a 'reply' object contains or how results are ordered, 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.
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 earns an extra point by explaining `caller` as 'the account whose view to read (for caller-dependent results)', which clarifies intent beyond the schema's terse 'account address (SS58) to run the query as'. It only restates the pagination defaults already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'List the replies to a Social post.' This is clearly distinguishable from geode_social_get_details_for_message and the feed tools. It stops short of naming or contrasting a sibling, so it lands at 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The tool's purpose implies its usage, and the note that `caller` produces caller-dependent results hints at when to supply it. However, there is no explicit when-to-use guidance, no when-not-to-use, and no routing to alternatives such as get_details_for_message or get_public_feed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_social_send_message_publicSocial: send message publicAInspect
Post a public message on Geode Social. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| new_message | Yes | UTF-8 text, at most 2048 bytes; no control or invisible characters | |
| photo_or_youtube_link | Yes | https:// URL or empty string, at most 512 bytes | |
| website_or_document_link | Yes | https:// URL or empty string, at most 512 bytes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true. The description adds valuable context beyond that: it writes to the chain, prepares an unsigned transaction, and nothing is committed until an external sign+submit flow. This is meaningful behavioral disclosure for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences, front-loaded with the core action before the chain/intent mechanics. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With annotations covering the safety profile and a fully described schema, the description supplies the one thing structured data cannot: the two-step sign-and-submit flow. It stops short of explaining the resulting intent object or failure modes, but is largely complete for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters with format and size constraints. The description adds no parameter-level detail (e.g. message/link semantics), so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Post a public message on Geode Social'), clearly identifying the action. 'Public' implicitly separates it from send_paid_message_public and send_reply_public, but the description doesn't name those siblings explicitly, so differentiation relies on inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear workflow guidance (prepare intent, sign with geode-local-signer, submit via geode_submit_intent), which is genuine usage context. However, it never states when to choose this tool over alternatives like private messaging or a public reply, leaving that to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_social_send_paid_message_publicSocial: send paid message publicAInspect
Post a promoted (paid) message. value funds endorser payouts; set it to maximum_number_of_paid_endorsers × payment_per_endorser. Accounts whose interests contain target_interests are paid when they elevate it. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | GEODE to send with this call (explicit; never inferred) | |
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| new_message | Yes | UTF-8 text, at most 2048 bytes; no control or invisible characters | |
| confirm_token | No | Token from the first call, to confirm this irreversible action | |
| target_interests | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| payment_per_endorser | Yes | Amount in GEODE as a decimal string (e.g. "1.25"), or {"raw": "<planck>"} | |
| photo_or_youtube_link | Yes | https:// URL or empty string, at most 512 bytes | |
| website_or_document_link | Yes | https:// URL or empty string, at most 512 bytes | |
| maximum_number_of_paid_endorsers | Yes | Non-negative integer as a string of digits |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations (readOnlyHint=false, destructiveHint=false, openWorldHint=true) by disclosing that this only prepares an unsigned intent, that nothing happens until it is signed with geode-local-signer and submitted with geode_submit_intent. It does not mention the confirm_token / irreversibility confirmation flow present in the schema, which is a notable omission for a write tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action, then progressively adds funding mechanics and the write workflow. Three dense sentences with little waste, though the value formula and payout mechanics could be slightly tighter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter mutation tool with no output schema, the description covers the action, funding formula, and the intent-sign-submit lifecycle adequately. The main gap is the unexplained confirm_token/irreversible-confirmation step, which the schema includes but the description ignores.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100%, so baseline is 3, but the description adds real meaning: it defines the value formula (maximum_number_of_paid_endorsers × payment_per_endorser) and explains that target_interests selects which accounts get paid on elevation. This exceeds what the schema alone conveys.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Post a promoted (paid) message"), and the "promoted (paid)" qualifier distinguishes it from the plain geode_social_send_message_public sibling. An agent can identify the action without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: the paid/promoted framing suggests when this is chosen over a normal message, but there is no explicit when-to-use or when-not-to-use guidance versus the many messaging/social siblings. The sign-then-submit workflow is described, but that is mechanics, not tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_social_send_reply_publicSocial: send reply publicAInspect
Reply publicly to a post. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| new_message | Yes | UTF-8 text, at most 2048 bytes; no control or invisible characters | |
| replying_to | Yes | 0x-prefixed 32-byte hex id | |
| photo_or_youtube_link | Yes | https:// URL or empty string, at most 512 bytes | |
| website_or_document_link | Yes | https:// URL or empty string, at most 512 bytes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnly=false, destructive=false, openWorld=true), and the description adds real value beyond them: it discloses that this is a chain write that only PREPARES an unsigned intent, that nothing executes until signing with geode-local-signer and submitting via geode_submit_intent. That deferred-execution nuance is not derivable from the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, purpose front-loaded, then the critical deferred-execution workflow. Nothing is wasted; every clause carries information the agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given five fully-described params, no output schema, and annotations, the description supplies the essential integration detail (sign then submit). It could go further on return shape or the signer/submit hand-off specifics, but it is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all five parameters are already fully documented, and the description adds only the clarification that the transaction is prepared for `signer`. Baseline 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Reply publicly to a post') with the 'public' qualifier that separates it from private/paid messaging. It does not explicitly name sibling tools like geode_social_send_paid_message_public, so differentiation is implied 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'replying to a post' framing implies the use case, and the workflow note tells the agent this is a two-step intent flow. However, no alternatives are named and there is no when-not guidance versus geode_social_send_message_public or the paid variants.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_social_unblock_accountSocial: unblock accountAInspect
Unblock an account on Geode Social. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| unblock | Yes | Geode account address (SS58) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, destructiveHint=false, openWorldHint=true; the description adds the crucial non-obvious behavior that this is a prepared unsigned intent requiring external signing and submission. It doesn't explicitly mention on-chain finality or reversibility, but the write-path context is strong.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences: purpose first, then the critical action flow with named follow-up tools. No wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-param mutation tool with full schema coverage and no output schema, the description covers the key behavioral gap (intent/sign/submit). It could add what state changes on unblock or whether the intent expires, but an agent has enough to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both signer and unblock are already described in the schema with SS58 and signer semantics. The description adds little about the parameters beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Unblock an account on Geode Social'), and the intent-based two-step flow distinguishes it from sibling block/unblock tools. An agent can identify it without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly explains the usage flow: nothing happens until you sign with geode-local-signer and submit with geode_submit_intent. It names the follow-up tools explicitly, though it doesn't name the counterpart block tool or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_social_unfollow_accountSocial: unfollow accountAInspect
Stop following an account. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| unfollow | Yes | Geode account address (SS58) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare a non-read-only, non-destructive, open-world write, and the description adds genuinely useful context beyond that: the operation writes to the chain and produces an unsigned transaction that has no effect until signed and submitted. It omits reversibility and any fee/auth implications, but the intent lifecycle disclosure 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the action first, then the critical constraint and follow-up tool names. Nothing is redundant and the most important caveat (nothing happens until you sign) is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter mutation with no output schema, the description covers the essential mechanic an agent must know (intent, sign, submit) and names the exact companion tools. It leaves out return/result details, but no output schema exists so that is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both signer and unfollow documented as SS58 addresses and signer's local-signing requirement explained in the schema itself. The description adds nothing about parameter meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Stop following an account'), and the name/verb pairing directly contrasts with the sibling geode_social_follow_account. An agent can distinguish it from the follow and block siblings without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear workflow context: this only prepares an unsigned intent, and must be completed via geode-local-signer plus geode_submit_intent. It does not state when to prefer this over geode_social_block_account or other relationship tools, so it stops short of full alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_social_update_settingsSocial: update settingsAInspect
Set your social username, interests, and feed sizes. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| my_username | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| my_interests | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| max_messages_in_my_feed | Yes | Non-negative integer as a string of digits | |
| max_messages_in_my_paid_feed | Yes | Non-negative integer as a string of digits |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, and the description adds the crucial two-phase behavior: nothing takes effect until the returned unsigned transaction is signed and submitted. That is meaningful context beyond the annotations, though it does not say what happens to omitted settings or whether updates overwrite prior values.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste, and the field list is front-loaded before the workflow caveat. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description covers what an agent needs: the fields it sets, the fact that the result is an unsigned intent, and the exact follow-up tools required to make it effective. Combined with full schema coverage and annotations, nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so every parameter is already documented, including the signer's SS58 address and the string-encoded integer constraints. The description only restates the field purposes and mentions the transaction is prepared for `signer`, adding little beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Set') and resource (social username, interests, feed sizes), so the agent knows exactly what is mutated. It does not explicitly name the confusingly similar siblings (geode_messaging_update_settings, geode_profile_update_your_profile), but the enumerated fields make the social scope self-evident.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly frames the workflow context: this only prepares an intent, and the agent must follow up with geode-local-signer and geode_submit_intent. It gives strong positive guidance on how to use it, but no explicit when-not or direct comparison to the other *_update_settings siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_submit_intentSubmit a signed intentAInspect
Broadcast a transaction you prepared with a geode_* write tool and signed with geode-local-signer (sign_intent). The server checks the signature against the exact payload it built, then waits for inclusion in a block and returns the result and decoded contract events.
| Name | Required | Description | Default |
|---|---|---|---|
| intent_id | Yes | intent_id returned by the write tool | |
| signature | Yes | Signature from geode-local-signer sign_intent (0x-prefixed hex) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-read-only, open-world, non-destructive. The description adds real behavioral context beyond that: the server verifies the signature against the exact payload it built, and the call blocks until the transaction is included in a block. That latency/blocking expectation is the key operational detail an agent needs; it does not cover timeout or failure/retry behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly packed sentences with zero filler, front-loading the action (broadcast) followed by the verification and blocking-return behavior. Every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully states what comes back (result plus decoded contract events) and the blocking wait. For a mutation tool with annotations covering the safety profile, this is nearly complete; it omits error/failure handling and any hint of typical wait duration.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented as the intent_id from the write tool and the 0x-prefixed signature from sign_intent. The description reinforces the provenance of the signature (must match the exact built payload) but adds no format or constraint detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: broadcasts a prepared-and-signed transaction, and names the tools that produce its inputs (geode_* write tool, geode-local-signer sign_intent). It does not explicitly contrast with the sibling geode_get_intent, which is the natural alternative for checking intent status, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context: use this after a write tool has built the payload and the local signer has signed the intent_id. The prerequisite chain is explicit, but there is no explicit when-not guidance (e.g., use geode_get_intent to poll instead of resubmitting).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_surveys_close_my_surveySurveys: close my surveyADestructiveInspect
Close one of your surveys (length is 1, 3 or 5); its unspent budget is refunded to you. Fails if the budget is already fully paid out. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent. Irreversible: the first call returns a confirm_token; call again with it to proceed.
| Name | Required | Description | Default |
|---|---|---|---|
| length | Yes | ||
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| survey_id | Yes | 0x-prefixed 32-byte hex id | |
| confirm_token | No | Token from the first call, to confirm this irreversible action |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the destructive/openWorld annotations: it discloses the refund of unspent budget, the fully-paid-out failure mode, that it only prepares an unsigned intent (nothing executes until signed), and the irreversible two-step confirm_token flow. This is rich behavioral context an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the action and its consequence, then layers the failure condition, the intent/signing workflow, and the irreversibility note. Dense but every sentence carries information the caller needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive on-chain mutation with no output schema, it covers what is destroyed/refunded, the required signing workflow, and the confirm_token return value. Nothing an agent needs 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75% and the schema only says `length` is an integer 0-255; the description supplies the critical constraint that it must be 1, 3, or 5, which is essential to call correctly. It also explains confirm_token's role in the two-step flow.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource ('Close one of your surveys') with scope and consequence spelled out (unspent budget refunded). It clearly distinguishes itself from sibling read tools like geode_surveys_get_my_surveys by describing the closing/refund behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear precondition ('Fails if the budget is already fully paid out') and names the follow-on workflow tools (geode-local-signer, geode_submit_intent). It doesn't, however, state explicit alternatives or when-not-to-close beyond the single failure condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_surveys_get_available_surveysSurveys: get available surveysARead-onlyInspect
List open surveys (1-, 3- and 5-question) with their questions, payout per response and remaining capacity. Read-only; no signature. Optional caller: the account whose view to read (for caller-dependent results).
| Name | Required | Description | Default |
|---|---|---|---|
| caller | No | Optional account address (SS58) to run the query as |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the 'Read-only' clause is largely redundant. However, 'no signature' adds genuine auth context (no signing required) beyond the annotations, and the return content is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences with the resource and return contents front-loaded and the optional parameter note last. No filler, every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool with no output schema, the description compensates by naming what is returned and confirming the safety/auth profile. 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents `caller` as an optional SS58 address. The description adds meaning by explaining it selects 'the account whose view to read (for caller-dependent results)', a rationale the schema does not convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (list) and resource (open surveys) and enumerates what is included (questions, payout per response, remaining capacity). This clearly separates it from siblings like geode_surveys_get_my_surveys and geode_surveys_get_survey_responses, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the description makes it evident you call this to browse surveys available to take, but it never states when to prefer it over geode_surveys_get_my_surveys or get_survey_by_id, nor any preconditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_surveys_get_my_surveysSurveys: get my surveysARead-onlyInspect
List the surveys caller created. Read-only; no signature. Optional caller: the account whose view to read (for caller-dependent results).
| Name | Required | Description | Default |
|---|---|---|---|
| caller | No | Optional account address (SS58) to run the query as |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/openWorld/non-destructive, but the description adds genuinely useful behavioral facts: the call needs no signature, and results can be caller-dependent. That is context annotations cannot express and it bears directly on invocation. It stops short of describing return shape or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact segments, front-loaded with the operation, then the safety/signature fact, then the parameter note. Nothing redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read with no output schema, the description tells the agent what is returned (surveys created by caller) and that no signature is needed. Adequate; only pagination/ordering behavior is unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter is already documented as an SS58 query-as address. The description's gloss ('the account whose view to read, for caller-dependent results') mostly restates that, adding only the hint that output varies by caller. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource with scope: surveys the `caller` created. It is distinguishable from geode_surveys_get_available_surveys and get_survey_by_id, though it doesn't name those siblings to lock in the distinction. Clear, but not maximally differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied - reading one's own created surveys - and the optional caller is framed as viewing as another account. No explicit when-to-use versus the other survey-listing siblings, no prerequisites, no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_surveys_get_survey_by_idSurveys: get survey by idARead-onlyInspect
Look up one survey by its survey_id (from geode_surveys_get_available_surveys, geode_surveys_get_my_surveys or a shared link): its questions, payout per response and remaining capacity. Returns it only while it is open, i.e. funded, payout > 0 and under its response cap; a closed, unfunded or full survey (or an unknown id) comes back as an empty result. Read-only; no signature. Optional caller: the account whose view to read (for caller-dependent results).
| Name | Required | Description | Default |
|---|---|---|---|
| caller | No | Optional account address (SS58) to run the query as | |
| survey_id | Yes | 0x-prefixed 32-byte hex id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover read-only/safety, and the description adds substantial context on top: the empty-result semantics for closed, unfunded, full, or unknown surveys, plus the note that results are caller-dependent. These are non-obvious behaviors an agent must know to interpret a blank response correctly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then conditions, then read-only status. Dense but every clause carries information; the parenthetical id sources are useful rather than filler. Slightly run-on but not wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly carries the return-value burden, naming the payload (questions, payout per response, remaining capacity) and the empty-result case. Nothing an agent needs to call and interpret this tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds genuine meaning beyond the schema: it explains where survey_id comes from and that `caller` selects whose view results are computed against (caller-dependent results), which the terse schema field does not convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('look up one survey by its survey_id') and immediately distinguishes itself from the list siblings it draws ids from (get_available_surveys, get_my_surveys). An agent can tell this is a single-item fetch, not a listing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains the precondition for use (you need a survey_id obtained from the sibling list tools or a shared link) and the outcome conditions. It stops short of an explicit 'use this instead of X when Y' routing statement, but the sourcing context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_surveys_get_survey_responses_1Surveys: get survey responses 1ARead-onlyInspect
Get responses to one of your 1-question surveys. Only the owner can read them: pass caller = the owner. Responses are numbered from 1; returns numbers from..to-1 (at most 100 per call). Read-only; no signature. Optional caller: the account whose view to read (for caller-dependent results). Results are paginated with offset and limit (default 50, max 200).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Items to return (default 50, max 200) | |
| caller | No | Optional account address (SS58) to run the query as | |
| offset | No | Items to skip (default 0) | |
| survey_id | Yes | 0x-prefixed 32-byte hex id | |
| to_response_number | Yes | Non-negative integer as a string of digits | |
| from_response_number | Yes | Non-negative integer as a string of digits |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well past the annotations (which only say readOnly/openWorld/non-destructive) by disclosing the owner-only auth constraint, that no signature is required, the numbering-from-1 convention, the exclusive `from..to-1` range semantics, and the 100-per-call cap. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core purpose and constraint in the first two sentences, with pagination details after. Dense and mostly waste-free, though the 'max 200' appears twice and the '100 per call' vs limit max 200 relationship is left implicit.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description covers auth, range semantics, and pagination, which is nearly everything needed to invoke correctly. It never hints at the shape of a response object or what a '1-question' answer looks like, which is a minor gap given the absent output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100%, so baseline is 3, but the description adds real meaning: that `from_response_number`/`to_response_number` are 1-based and exclusive at the upper bound, and that `caller` selects the account view. It does not fully reconcile the '100 per call' cap against the schema's limit maximum of 200, leaving a small ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('Get responses') plus resource ('1-question surveys'), and the '1-question' qualifier implicitly distinguishes it from the sibling get_survey_responses_3 and get_survey_responses_5 variants. An agent can tell which survey flavor this targets without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit precondition ('Only the owner can read them: pass `caller` = the owner') and explains the caller-dependent-results case. It does not explicitly name the 3-question/5-question siblings as the alternative for other survey types, 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.
geode_surveys_get_survey_responses_3Surveys: get survey responses 3ARead-onlyInspect
Get responses to one of your 3-question surveys. Only the owner can read them: pass caller = the owner. Responses are numbered from 1; returns numbers from..to-1 (at most 100 per call). Read-only; no signature. Optional caller: the account whose view to read (for caller-dependent results). Results are paginated with offset and limit (default 50, max 200).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Items to return (default 50, max 200) | |
| caller | No | Optional account address (SS58) to run the query as | |
| offset | No | Items to skip (default 0) | |
| survey_id | Yes | 0x-prefixed 32-byte hex id | |
| to_response_number | Yes | Non-negative integer as a string of digits | |
| from_response_number | Yes | Non-negative integer as a string of digits |
TDQS
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 context beyond them: owner-only authorization, that no signature is required, and the response numbering scheme. It stops short of describing return format or rate behavior, but the added disclosure is genuinely useful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose, then auth, then range/pagination semantics; every sentence contributes. Slight redundancy in covering `caller` twice (owner instruction plus optional-account note) is the only waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description still covers auth requirements, the response-numbering convention, the 100-item cap, and pagination defaults/limits, which is enough for correct invocation. It could say more about the shape of a returned response, but the essential call-time details are present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds semantics the schema lacks: `caller` is framed as the account whose view produces caller-dependent results, and `from_response_number`/`to_response_number` are explained as a 1-based half-open range returning from..to-1 capped at 100 items.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Get responses to one of your 3-question surveys") and the "3-question" qualifier distinguishes it from the sibling responses_1 and responses_5 tools without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context that only the owner can read the responses and instructs to pass `caller` = the owner, which is actionable usage guidance. It does not explicitly name the 1-question or 5-question variants as alternatives, so it falls short of a full when/when-not/alternatives statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_surveys_get_survey_responses_5Surveys: get survey responses 5ARead-onlyInspect
Get responses to one of your 5-question surveys. Only the owner can read them: pass caller = the owner. Responses are numbered from 1; returns numbers from..to-1 (at most 100 per call). Read-only; no signature. Optional caller: the account whose view to read (for caller-dependent results). Results are paginated with offset and limit (default 50, max 200).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Items to return (default 50, max 200) | |
| caller | No | Optional account address (SS58) to run the query as | |
| offset | No | Items to skip (default 0) | |
| survey_id | Yes | 0x-prefixed 32-byte hex id | |
| to_response_number | Yes | Non-negative integer as a string of digits | |
| from_response_number | Yes | Non-negative integer as a string of digits |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/openWorld annotations, it discloses an authorization requirement (owner-only), the response numbering convention (from 1), the half-open return window (from..to-1), and a per-call cap of 100. This is meaningful behavioral context; the only tension is the '100 per call' range cap versus the schema's limit max of 200, which stay distinct but could confuse.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and scoping constraint, and mostly tight. Minor redundancy: caller is explained twice ('pass caller = the owner' and 'Optional caller: the account whose view to read'), and 'Read-only; no signature' echoes the annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with annotations and no output schema, the description covers the key mechanics: auth requirement, numbering, range semantics, and pagination. It stops short of describing the shape of a returned response, a minor gap given no output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage the baseline is 3, and the description adds real meaning: it clarifies that caller is the account/owner whose view is read and that from/to numbers are half-open (from..to-1). It also restates the offset/limit pagination defaults, which the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (responses to a 5-question survey), and the '5-question' qualifier implicitly separates it from sibling tools get_survey_responses_1/_3. An agent can tell it apart from get_survey_by_id or get_my_surveys without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It establishes a precondition ('Only the owner can read them: pass caller = the owner'), which is genuine usage guidance. However, it never states when to prefer this over the _1/_3 variants or other survey readers, so the when-to-use routing is only implied by the size qualifier.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_surveys_make_a_new_survey_1Surveys: make a new survey 1AInspect
Create a 1-question survey that pays each respondent payout. value must be at least payout × max_responses (the survey's budget). Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | GEODE to send with this call (explicit; never inferred) | |
| payout | Yes | Amount in GEODE as a decimal string (e.g. "1.25"), or {"raw": "<planck>"} | |
| public | Yes | ||
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| question_1 | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| survey_name | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| confirm_token | No | Token from the first call, to confirm this irreversible action | |
| max_responses | Yes | Non-negative integer as a string of digits |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=false, openWorldHint=true), the description discloses the full write lifecycle: an unsigned intent is prepared, nothing executes until it is signed with geode-local-signer and submitted via geode_submit_intent. That two-phase behavior and the named follow-up tools are exactly the context an agent needs for a chain-write tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight clauses ordered by importance: purpose, budget constraint, then the write-then-sign workflow. No filler; each sentence carries actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter write tool with no output schema, the description covers purpose, the key financial constraint, and the transaction lifecycle. It leaves the confirm_token confirmation path unmentioned, which is a minor gap against an otherwise strong 88%-covered schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 88%, so the baseline is 3, but the description adds real cross-parameter meaning: 'payout' is per respondent and 'value' is the budget that must be >= payout × max_responses. It does not explain confirm_token, which the schema alone carries, so it sits just above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Create) and resource (1-question survey) with its distinguishing scope: one question that pays respondents a payout. The '1-question' framing implicitly differentiates it from the make_a_new_survey_3 and _5 siblings, so an agent can pick the right variant without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The precondition ('value must be at least payout × max_responses') and the post-conditions (sign, then submit) are given, but there is no explicit guidance on when to choose the 1- vs 3- vs 5-question variant, nor when-not to use this tool. Usage is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_surveys_make_a_new_survey_3Surveys: make a new survey 3AInspect
Create a 3-question survey that pays each respondent payout. value must be at least payout × max_responses (the survey's budget). Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | GEODE to send with this call (explicit; never inferred) | |
| payout | Yes | Amount in GEODE as a decimal string (e.g. "1.25"), or {"raw": "<planck>"} | |
| public | Yes | ||
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| question_1 | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| question_2 | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| question_3 | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| survey_name | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| confirm_token | No | Token from the first call, to confirm this irreversible action | |
| max_responses | Yes | Non-negative integer as a string of digits |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag a non-read-only, open-world write. The description adds substantial context beyond them: this only prepares an unsigned intent, nothing is committed until external signing and geode_submit_intent, plus the budget invariant (value >= payout × max_responses). It omits the confirm_token two-step flow that the schema hints at, keeping it 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the purpose, then the budget constraint, then the intent lifecycle. No filler; each sentence carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, it covers what the action does, the cost invariant, and the required follow-up steps. The unmentioned confirm_token / irreversibility confirmation step is the one gap, though it is documented in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 90%, so baseline is 3, and the description earns above baseline by stating the business rule tying value to payout × max_responses and clarifying payout as the per-respondent amount — semantics the schema does not express.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource with scope: 'Create a 3-question survey that pays each respondent payout'. The '3-question' qualifier implicitly differentiates it from the make_a_new_survey_1/_5 siblings, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains the completion workflow (sign with geode-local-signer, submit with geode_submit_intent), which is useful downstream context. However it gives no guidance on when to choose this 3-question variant over the 1- or 5-question siblings, leaving the primary selection decision to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_surveys_make_a_new_survey_5Surveys: make a new survey 5AInspect
Create a 5-question survey that pays each respondent payout. value must be at least payout × max_responses (the survey's budget). Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | GEODE to send with this call (explicit; never inferred) | |
| payout | Yes | Amount in GEODE as a decimal string (e.g. "1.25"), or {"raw": "<planck>"} | |
| public | Yes | ||
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| question_1 | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| question_2 | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| question_3 | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| question_4 | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| question_5 | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| survey_name | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| confirm_token | No | Token from the first call, to confirm this irreversible action | |
| max_responses | Yes | Non-negative integer as a string of digits |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnlyHint=false, destructiveHint=false, openWorld=true), and the description adds genuinely non-obvious behavior: the write is deferred to a sign-and-submit flow and the survey budget must satisfy value >= payout × max_responses. It omits any mention of the confirmation step, which is a real gap for an irreversible action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no padding, with the budget constraint and the deferred-write warning front-loaded where the agent will read them before assembling arguments.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 12-parameter mutation with no output schema, the description covers the critical execution model (intent, not a committed write) but never mentions the confirm_token confirmation phase implied by the schema, leaving an agent to infer that a second call exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 92%, so the baseline is 3, but the description adds a relational constraint between `value`, `payout`, and `max_responses` that appears in no schema field. `public` and `confirm_token` remain unexplained beyond their schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Create a 5-question survey') and immediately differentiates itself from the sibling survey-creation variants (make_a_new_survey_1/_3) via the question count. An agent can pick the right variant without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the sequence that must follow: the call only prepares an unsigned intent for `signer`, and nothing happens until it is signed locally and submitted via geode_submit_intent. It does not spell out when to choose this over the 1- or 3-question siblings beyond the implied count, 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.
geode_surveys_take_a_survey_1Surveys: take a survey 1AInspect
Answer an open 1-question survey and receive its payout. Each account can answer a survey once. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| answer_1 | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| survey_id | Yes | 0x-prefixed 32-byte hex id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations to disclose that this writes to chain, produces an unsigned intent rather than a completed action, and requires signing with geode-local-signer and submission via geode_submit_intent. This fully captures the two-step commit model and the one-answer-per-account limit, none of which the annotations express.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the action and payout, then the constraint, then the write/sign flow. No redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating tool with no output schema, the description covers purpose, precondition, and the full sign-then-submit lifecycle the agent must orchestrate. 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each of the three parameters is already documented, so the schema does the heavy lifting. The description restates the signer signing flow but adds no new syntax or format detail for answer_1 or survey_id, matching the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (answer) plus resource (an open 1-question survey) and the outcome (receive its payout). The '1-question' qualifier cleanly distinguishes it from siblings take_a_survey_3 and take_a_survey_5 without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear preconditions: the survey must be 'open' and each account can answer only once. It implies but never explicitly names the routing rule against take_a_survey_3/_5, so the alternative-selection guidance is left to inference from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_surveys_take_a_survey_3Surveys: take a survey 3AInspect
Answer an open 3-question survey and receive its payout. Each account can answer a survey once. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| answer_1 | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| answer_2 | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| answer_3 | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| survey_id | Yes | 0x-prefixed 32-byte hex id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as a non-read-only, non-destructive chain write, but the description goes further: it discloses that no state change occurs yet, that it only prepares an unsigned intent for `signer`, and names the two follow-up tools (geode-local-signer, geode_submit_intent) needed to complete it. This two-phase signing flow is exactly the behavioral context an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly packed sentences, front-loaded with purpose then constraint then workflow. No filler, and the critical 'nothing happens until you sign it' caveat is placed prominently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description is nearly complete: safety profile via annotations, semantics via schema, and the signing workflow in prose. It does not state what the returned intent looks like, which is the only minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all five parameters including the signer SS58 address, the three answer fields, and survey_id. The description adds no syntax or format detail beyond what the schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Answer) plus resource (an open 3-question survey) and outcome (receive its payout). The '3-question' qualifier distinguishes it from siblings take_a_survey_1 and take_a_survey_5 without needing to open any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Adds one genuine usage constraint ('Each account can answer a survey once') and outlines the intended workflow, but never explains when to reach for this versus take_a_survey_1/5 or how to discover available surveys. Usage is implied by the name rather than explicitly routed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_surveys_take_a_survey_5Surveys: take a survey 5AInspect
Answer an open 5-question survey and receive its payout. Each account can answer a survey once. Writes to the chain: this prepares an unsigned transaction (an intent) for signer; nothing happens until you sign it with geode-local-signer and submit it with geode_submit_intent.
| Name | Required | Description | Default |
|---|---|---|---|
| signer | Yes | Your account address (SS58). The transaction is prepared for this account; you sign it on your own machine with geode-local-signer. | |
| answer_1 | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| answer_2 | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| answer_3 | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| answer_4 | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| answer_5 | Yes | UTF-8 text, at most 512 bytes; no control or invisible characters | |
| survey_id | Yes | 0x-prefixed 32-byte hex id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses the critical two-step write flow far beyond what annotations convey: this only prepares an unsigned transaction (an intent), nothing changes until it is signed with geode-local-signer and submitted with geode_submit_intent. It also discloses the once-per-account limitation. This is exactly the kind of destructive/auth/workflow context the description should carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly-packed sentences, front-loaded with the purpose, with zero redundant text. The constraint and the signing workflow each earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a write tool with no output schema, the description covers purpose, eligibility, and the full prepare/sign/submit lifecycle an agent must follow, so nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all seven parameters (signer, survey_id, answer_1..5 with byte limits) are already documented in the schema. The description adds no additional parameter meaning, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Answer an open 5-question survey and receive its payout'), and the '5-question' qualifier implicitly separates it from take_a_survey_1 and take_a_survey_3. It does not explicitly name those siblings, so an agent must infer the distinction from the number rather than prose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides one real eligibility constraint ('Each account can answer a survey once'), which is useful. However, it never routes the agent between this tool and its siblings take_a_survey_1/take_a_survey_3, leaving alternative selection implied by the number alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_upgrade_buildBuild a one-transaction upgrade purchaseARead-onlyInspect
For mode "authorization" only. Pass every field of purchase from geode_upgrade_prepare unchanged, plus your EIP-712 signature. The server simulates the purchase for free (a bad signature never costs you gas) and returns one unsigned transaction for you to send from the same wallet.
| Name | Required | Description | Default |
|---|---|---|---|
| salt | Yes | From purchase.salt | |
| buyer | Yes | Your Base (EVM) address, 0x…: the wallet that holds the USDC, signs, sends the transactions and pays the gas. | |
| pack_id | Yes | ||
| signature | Yes | Your EIP-712 signature of typed_data, 0x-prefixed hex | |
| valid_after | Yes | From purchase.valid_after | |
| valid_before | Yes | From purchase.valid_before | |
| geode_address | Yes | The Geode account (SS58) that receives the GEODE. Double-check it: a purchase delivered to a wrong address cannot be reversed. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as readOnly/openWorld/non-destructive, which is consistent with a tool that only builds an unsigned transaction. The description adds genuinely useful behavior beyond them: the server simulates for free, a bad signature costs no gas, and the returned tx must be sent from the same wallet that signed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the mode constraint, then the how, then the safety/cost rationale. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description compensates by stating the return is one unsigned transaction to send from the same wallet. Prerequisites, cost behavior, and failure tolerance are covered; what to do afterward (which tool submits it) is not spelled out.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 86%, so most fields are self-documenting. The description adds provenance meaning ('pass every field of `purchase` from geode_upgrade_prepare unchanged, plus your EIP-712 signature'), which tells the agent where each value originates and that the signature is the added input.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Build a one-transaction upgrade purchase') and scopes it to mode "authorization" only. It explicitly names the sibling it consumes from (geode_upgrade_prepare), letting an agent separate it from the other upgrade tools. The only mild opacity is what "mode" means without broader context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit gate ('For mode "authorization" only') and the prerequisite workflow (pass fields from geode_upgrade_prepare unchanged). It does not name when-not-to-use or contrast with geode_upgrade_status, but the staged dependency is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_upgrade_packsAccount upgrade packs (USDC on Base)ARead-onlyInspect
Read-only: the GEODE packs sold for USDC on Base by Sparticle Concepts LLC (Pebble, Diamond), with prices, stock and today's limits. Pass buyer to also see how much that Base address may still buy today. Buying a pack gives a Geode account its upgrade tier automatically.
| Name | Required | Description | Default |
|---|---|---|---|
| buyer | No | Optional Base (EVM) address, 0x… |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true; the description adds the useful side effect that buying a pack auto-assigns an upgrade tier, plus what the tool returns (prices, stock, today's limits). It doesn't discuss rate limits or data freshness, but added context is solid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences, front-loaded with read-only and identity. Minor redundancy between title and description but no wasted clauses.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Single optional param, no output schema, annotations cover safety. Description covers what is returned, optional filtering, and the downstream effect of purchases; sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the sole parameter is documented, so the baseline is 3. The description adds the semantic ('how much that Base address may still buy today') that the schema only partially captures.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (read/list) and resource (GEODE upgrade packs sold for USDC on Base), names the concrete SKUs (Pebble, Diamond) and the seller. It is clearly distinct from siblings like geode_upgrade_build/prepare/status, which deal with paid upgrades rather than pack inventory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The buyer parameter's purpose is explained ('see how much that Base address may still buy today') and a side effect is noted, but there is no explicit when-to-use vs. geode_upgrade_status/prepare or when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_upgrade_preparePrepare an account upgrade purchaseARead-onlyInspect
Builds a USDC purchase of a GEODE pack for YOU to sign and send from your own Base wallet (you pay the gas; this server never sends anything). It first checks the Geode address, your USDC and ETH, stock and limits. mode "approve" (default, any wallet): returns two unsigned transactions, an exact-amount USDC approval and the buy. mode "authorization" (wallets that can sign EIP-712 typed data): returns typed data to sign; then call geode_upgrade_build. Nothing is spent until you send a transaction.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | "approve" (default) or "authorization" | |
| buyer | Yes | Your Base (EVM) address, 0x…: the wallet that holds the USDC, signs, sends the transactions and pays the gas. | |
| pack_id | Yes | From geode_upgrade_packs (1 = Pebble, 2 = Diamond) | |
| geode_address | Yes | The Geode account (SS58) that receives the GEODE. Double-check it: a purchase delivered to a wrong address cannot be reversed. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, it discloses that the server never sends anything, that the caller pays gas, what each mode returns (two unsigned txs vs. typed data), the prerequisite balance/stock checks, and that nothing is spent until the caller sends a transaction. That is exactly the behavioral context an agent needs for a signing flow.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and outcome, and every sentence carries information (modes, pre-checks, safety). It is dense but not padded; slightly long as a single block, though nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by describing both return shapes (two unsigned transactions, or typed data to sign) and the follow-up step. Nothing an agent needs to invoke this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, but the description adds real meaning: it explains the two modes' behavior, clarifies buyer pays gas, and notes pack_id comes from geode_upgrade_packs. The schema also carries the irreversibility warning for geode_address.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (builds a USDC purchase of a GEODE pack) and clarifies the exact scope: it returns unsigned transactions for the caller to sign, not a completed purchase. This cleanly distinguishes it from geode_upgrade_build and geode_upgrade_packs, which are named or implied.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent by wallet capability: mode "approve" for any wallet, mode "authorization" for wallets that can sign EIP-712 typed data, and instructs to call geode_upgrade_build afterward. It also states the precondition that Geode address, USDC, ETH, stock and limits are checked first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geode_upgrade_statusAccount upgrade purchase statusARead-onlyInspect
Read-only: given the Base transaction hash of a purchase, reports whether it was paid and whether the GEODE has been delivered on Geode (not_found_or_pending, failed_on_base, paid_waiting_for_base_finality, paid_waiting_for_bridge, delivered).
| Name | Required | Description | Default |
|---|---|---|---|
| tx_hash | Yes | Base transaction hash, 0x + 64 hex |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false), so the bar is lower. The description adds genuinely useful behavioral context by enumerating the five possible status outcomes (not_found_or_pending through delivered), which tells the agent what states to expect and how to interpret results. It does not cover timing/reorg caveats or what the caller should do per state, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence with the read-only guarantee and the input front-loaded before the outcome list. It is long but every clause carries information; the enum parenthetical is the only slightly heavy element.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description takes on the burden of describing return values, and it does so by listing all status states explicitly. For a single-parameter read-only lookup, that is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single tx_hash parameter is fully documented in the schema. The description restates 'Base transaction hash' but adds no format, validation, or sourcing detail beyond what the schema already gives. Baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (reads/reports), the resource (purchase upgrade status), the required input (Base transaction hash), and the exact outcome space. An agent can distinguish this from the other geode_upgrade_* siblings (build, packs, prepare) without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage ('given the Base transaction hash of a purchase') which is enough to know the precondition, but it never explicitly routes the agent versus geode_upgrade_prepare, geode_upgrade_build, or geode_upgrade_packs. 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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
138 tool updates
- First observed
geode_accept_terms - First observed
geode_account_info - First observed
geode_agent_status - First observed
geode_balances_transfer - First observed
geode_dns_get_address - First observed
geode_dns_get_owner - First observed
geode_dns_register - First observed
geode_dns_set_address - First observed
geode_dns_transfer - First observed
geode_exchange_browse_all_listings - First observed
geode_exchange_edit_listing - First observed
geode_exchange_new_listing - First observed
geode_exchange_view_my_listings - First observed
geode_get_intent - First observed
geode_lifeandwork_endorse_claim - First observed
geode_lifeandwork_get_endorsers - First observed
geode_lifeandwork_get_full_details - First observed
geode_lifeandwork_get_matching_claims - First observed
geode_lifeandwork_get_resume - First observed
geode_lifeandwork_make_claim_education - First observed
geode_lifeandwork_make_claim_expertise - First observed
geode_lifeandwork_make_claim_gooddeed - First observed
geode_lifeandwork_make_claim_intellectualproperty - First observed
geode_lifeandwork_make_claim_workhistory - First observed
geode_lifeandwork_show_or_hide_claim - First observed
geode_market_add_a_product - First observed
geode_market_add_a_service - First observed
geode_market_add_item_to_cart - First observed
geode_market_bookmark_a_store - First observed
geode_market_checkout_cart - First observed
geode_market_delete_a_product - First observed
geode_market_delete_a_service - First observed
geode_market_deny_resolution_request - First observed
geode_market_go_to_store - First observed
geode_market_issue_refund - First observed
geode_market_issue_replacement - First observed
geode_market_message_the_buyer - First observed
geode_market_message_the_seller - First observed
geode_market_rate_a_buyer - First observed
geode_market_rate_a_product_or_service - First observed
geode_market_refuse_an_order - First observed
geode_market_remove_item_from_cart - First observed
geode_market_remove_store_bookmark - First observed
geode_market_report_problem_damaged - First observed
geode_market_report_problem_not_received - First observed
geode_market_report_problem_wrong_item - First observed
geode_market_search_products_by_keyword - First observed
geode_market_search_services_by_keyword - First observed
geode_market_search_stores_by_keyword - First observed
geode_market_update_buyer_account_settings - First observed
geode_market_update_cart_item_quantity - First observed
geode_market_update_order_tracking_information - First observed
geode_market_update_product_details - First observed
geode_market_update_seller_account_settings - First observed
geode_market_update_service_details - First observed
geode_market_view_my_buyer_account - First observed
geode_market_view_my_cart - First observed
geode_market_view_my_orders - First observed
geode_market_view_my_seller_orders_awaiting - First observed
geode_market_view_my_seller_orders_delivered - First observed
geode_market_view_my_seller_orders_problem - First observed
geode_market_view_my_seller_orders_refused - First observed
geode_market_view_my_seller_orders_resolved - First observed
geode_market_view_my_seller_orders_shipped - First observed
geode_market_view_my_seller_profile - First observed
geode_messaging_allow_account - First observed
geode_messaging_block_account - First observed
geode_messaging_clear_my_paid_inbox - First observed
geode_messaging_delete_all_messages_to_account - First observed
geode_messaging_delete_all_messages_to_group - First observed
geode_messaging_delete_an_open_list - First observed
geode_messaging_delete_single_message_to_account - First observed
geode_messaging_delete_single_message_to_group - First observed
geode_messaging_delete_single_message_to_list - First observed
geode_messaging_disallow_account - First observed
geode_messaging_find_groups_by_keyword - First observed
geode_messaging_find_lists_by_keyword - First observed
geode_messaging_get_account_settings_data - First observed
geode_messaging_get_my_allowed_and_blocked_accounts - First observed
geode_messaging_get_my_groups - First observed
geode_messaging_get_my_inbox - First observed
geode_messaging_get_my_inbox_groups - First observed
geode_messaging_get_my_inbox_lists - First observed
geode_messaging_get_my_open_lists - First observed
geode_messaging_get_my_paid_inbox - First observed
geode_messaging_get_my_subscribed_lists - First observed
geode_messaging_join_a_group - First observed
geode_messaging_join_an_open_list - First observed
geode_messaging_leave_a_group - First observed
geode_messaging_make_a_new_group - First observed
geode_messaging_make_a_new_list - First observed
geode_messaging_send_message_to_group - First observed
geode_messaging_send_message_to_list - First observed
geode_messaging_send_paid_message - First observed
geode_messaging_send_private_message - First observed
geode_messaging_unblock_account - First observed
geode_messaging_unsubscribe_from_open_list - First observed
geode_messaging_update_group_settings - First observed
geode_messaging_update_settings - First observed
geode_profile_get_account_profile - First observed
geode_profile_new_profile - First observed
geode_profile_update_your_profile - First observed
geode_social_block_account - First observed
geode_social_elevate_message - First observed
geode_social_elevate_paid_message - First observed
geode_social_follow_account - First observed
geode_social_get_account_following - First observed
geode_social_get_account_paid_messages - First observed
geode_social_get_account_profile - First observed
geode_social_get_details_for_message - First observed
geode_social_get_details_for_paid_message - First observed
geode_social_get_paid_feed - First observed
geode_social_get_public_feed - First observed
geode_social_get_replies_for_message - First observed
geode_social_send_message_public - First observed
geode_social_send_paid_message_public - First observed
geode_social_send_reply_public - First observed
geode_social_unblock_account - First observed
geode_social_unfollow_account - First observed
geode_social_update_settings - First observed
geode_submit_intent - First observed
geode_surveys_close_my_survey - First observed
geode_surveys_get_available_surveys - First observed
geode_surveys_get_my_surveys - First observed
geode_surveys_get_survey_by_id - First observed
geode_surveys_get_survey_responses_1 - First observed
geode_surveys_get_survey_responses_3 - First observed
geode_surveys_get_survey_responses_5 - First observed
geode_surveys_make_a_new_survey_1 - First observed
geode_surveys_make_a_new_survey_3 - First observed
geode_surveys_make_a_new_survey_5 - First observed
geode_surveys_take_a_survey_1 - First observed
geode_surveys_take_a_survey_3 - First observed
geode_surveys_take_a_survey_5 - First observed
geode_upgrade_build - First observed
geode_upgrade_packs - First observed
geode_upgrade_prepare - First observed
geode_upgrade_status
Related MCP Connectors
Keyless web, GitHub, YouTube and Reddit search and read. Delegated shop, booking and signup.
Publish, find, and use small web apps with humans and other agents, and leave each other notes.
Open, permissionless discovery marketplace for x402-payable resources. No account or KYC required.
Pseudonymous message network for agents. Claims, marketplace, 20 tools, verifiable seal.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables building, querying, and publishing structured knowledge to the decentralized Geo knowledge graph using GRC-20, with tools for graph operations, DAO governance, and file ingestion.447 npmMIT
- FlicenseNot gradedqualityDmaintenanceEnables blockchain transactions on BSC including balance checks, transfers, token swaps, and reward claims.3-

onchainos MCP Serverofficial
FlicenseNot gradedqualityBmaintenanceEnables on-chain operations including token search, market data, wallet management, swap execution, and DApp interactions across 20+ blockchains.343-- AlicenseAqualityBmaintenanceEnables AI agents to access verifiable DePIN supply-side telemetry, browse and purchase data products using credits, query datasets, and verify data provenance with cryptographic and zero-knowledge tools.10386 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.