THORChain MCP
Server Details
Read-only THORChain data: pools, network, nodes, vaults, transactions, Midgard history.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 126 tools
Many tools target the same conceptual resource across different API layers: get_block/get_cometbft_block/get_cosmos_block/get_cosmos_latest_block, and get_tx/get_tx_details/get_tx_status/get_tx_stages/get_cosmos_tx/get_cometbft_tx all overlap heavily. Queue tools (get_queue/get_swap_queue/get_scheduled_queue/get_outbound_queue), mimir tools, thorname tools, and oracle/fee singular-vs-plural pairs also blur boundaries. Descriptions help somewhat but an agent will frequently misselect.
The dominant pattern is a clean verb_noun convention (get_, list_, search_, quote_, prepare_, check_), applied consistently across most of the 126 tools. Minor deviations like ping, lookup_thorname, and reverse_lookup_thorname are readable but slightly break the pattern.
126 tools is an extreme overload for a single MCP server, far beyond the 3-15 sweet spot. The large surface is largely redundant (three block/tx API families, singular/plural variants), which inflates count without adding distinct capability.
Coverage of the THORChain domain is genuinely broad: pools, nodes, vaults, swaps (quote/prepare/limit), streaming swaps, RUNEPool, TCY, mimir, governance, and multiple chain layers are all represented. Only minor gaps exist (e.g., limited write/action surface beyond swap preparation), which agents can work around.
Available Tools
126 toolscheck_reference_memoBRead-onlyInspect
Pre-flight check for memoless transactions. Returns what reference would be extracted from the amount and whether it's available for registration.
| Name | Required | Description | Default |
|---|---|---|---|
| asset | Yes | The asset (e.g. BTC.BTC) | |
| amount | Yes | The transaction amount in base units |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=false, so the safety profile is covered. The description adds useful context (a non-destructive pre-flight check that reports availability for registration) but does not explain the return shape or error behavior beyond the availability notion.
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 no waste, and the purpose (pre-flight check) is front-loaded ahead of the return-value detail.
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, and the description does partially compensate by describing the two pieces of returned information. However, jargon like 'memoless transactions' and 'registration' is left undefined, leaving an agent without full grounding for a tool with 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 schema documents both 'asset' and 'amount' fully. The description references 'the amount' but adds no format or syntactic detail beyond what the schema provides, 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: a 'pre-flight check' that returns 'what reference would be extracted from the amount and whether it's available for registration.' This is clearer than a generic 'check', though it doesn't explicitly differentiate itself from siblings get_reference_memo / get_reference_memo_by_hash.
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?
'Pre-flight check for memoless transactions' implies when to use it (before performing a memoless transaction), but there is no explicit when-to-use/when-not or naming of alternatives such as get_reference_memo. Usage must be inferred from the phrase 'pre-flight.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_affiliate_earningsBRead-onlyInspect
Returns affiliate earnings including fees collected by thorname.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=false, so the safety profile is covered. The description adds the content scope ('including fees collected by thorname'), which is useful, but says nothing about auth needs, aggregation window, or why the call is non-idempotent despite being a 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?
A single front-loaded sentence with no filler. It is appropriately sized, though its brevity comes at the cost of the routing information a zero-param tool with many siblings would benefit from.
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, so explaining return values is not required, and the zero-param schema is trivial. Still, for a tool sitting among several near-identical affiliate endpoints, the description does not supply enough to confidently select it over its 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?
The tool takes zero parameters, so the baseline is 4; there is no parameter semantics for the description to elaborate. The description does not misrepresent the (empty) input contract, though it also adds nothing about implicit scoping.
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 ('Returns') and resource ('affiliate earnings') plus a scope detail ('fees collected by thorname'), so the agent knows what the tool retrieves. However, it does not distinguish itself from the three sibling affiliate tools (get_affiliate_history, get_affiliate_stats, get_earnings_history), leaving ambiguity about which one to pick.
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 provides no when-to-use guidance, no prerequisites, and no explicit alternatives. With get_affiliate_history, get_affiliate_stats, and get_earnings_history as close siblings, the absence of any routing cue is a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_affiliate_historyBRead-onlyInspect
Returns historical affiliate swap data including volumes and thorname breakdown over time.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End timestamp (Unix seconds) | |
| from | No | Start timestamp (Unix seconds) | |
| count | No | Number of intervals to return | |
| interval | No | Time interval: 5min hour day week month quarter year |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so safety is covered; the description adds that results are time-series over an interval. However it does not disclose what happens with zero required params (default range/interval), pagination, or why idempotentHint=false despite being a read. Adds some value but leaves meaningful behavioral gaps.
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 sentence with the resource and content front-loaded and zero filler. Nothing could be removed without losing 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 history tool with full parameter documentation and no output schema, the description is minimally adequate: it says what is returned but not how defaults behave when no time window is supplied. It covers the essentials without filling the remaining 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 from/to/count/interval are fully documented in the schema itself. The description adds no syntax, unit, or default information beyond that, 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 ('Returns') and resource ('historical affiliate swap data'), plus the shape of the content (volumes and thorname breakdown over time). It is distinguishable from get_affiliate_stats and get_affiliate_earnings, though it never explicitly contrasts itself with 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?
No when-to-use guidance, no conditions, and no mention of the obvious alternatives (get_affiliate_stats, get_affiliate_earnings, get_swap_history). The agent must infer from the name alone which of the several affiliate/history tools applies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_affiliate_statsBRead-onlyInspect
Returns affiliate statistics including volumes, counts, and fees by thorname.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=false, so the safety profile is covered structurally. The description adds the returned dimensions (volumes, counts, fees), which is useful context, but says nothing about auth requirements, scoping, or aggregation 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?
A single front-loaded sentence that names the resource and the returned fields with 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 parameters and no output schema, the description carries the full descriptive burden, and while it names the returned dimensions it leaves the 'by thorname' scoping unexplained, which is the one thing an agent would need clarified 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?
The schema declares zero parameters, which normally sets a baseline of 4, but the phrase 'by thorname' implies a selectable/filtering key that no parameter actually supplies. That mismatch creates ambiguity about whether the tool is genuinely parameterless or implicitly scoped, so it falls just below 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 and resource ('Returns affiliate statistics') and lists the returned content (volumes, counts, fees), which is more than a tautology. However it does not differentiate itself from sibling affiliate tools like get_affiliate_earnings and get_affiliate_history, so an agent cannot tell which affiliate endpoint to pick.
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 when-to-use guidance and no mention of alternatives, despite three closely related affiliate siblings (earnings, history). The agent is left to infer the distinction entirely on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_banBRead-onlyInspect
Returns the ban status for a node address. Shows if the node is banned, at what block height, and which nodes signed the ban. Bans are used to remove malicious or misbehaving nodes.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | The node address to check ban status for (thor1...) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safe-read profile is conveyed. The description adds value by disclosing the shape of the result (status, block height, signers) since no output schema exists, but says nothing about how the idempotency flag or stale/absent ban records behave.
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 with the core purpose front-loaded. The closing sentence on why bans exist is mild domain color rather than a load-bearing instruction, but nothing is padded or repetitive.
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 compensates well by naming the fields an agent will receive. Only minor gaps remain around absent-ban responses and any permission or rate considerations.
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 single address parameter is fully documented in the schema, including the thor1... format. The description adds no syntax or constraint detail beyond that, making the baseline 3 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 ("Returns the ban status for a node address") and enumerates the returned fields (banned flag, block height, signers). It is clearly distinguishable in intent, though it never names or contrasts with sibling lookups like get_node or list_nodes.
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 a ban is conceptually but never says when to reach for this tool versus related node lookups, nor any prerequisites. Usage must be inferred entirely from the name and domain knowledge.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_blockARead-onlyInspect
Returns verbose details of a THORChain block including header info, transactions, and block events. If no height is specified, returns the latest block. Shows block hash, chain ID, height, time, validator info, and all transactions with their results.
| Name | Required | Description | Default |
|---|---|---|---|
| height | No | Optional block height. If not provided returns the latest block. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=false, so the safety profile is covered. The description adds the 'verbose' nature and the latest-block default, but does not explain the non-idempotent behavior (likely because the latest block changes) or any response-size/rate considerations for a verbose payload.
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 with the core purpose front-loaded and the default behavior following. Every sentence carries information; 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?
With no output schema, the description does carry the burden of describing return contents and does so reasonably (header, transactions, results, hash, chain ID, height, validator info). The main omission is sibling disambiguation against the other block 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?
With a single parameter at 100% schema description coverage, the schema already documents the optional height and its latest-block default. The description restates that default but adds no format, range, or edge-case semantics 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 and resource ('Returns verbose details of a THORChain block') and enumerates the contents (header info, transactions, block events, hash, chain ID, height, time, validator info). However, it never distinguishes itself from the many block-related siblings such as get_cometbft_block, get_cosmos_block, or get_lastblock, so an agent cannot tell which block tool to pick from the description 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?
It gives one useful usage cue: 'If no height is specified, returns the latest block.' But there is no guidance on when to prefer this over get_cometbft_block, get_cosmos_block, or get_lastblock, and no exclusions or prerequisites. 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.
get_bondsBRead-onlyInspect
Returns bond details for an address including associated nodes and total bonded amount.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Address to get bond details for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safe-read profile is covered without the description. The description does add value by enumerating what comes back (associated nodes and total bonded amount), but it never explains why idempotentHint=false (i.e., that bond state mutates over time) nor whether the response is scoped to a single network.
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 sentence, front-loaded with the verb and resource, with the returned fields appended. Nothing is wasted, though it is close to the minimum viable length and leaves no room for scoping detail.
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 annotations covering safety and no output schema, the description is adequate: it tells the agent what is returned. It leaves open the network/chain context, freshness of the bond data, and how 'associated nodes' is bounded.
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, so the schema already carries the semantics and the baseline is 3. The description adds nothing about the address format (e.g., THORChain vs other chain addresses) or any validation constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns bond details for an address') plus the payload contents (associated nodes, total bonded amount), which is concrete rather than tautological. It does not, however, distinguish itself from adjacent node/account tools such as get_node or get_midgard_nodes that also surface bond-related 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?
The description gives no indication of when to reach for this tool versus the many sibling lookup tools, and names no alternative. The only implied usage is 'you have an address and want bond info', which is inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_churnsARead-onlyInspect
Returns churn event history with dates and block heights.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=false, so the agent knows this is a safe, non-idempotent read. The description adds return-content context ('with dates and block heights') but does not disclose behavioral traits such as pagination, ordering, rate limits, or authentication needs. With annotations covering the safety profile, this is adequate but minimal.
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 single, front-loaded sentence with no wasted words. It immediately states the action and the returned data. Nothing is superfluous.
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 low-complexity, zero-parameter, read-only endpoint with no output schema, the description gives enough to understand the return content: churn event history with dates and block heights. It does not cover ordering, pagination, or the exact shape of a churn event, but those omissions are minor given the tool's simplicity.
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 tool takes zero parameters, so there are no parameter semantics to document. Per the rubric, a zero-parameter schema earns a baseline of 4. The description does not need to compensate for missing parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Returns') and resource ('churn event history') and adds the key returned fields (dates and block heights). It is clear and not tautological. No sibling tool covers churn events, so explicit differentiation is unnecessary, but the description could still be more precise about what a churn event represents.
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 guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. The description only says what it returns, leaving the agent to infer that it is the appropriate call whenever churn history is needed. For a simple getter this is somewhat obvious, but the definition provides no explicit usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cometbft_blockBRead-onlyInspect
Returns block data at the specified height including header, transactions, and commit signatures. Provides canonical blockchain data.
| Name | Required | Description | Default |
|---|---|---|---|
| height | No | Block height to query. If omitted or 0, returns the latest block. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered; the non-idempotent hint is consistent with height=0 returning the latest block. The description adds the payload composition, but does not disclose anything about the 'canonical blockchain data' claim vs. siblings or about response size/pagination for blocks with many transactions.
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, no redundancy, with the core return contract front-loaded. The trailing sentence ('Provides canonical blockchain data') is mild filler that doesn't carry 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?
With no output schema, the description does the minimum by naming the returned fields (header, transactions, commit signatures) and the caller can infer the height semantics from the schema. It is incomplete on the key differentiator for this tool set: how this differs from get_cometbft_block_results, get_cosmos_block, and get_block.
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 height parameter, including the 'omitted or 0 returns latest' default, is fully documented in the schema. The description repeats the height scoping but adds no format, range, or error semantics beyond it, 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?
The description gives a specific verb and resource ('Returns block data at the specified height') and enumerates the payload contents (header, transactions, commit signatures). It fails to distinguish itself from close siblings such as get_cometbft_block_results, get_cosmos_block, or get_block, which is a real ambiguity in this tool set.
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 when-to-use guidance and no mention of alternatives, despite the presence of several near-identical block retrieval siblings. The only routing hint is the parameter's own default behavior, which the schema already states.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cometbft_block_resultsARead-onlyInspect
Returns the results of executing transactions in a block, including ABCI events and validator updates. Useful for inspecting transaction outcomes.
| Name | Required | Description | Default |
|---|---|---|---|
| height | No | Block height to query. If omitted or 0, returns results for the latest block. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=false, so the safety profile is covered. The description adds that results include ABCI events and validator updates, which is useful return-content context, but it does not explain why the operation is non-idempotent (e.g., latest-block behavior when height is omitted) or cover auth/rate limits.
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 concise sentences with zero waste. The core purpose and included data are front-loaded, followed by a brief use case.
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 simple one-parameter schema, read-only annotation, and absence of an output schema, the description provides enough to call the tool and understand roughly what it returns. It could be improved by distinguishing it from related block/transaction tools, but it is nearly complete for this tool's complexity.
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 'height' parameter is fully described in the schema. The description does not mention the parameter at all, so it adds no 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?
The description states a clear verb ('Returns') and resource ('results of executing transactions in a block') and specifies included data (ABCI events, validator updates). It does not explicitly differentiate itself from sibling tools like get_cometbft_block or get_cometbft_tx, preventing 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 phrase 'Useful for inspecting transaction outcomes' implies a use case but gives no explicit guidance on when to prefer this over alternatives such as get_cometbft_block, get_cometbft_tx, or search_cometbft_tx. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cometbft_consensus_paramsBRead-onlyInspect
Returns CometBFT consensus parameters (block size, evidence, validator params) at a height.
| Name | Required | Description | Default |
|---|---|---|---|
| height | No | Block height (0 or omitted for latest) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=false, so the safety profile is covered. The description adds only that it returns parameters at a height, without details on caching, permissions, or response shape; it is consistent with annotations but adds limited behavioral context.
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 front-loaded sentence with no filler. It efficiently states what is returned and at what scope.
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 getter with one optional parameter and no output schema, the description is nearly complete: it names the resource and key return fields, and annotations cover safety. The only minor gap is lack of explicit sibling differentiation.
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 description fully documents the height parameter, including the 0/omitted-for-latest behavior. The description mentions 'at a height' but adds no syntax or semantics 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 and resource: returns CometBFT consensus parameters. It also names the key parameter groups (block size, evidence, validator params), which helps distinguish it from siblings like get_cometbft_consensus_state, but it does not explicitly contrast with that sibling.
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 no when-to-use guidance or alternative routing. It implies the tool is for inspecting consensus parameters at a given height, but an agent must infer when to choose it over get_cometbft_consensus_state or other CometBFT tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cometbft_consensus_stateARead-onlyInspect
Returns the current consensus round state including height/round/step, proposal block hash, and vote information. Useful for debugging consensus issues.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true and idempotentHint=false, so safety is covered. The description adds useful behavioral context by naming the returned consensus fields and framing the tool around debugging, though it does not describe freshness or whether the snapshot is node-local versus network-wide. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste, and the return content is front-loaded before the debugging-use sentence. It is appropriately sized for a zero-parameter 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?
There is no output schema, so the description must carry return-value explanation; it lists the key fields but leaves "vote information" somewhat vague and does not mention range or freshness. Still, for a zero-parameter read-only tool, it gives enough to call safely and interpret the core result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there are no parameter semantics to explain. Baseline is 4, and the description correctly does not introduce unnecessary 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 ("Returns") and resource ("current consensus round state") and enumerates the main fields it contains: height/round/step, proposal block hash, and vote information. It is clear, but it does not explicitly distinguish itself from nearby siblings such as get_cometbft_status or get_cometbft_consensus_params.
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 phrase "Useful for debugging consensus issues" gives an implied use case, but it provides no explicit when-not guidance and does not name alternatives such as get_cometbft_status. The agent must infer the selection criteria from sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cometbft_net_infoARead-onlyInspect
Returns network information including listening status, connected peers, and peer details. Useful for monitoring P2P network health.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=false, so the safety profile is covered structurally. The description adds useful content detail about what the response includes, but it does not add behavioral context such as return format, freshness, or how peer details are represented.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is two tight sentences with the return contents front-loaded and a brief usage note second. There is no filler and no 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?
For a simple no-parameter read with no output schema, the description gives sufficient context by naming the main fields returned. It could be more complete by specifying the response shape or whether peer details include addresses, but nothing critical is missing 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?
The tool takes zero parameters, so there are no parameter semantics for the description to explain. The baseline for a no-parameter tool is 4, and the description introduces no misleading parameter expectations.
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 and resource: 'Returns network information' and then names the key contents (listening status, connected peers, peer details). It is clear what the tool does, but it does not distinguish itself from closely named siblings such as get_cometbft_status or get_network_info.
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 phrase 'Useful for monitoring P2P network health' implies a usage context, but there is no explicit guidance on when to choose this tool over alternatives and no exclusions. The agent is left to infer when this is preferable to get_cometbft_status or get_network_info.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cometbft_statusARead-onlyInspect
Returns the CometBFT node status including node info, sync status, and validator information. Provides canonical consensus-level data about the blockchain.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered and the bar is lower. The description adds that the response bundles node info, sync status, and validator data, which is useful behavioral context, but says nothing about freshness, latency, or why idempotentHint is false for a status 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 sentences, front-loaded with the return content, and no filler. Every clause carries information an agent can use.
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 top-level sections returned (node info, sync status, validator information). That is adequate for a no-parameter read tool, though it stops short of describing the shape or any nested fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. There is nothing for the description to document, and the schema is trivially complete at 100% coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Returns') and resource ('CometBFT node status') and enumerates the payload (node info, sync status, validator information), so the purpose is legible. However, it offers no differentiation from close siblings like get_cometbft_net_info, get_cometbft_consensus_state, and get_cometbft_validators, whose content it partly overlaps.
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 when-to-use guidance, no stated conditions, and no pointer to an alternative tool. The clause 'canonical consensus-level data' faintly implies authority but never tells an agent when to pick this over the other cometbft endpoints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cometbft_txBRead-onlyInspect
Returns a transaction by its hash including tx result, height, and optional proof of inclusion. Provides canonical transaction data from the consensus layer.
| Name | Required | Description | Default |
|---|---|---|---|
| hash | Yes | Transaction hash (without 0x prefix). | |
| prove | No | Include proof of transaction inclusion. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true, so the safe-read profile is covered. The description usefully discloses the return contents (result, height, proof), which matters because there is no output schema, but it says nothing about errors, missing-hash behavior, or the odd idempotentHint=false setting. 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 sentences, front-loaded with the core action and no filler. It is efficient, though the second sentence ('canonical transaction data from the consensus layer') is largely a restatement of the first.
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 lookup with no output schema, the description compensates by naming what is returned and noting the proof is optional. The remaining gap is routing context against the many sibling transaction tools, which the description does not address.
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, including the 'without 0x prefix' constraint and the prove flag. The description only restates 'by its hash' and 'optional proof of inclusion,' adding no format or default detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource ('Returns a transaction by its hash') and enumerates the payload (tx result, height, optional proof), so the purpose is unambiguous. However, in a namespace that also exposes get_cosmos_tx, get_tx, get_tx_details, and search_cometbft_tx, it never states how it differs from those siblings, so sibling differentiation is only weakly implied by 'from the consensus layer.'
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 when-to-use, when-not-to-use, or alternative-selection guidance. With this many overlapping transaction tools available, the agent is left to guess why it should call get_cometbft_tx rather than get_cosmos_tx or search_cometbft_tx.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cometbft_validatorsBRead-onlyInspect
Returns the validator set at the specified height including addresses, public keys, and voting power. This is canonical consensus data about who can produce blocks.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination (1-indexed). Default is 1. | |
| height | No | Block height to query. If omitted or 0, returns the current validator set. | |
| per_page | No | Number of validators per page. Default is 30, max is 100. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already establishes this as a safe read operation. The description adds useful semantic context by calling the data 'canonical consensus data about who can produce blocks,' but it does not mention pagination behavior or any response-shape details beyond the listed 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 description is two tightly written sentences with no wasted text. The core purpose is front-loaded, followed by a concise explanation of the data's significance.
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, three-parameter tool with fully described schema fields and annotations, the description is mostly complete. It explains the return content well enough despite no output schema, though it could mention pagination or default behavior when height is omitted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents page, height, and per_page. The description mentions the specified height and returned validator fields but adds no syntax or format details beyond what the schema already provides, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource (returns the CometBFT validator set) and lists the returned fields (addresses, public keys, voting power). It is clear what the tool does, but it does not explicitly differentiate this from the sibling get_cosmos_validators tool.
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 provides no guidance on when to use this tool versus alternatives such as get_cosmos_validators or get_cometbft_consensus_state. It also does not state when a height should be supplied versus omitted, leaving usage to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_constantsBRead-onlyInspect
Returns protocol constants including integer, boolean, and string configuration values that govern THORChain behavior.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so safety is covered by structured data. The description contributes the useful detail that values include int/bool/string configuration constants governing protocol behavior, but says nothing about caching, refresh cadence, or whether constants can change mid-epoch across an upgrade cycle.
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 front-loaded sentence with no filler or repetition of the tool name. It is efficient, though the trailing clause about value types could be tightened if brevity were the only goal.
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-parameter, no-output-schema read endpoint, the description carries the essential shape of the response (integer/boolean/string configuration values). Nothing critical is missing, though noting the absence of filtering or pagination would close the loop.
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 tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The description correctly implies a single unfiltered snapshot of all constants rather than a targeted lookup.
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 ('Returns') and resource ('protocol constants') and enumerates the value types (integer, boolean, string), so the agent knows exactly what it gets back. It doesn't differentiate from nearby config-ish siblings like get_mimir or get_version, but the resource is concrete enough to be selectable.
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 when-to-use guidance, no statement of what this replaces, and no mention of the alternative config endpoints (get_mimir, get_network_info) in a very large sibling set. The agent must infer usage purely from the resource name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cosmos_accountARead-onlyInspect
Returns account information for a THORChain address including account number, sequence (nonce), and public key if available.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | THORChain address (thor1...) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=false, so the safety profile is covered. The description adds one behavioral nuance, that the public key is returned only 'if available', which is useful. It does not address return format, error behavior, or why a read would be non-idempotent.
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 efficient sentence with the resource and return contents front-loaded and zero filler. Slightly terse given it could carry more context, but 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?
No output schema exists, so the description partly compensates by naming the returned fields (account number, sequence, public key). For a simple single-param read tool this is nearly complete, with only the conditional 'if available' nuance left underspecified.
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 single 'address' parameter and its format hint (thor1...) are already documented. The description repeats 'THORChain address' without adding format, validation, or edge-case detail beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Returns account information for a THORChain address') and enumerates the key return fields (account number, sequence/nonce, public key). This distinguishes it in content from siblings like get_cosmos_balances or get_cosmos_tx, though it does not name any 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?
No explicit when-to-use, when-not-to-use, or alternative routing is given. The usage is implied by the purpose (fetch on-chain account state for a given address), but an agent must infer when this is preferable to get_cosmos_balances, get_trade_account, or get_thorname_owner.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cosmos_balancesBRead-onlyInspect
Returns account balances for a THORChain address. Shows all coin denominations held by the account.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | THORChain address (thor1...) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds useful return context ('all coin denominations held'). However, it does not address that idempotentHint=false, i.e. that repeated calls may yield different balances as the chain advances, nor any caching or freshness behavior. With annotations carrying the safety profile, this is an adequate but not rich disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the core action front-loaded and no padding. The second sentence slightly restates the first's scope, keeping it just short of 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 single-parameter read tool with no output schema, the description gives a minimal picture of the return (coin denominations) but omits return shape, whether balances are per-block, and how it differs from get_cosmos_account. Adequate but with clear gaps.
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 'address' parameter is already documented in the schema with the thor1... format hint. The description 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 ('Returns account balances for a THORChain address') and clarifies the scope ('all coin denominations held by the account'). It is clear what it does, but it does not distinguish itself from near siblings like get_cosmos_account or get_midgard_balance, so an agent cannot route between them from the text 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 when-to-use guidance, no prerequisites, and no mention of alternatives among the many sibling balance/account tools. The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cosmos_blockBRead-onlyInspect
Returns a block at the specified height from the Cosmos SDK blockchain including header, transactions, and commit data.
| Name | Required | Description | Default |
|---|---|---|---|
| height | Yes | Block height to query |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=false, so the safety profile is covered. The description adds useful payload context (header, transactions, commit data) — the only source of return-shape info since no output schema exists — but says nothing about error behavior for unknown heights or the potentially heavy 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?
A single sentence with the resource and return contents front-loaded and zero filler. Nothing could be removed without losing 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 simple single-parameter getter, the description covers purpose, input, and the composition of the returned block, and annotations cover the safety profile. The one meaningful gap is that it does not help the agent choose among the several block-related 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?
Only one parameter and schema description coverage is 100%, so the schema already explains 'height'. The description merely restates 'at the specified height' and adds no format, range, or validation detail. Baseline 3 applies 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?
States a specific verb and resource ('Returns a block at the specified height') and scopes it to the Cosmos SDK blockchain, which is clear enough to act on. However, it never distinguishes itself from the many block-reading siblings such as get_block, get_cometbft_block, or get_cosmos_latest_block, leaving the agent to guess which 'block' tool is the right 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?
There is no when-to-use guidance, no exclusions, and no named alternative. Given siblings like get_block, get_cometbft_block, and get_cosmos_latest_block, the absence of routing guidance is a real gap rather than a minor omission.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cosmos_delegationsBRead-onlyInspect
Returns all delegations for a delegator address. Shows which validators the address has delegated to and the amounts.
| Name | Required | Description | Default |
|---|---|---|---|
| delegator_addr | Yes | Delegator address (thor1...) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=false, so safety is covered. With no output schema, the description does add some value by sketching the return shape (validator targets plus amounts) and that the result is unrestricted ('all delegations'), but it says nothing about pagination, ordering, or behavior for an address with no delegations.
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 action and resource, with the return summary immediately after. No filler and nothing repeated from the title or schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool this is close to sufficient, and it partially compensates for the missing output schema by naming what is returned. However, it omits the denomination of amounts, the validator identifier format, and the empty-result case, leaving a real gap given there is no output schema to fall back 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 description coverage is 100% and the single parameter already documents itself as 'Delegator address (thor1...)'. The description implies the parameter is the delegator but adds no format, validation, or edge-case detail beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns all delegations for a delegator address') and the second sentence clarifies the scope of what comes back (validators plus amounts), which helps separate it from balance/reward siblings. It stops short of naming an explicit alternative such as get_cosmos_rewards, so it is clear but not fully 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?
There is no guidance on when to reach for this tool versus get_cosmos_rewards, get_cosmos_balances, or get_cosmos_validators, and no note that the input must be a thor1... address in the caller's expected form. The agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cosmos_latest_blockARead-onlyInspect
Returns the latest block from the Cosmos SDK blockchain including header, transactions, and commit data.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and idempotentHint=false, and the description helpfully enumerates the returned payload (header, transactions, commit data). It does not, however, explain the non-idempotent behavior implied by 'latest' or any size/pagination considerations, so it adds only modest value 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?
A single front-loaded sentence with no filler, stating what is returned and its constituent parts. 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?
There is no output schema, so the description carries the burden of describing return content, which it does by listing header, transactions, and commit data. It falls short only in not addressing divergence from siblings or output sizing, which for a zero-parameter read is minor.
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 tool takes zero parameters, so the baseline is 4. The description correctly implies no inputs are required simply by describing a no-argument latest-block fetch.
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 (Returns) and resource (the latest block from the Cosmos SDK blockchain) plus the returned payload. However, it does not differentiate from the many sibling block-retrieval tools (get_block, get_cosmos_block, get_cometbft_block, get_lastblock), leaving the agent to infer that 'latest' is the distinguishing scope.
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-to-use guidance is given. With siblings like get_cosmos_block, get_block, and get_lastblock all plausibly overlapping, the description never states whether to pick this one for the most recent block versus a height-parameterized alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cosmos_node_infoBRead-onlyInspect
Returns Cosmos SDK node information including network, version, protocol versions, and application version. Uses the gRPC-gateway REST API for canonical data.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true and idempotentHint=false, so the safety profile is covered by structured data. The description adds one piece of context beyond that — that data comes from the gRPC-gateway REST API and is 'canonical' — but it does not explain the odd non-idempotent hint for a pure info fetch, nor any latency, caching, or failure 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 sentences, front-loaded with the core purpose; nothing is redundant or padded. The trailing sentence about the gRPC-gateway REST API is only marginally useful for tool selection, keeping it just short of a perfect score.
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 burden of describing returns, and it does list the returned fields, which is adequate. But against a large sibling set with several near-duplicate node/network/version tools, it lacks the differentiation an agent needs to select 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?
The tool takes zero parameters (schema coverage 100% by default), so per the rubric this is a baseline 4. There are no inputs whose semantics the description would need to clarify.
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 ('Returns Cosmos SDK node information') and enumerates the returned fields (network, version, protocol versions, application version), so the purpose is unambiguous. However, it makes no attempt to distinguish itself from close siblings such as get_node, get_network_info, get_version, or get_cometbft_status, which an agent could easily confuse it with.
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 guidance at all on when to call this tool versus the several sibling tools that return overlapping network/version/node data. No prerequisites, no exclusions, no alternatives are mentioned; the agent must infer usage entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cosmos_rewardsBRead-onlyInspect
Returns delegation rewards for a delegator address. Shows rewards from each validator and total accumulated rewards.
| Name | Required | Description | Default |
|---|---|---|---|
| delegator_addr | Yes | Delegator address (thor1...) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a read-only, non-idempotent operation, so the safety profile is covered. The description adds genuine value by disclosing the return structure (per-validator rewards plus a total), but says nothing about auth requirements, pagination, or why the result is non-idempotent (rewards accrue over time).
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 purpose and followed by the concrete return content. No filler, 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?
With no output schema, the description usefully compensates by summarizing the response shape (per-validator and total rewards). For a simple single-parameter read tool this is nearly complete; only guidance on downstream usage or edge cases (e.g. no delegations) is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter already carries its own description ('Delegator address (thor1...)'), including the address format. The description only restates the delegator concept, adding 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?
The description gives a specific verb+resource: 'Returns delegation rewards for a delegator address,' and the second sentence clarifies the content (per-validator plus total). It is clearly distinct from siblings like get_cosmos_delegations or get_cosmos_balances, though it never names a sibling to reinforce the boundary.
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 when-to-use guidance, no prerequisites (e.g. the delegator must have an existing delegation), and no mention of alternatives such as get_cosmos_delegations. Usage is only implied by the single-parameter signature.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cosmos_supplyBRead-onlyInspect
Returns the total token supply including all coin denominations. Shows the circulating supply of RUNE and other tokens.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, and the description adds no behavioral detail beyond saying it returns supply information. It does not clarify snapshot behavior, freshness, or why idempotentHint is false, so it adds little context beyond the structured safety hints.
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 concise sentences, front-loaded with the primary purpose and followed by output-oriented detail. There is no filler or redundant 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?
With no output schema, the description usefully explains that the response covers total supply across denominations and circulating supply for RUNE and other tokens. It is nearly complete for a simple read-only query, though the distinction between total and circulating supply could be sharper.
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 tool takes no parameters, so there is no parameter semantics to explain. A baseline score of 4 is appropriate for a zero-parameter tool whose schema is complete by omission.
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 uses a specific verb and resource: it returns total token supply, including all coin denominations, and mentions circulating supply for RUNE and other tokens. This is clear enough to distinguish it from balance or holder queries, though it does not explicitly name a sibling alternative.
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 does not state when to use this tool versus alternatives such as get_cosmos_balances or get_holders. Usage is only implied by the stated return content, with no exclusions or routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cosmos_syncingARead-onlyInspect
Returns whether the node is currently syncing with the blockchain. A syncing node may have stale data.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=false, so the safety profile is covered. The description adds genuine behavioral context beyond that: the warning that a syncing node returns stale data, which tells the agent how to interpret the result. It stops short of describing the return shape (boolean vs status object).
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 with zero filler; the core action is front-loaded and the interpretive caveat follows immediately. 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 zero-parameter read-only status check with no output schema, the description supplies enough to call and interpret it: what it returns and why the result matters. Only the exact return representation (boolean vs. richer status) is left implicit, which is a minor gap 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?
This tool takes zero parameters, so there is nothing for the description to clarify and the baseline of 4 applies. Per the rubric, 0 parameters sets a baseline of 4, and no meaningful parameter detail is missing.
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 ('Returns whether') and a precise resource/condition ('the node is currently syncing with the blockchain'), so the agent knows exactly what boolean question is being answered. It is distinguishable from siblings like get_cosmos_node_info, though it never explicitly contrasts itself with 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 second sentence ('A syncing node may have stale data') implies why an agent would call this before trusting other node data, which is useful implied usage. However, there is no explicit when-to-use rule, no named alternative, and no statement of when this check is unnecessary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cosmos_txBRead-onlyInspect
Returns a transaction by hash from the Cosmos SDK blockchain. Includes transaction body, auth info, and execution result.
| Name | Required | Description | Default |
|---|---|---|---|
| hash | Yes | Transaction hash |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description usefully adds what a caller gets back ('transaction body, auth info, and execution result'), which is real value since there is no output schema, but it omits failure behavior for an unknown hash and any response-size caveats.
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 no filler, and the core operation is front-loaded. It could be marginally sharper by folding in the routing distinction, but 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 one-parameter read tool whose annotations carry the safety semantics, the description covers what is fetched and what comes back, which is the main gap left by the absent output schema. Only the not-found/error behavior is unaddressed.
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 a single parameter at 100% schema description coverage, the schema already documents 'hash' fully. The description adds no syntax, format, or casing guidance beyond restating that lookup is by hash, 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 ('Returns a transaction by hash') and identifies the source chain ('Cosmos SDK blockchain'), which partially separates it from get_cometbft_tx. However, it does not explicitly distinguish itself from the crowded tx siblings (get_tx, get_tx_details, search_cosmos_txs), leaving some differentiation 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 phrase 'by hash' implies a lookup requires a hash, but there is no stated when-to-use, when-not-to-use, or alternative routing among get_tx, get_cometbft_tx, get_tx_details, or search_cosmos_txs. In a sibling set this dense, that absence matters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cosmos_validatorsBRead-onlyInspect
Returns the list of staking validators. Includes operator address, status, tokens, delegator shares, commission rates, and description.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by validator status: BOND_STATUS_BONDED, BOND_STATUS_UNBONDING, or BOND_STATUS_UNBONDED. Leave empty for all. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=false, so safety and mutation behavior are partially covered. The description adds value by naming the returned fields, but it does not discuss ordering, pagination, state changes, or why a list operation is marked non-idempotent.
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 two tight sentences with no wasted words. The purpose is front-loaded, followed by a useful summary of returned fields.
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 helpfully names the main return fields. The single parameter is fully covered by the schema and annotations cover the read-only profile. Minor gaps remain around pagination, ordering, and total result size, but the definition is broadly complete for a simple list endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the single optional status parameter is fully documented in the schema, including allowed values and the empty/default behavior. The description does not add any parameter-specific meaning beyond the schema, so the baseline score 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 and resource: returns the list of staking validators. It also lists the main fields returned, making the purpose clear. However, it does not explicitly distinguish this from the sibling get_cometbft_validators tool, which an agent might otherwise confuse with staking validators.
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 guidance on when to use this tool versus alternatives such as get_cometbft_validators. The usage is implied by the name and description, but no conditions, exclusions, or alternative routing are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_depth_historyBRead-onlyInspect
Returns historical depth data for a pool including asset depth, RUNE depth, asset price, and liquidity units over time intervals.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End timestamp (Unix seconds) | |
| from | No | Start timestamp (Unix seconds) | |
| asset | Yes | Pool asset identifier (e.g. BTC.BTC) | |
| count | No | Number of intervals to return | |
| interval | No | Time interval: 5min hour day week month quarter year |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The read-only framing is consistent with readOnlyHint=true, and the description usefully enumerates the returned data series, which matters since there is no output schema. It does not explain the implications of idempotentHint=false (results shift as new intervals accrue), nor pagination or interval defaults, so it adds only partial behavioral context.
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 front-loaded sentence with no filler, and the purpose plus the returned metrics lead the reader immediately. It could be slightly tighter, but 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?
Since no output schema exists, listing the returned data fields is genuinely useful and partly compensates. Still missing for a time-series tool: how from/to/count/interval interact, what happens when they are omitted, and how this differs from the sibling history 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 description coverage is 100%, so all five parameters (asset, from, to, count, interval) are already documented in the schema, making the baseline 3. The description adds no syntax, default, or interaction detail beyond restating the returned data 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 (historical depth data for a pool) and enumerates the metrics returned: asset depth, RUNE depth, asset price, liquidity units. However, it does not differentiate itself from closely named siblings like get_liquidity_history or get_rune_history, which an agent could easily confuse it with.
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 guidance, no exclusions, and no mention of the alternative history tools (get_liquidity_history, get_tvl_history, get_earnings_history) that overlap in scope. The agent must infer selection purely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_derived_poolBRead-onlyInspect
Returns one derived (virtual) pool's depths and status.
| Name | Required | Description | Default |
|---|---|---|---|
| asset | Yes | The derived asset (e.g. THOR.BTC) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds useful context about what is returned ('depths and status'), which goes slightly beyond the annotations. It does not explain the curious idempotentHint=false on a read-only tool, nor any failure behavior for an unknown asset.
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 front-loaded sentence with no filler. It is appropriately sized; it earns its place, though it could add one clause about the identifier format without bloat.
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 one-parameter read tool with no output schema, the description gives enough to call it correctly. It states both the input target (one derived pool) and the returned data (depths and status). Minor gaps in routing guidance keep 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% and the single 'asset' parameter is documented in the schema with an example (THOR.BTC). The description implies the identifier selects a specific derived pool but adds no format or validation 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: 'Returns one derived (virtual) pool's depths and status.' The phrase 'one derived' implicitly distinguishes it from the sibling list_derived_pools, though it never names the alternative explicitly. 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?
There is no explicit guidance on when to use this versus list_derived_pools or get_pool/get_pool_stats. Usage is only inferable from the singular 'one derived pool'. No prerequisites, exclusions, or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dynamic_l1_feesARead-onlyInspect
Returns per-THORName dynamic L1 minimum swap-fee floors (ADR-026). Each entry shows the enrolled THORName, trading pair, current dynamic fee floor in basis points, whitelist state (1=Active, 2=Monitor), last active epoch, and latest fee revenue in TOR.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Although annotations provide safety hints (readOnlyHint), the description provides critical structural transparency by detailing every field returned (e.g., 'trading pair, current dynamic fee floor in basis points, whitelist state'). This compensates for the missing output schema and is highly useful for agent execution.
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 dense but perfectly efficient. It front-loads the main function and then concisely lists all relevant data points returned in each entry, packing maximum information into minimal 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?
Given that there is no defined output schema, the description is exceptionally complete. It thoroughly documents the structure, data types (basis points, TOR), and meaning of every piece of information the tool returns.
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 tool has no input parameters, meaning the description cannot add parameter semantics. Since the baseline score for 0 parameters is high, and the description is clear in its purpose, a 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is highly specific, stating it 'Returns per-THORName dynamic L1 minimum swap-fee floors (ADR-026).' This clearly identifies the verb, the resource, and the scope, immediately differentiating it from other financial retrieval 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 definition does not provide explicit guidance on when to use this tool versus alternatives. While its purpose is clear, the agent has no context on specific use cases or preconditions for invoking it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_earnings_historyBRead-onlyInspect
Returns historical earnings data including liquidity fees, block rewards, and bonding/liquidity earnings over time intervals.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End timestamp (Unix seconds) | |
| from | No | Start timestamp (Unix seconds) | |
| count | No | Number of intervals to return | |
| interval | No | Time interval: 5min hour day week month quarter year |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=false, so the safety profile is covered. The description only restates the data content and adds no behavioral context such as defaults, pagination behavior, or why repeated calls are non-idempotent (e.g., time-window dependence).
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, front-loaded sentence that states the resource and its contents with no filler or redundancy. Nothing is wasted and the key information comes first.
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 and no required parameters, so the description should ideally explain return shape and default behavior (e.g., what a missing interval or range yields). It partially covers return content but leaves defaults and pagination unaddressed.
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 (to, from, count, interval) are already documented in the schema. The description adds no syntax, default, or format detail beyond it, making the baseline 3 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?
Clear verb ("Returns") plus specific resource ("historical earnings data") and an enumeration of what it covers (liquidity fees, block rewards, bonding/liquidity earnings). However, it does not distinguish itself from nearby siblings such as get_liquidity_history, get_affiliate_earnings, or get_rune_history.
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 when-to-use, when-not-to-use, or alternative-tool guidance. With several overlapping history/earnings siblings present, an agent gets nothing to help it choose this tool over them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_holdersBRead-onlyInspect
Returns top RUNE holders with their balances.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish that this is a safe read operation, so the safety burden is covered. The description adds nothing about how many holders constitute 'top', the ordering, whether results are truncated or cached, or the balance units — all relevant for interpreting the output of an unparameterized endpoint.
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 front-loaded sentence with no filler — appropriately sized for a no-argument endpoint. It is arguably too terse rather than wasteful, which caps it at 4.
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 no parameters, the description carries the full burden of explaining what comes back, yet 'top' and 'balances' remain unquantified and the record shape is unspecified. An agent cannot predict result size, ordering, or fields before calling.
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 tool takes zero parameters, so per the rubric the baseline is 4. There is no parameter syntax the description could meaningfully add.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns top RUNE holders with their balances'), so an agent knows this is a holder-listing read. It does not, however, differentiate itself from adjacent holder/provider tools such as list_rune_providers or get_runepool_member, and 'top' is left undefined.
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 guidance on when to call this versus the many other RUNE-holder or provider endpoints in the sibling list, and no stated preconditions. The agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_inbound_addressesARead-onlyInspect
Returns vault addresses for depositing assets into THORChain. Each chain has its own inbound address along with gas rates and halted status.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it read-only; the description adds that the response includes per-chain gas rates and halted status, which explains the dynamic/non-idempotent nature hinted by idempotentHint=false. It does not cover auth or rate limits, but for a no-param read endpoint this is useful added context.
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 purpose and followed by the per-chain return detail. Every clause earns its place; no boilerplate 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?
With no output schema, the description must carry return-value information; it identifies the main return categories (vault addresses per chain, gas rates, halted status) but does not describe structure or format. Given the tool's low complexity and zero parameters, this is nearly 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?
There are no parameters, so per the rubric the baseline is 4; schema coverage is 100% and there is nothing for the description to compensate for. No additional parameter meaning is needed.
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 ('Returns') and resource ('vault addresses' / 'inbound address') and ties it to the concrete use case of depositing assets into THORChain. The per-chain scope and inclusion of gas rates/halted status distinguishes it from generic vault-listing 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?
The phrase 'for depositing assets into THORChain' implies the usage context, but the description does not explicitly state when to choose this over siblings like get_vault or list_asgard_vaults, nor does it list prerequisites or exclusions. 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.
get_invariantARead-onlyInspect
Runs a specific protocol invariant check and returns the result. Shows whether the invariant is broken and any informative messages about the check. Use this to verify protocol consistency and detect potential issues.
| Name | Required | Description | Default |
|---|---|---|---|
| invariant | Yes | The invariant name to check (e.g. 'asgard', 'bond', 'pools', 'thorchain') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=false, covering the safety profile. The description adds genuinely useful behavioral context: it explains that the tool returns a result showing whether the invariant is broken plus informative messages. That output disclosure is valuable, particularly since no output schema exists. It stops short of 5 because it does not discuss how results may vary across calls or any execution constraints.
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 three short sentences and is front-loaded with the core action. Each sentence contributes something, though the final usage sentence is fairly generic. It is appropriately sized for a simple one-parameter tool with no wasted exposition.
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-parameter tool with full schema coverage and existing annotations, the description covers purpose, output semantics, and a usage rationale. The absence of an output schema is mitigated by the description explaining what the result contains. It is nearly complete, with only minor nuance about non-idempotent behavior left to annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents the single 'invariant' parameter, including example names. The description adds no additional syntax, format, or semantic detail beyond what the schema already provides. A baseline 3 is correct when the schema does all 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?
The description states a specific verb and resource: 'Runs a specific protocol invariant check and returns the result.' This is clear and actionable, but it does not name or differentiate itself from the sibling list_invariants tool, which is the closest alternative. A 4 is appropriate for a clear purpose that lacks explicit sibling routing.
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 sentence 'Use this to verify protocol consistency and detect potential issues' provides an implied use case, but there is no guidance on when to prefer this over list_invariants or when it is inappropriate. This is the minimum viable level: a generic when-to-use statement without alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_keygenARead-onlyInspect
Returns keygen information for a specific block height and pubkey. Shows details of the key generation ceremony including the keygen block, member nodes, and signature. Use this to investigate vault creation events.
| Name | Required | Description | Default |
|---|---|---|---|
| height | Yes | The block height of the keygen ceremony | |
| pubkey | Yes | The pubkey of one of the keygen block members |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=false, covering the safety profile. The description adds what data is returned (keygen block, member nodes, signature), which is output semantics rather than behavioral traits like permissions or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no wasted words, front-loading the purpose and then giving usage context. Every sentence is relevant and earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read tool with no output schema, the description adequately explains what is returned and when to use it. It could mention edge cases like missing ceremonies, but it 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 description coverage is 100%, so the schema fully documents both parameters. The description mentions the parameters but adds no additional format or syntax details 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?
State a specific verb (returns) and resource (keygen information) with the identifying parameters (block height and pubkey). It is clear what the tool does, but it does not explicitly differentiate itself from sibling tools like get_keygen_metric or get_keysign.
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 clear usage context: 'Use this to investigate vault creation events.' This gives a concrete scenario, but no exclusions or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_keygen_metricBRead-onlyInspect
Returns keygen timing metrics for a specific vault public key.
| Name | Required | Description | Default |
|---|---|---|---|
| pubkey | Yes | The vault public key (thorpub...) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=false, so the safety profile is covered. The description adds that it returns timing metrics for a vault key, but does not explain what those metrics include or why idempotency is marked false for a read. That is a modest addition beyond structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single front-loaded sentence with no filler. It is efficient, though it could have used one clause to differentiate from sibling keygen tools.
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 schema coverage and readOnlyHint annotations, the description carries enough to call it correctly. The only gap is sibling differentiation and what the timing metrics contain, which are minor given the simple interface.
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%, with the single pubkey parameter documented as a 'thorpub...' vault public key. The description matches the schema's meaning but adds no format examples or lookup caveats beyond it, 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?
The description states a specific verb ('Returns') and resource ('keygen timing metrics'), and scopes it to a vault public key. It does not distinguish itself from nearby siblings like get_keygen, get_keysign, or get_tss_metrics, which also concern keygen/key operations.
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 guidance on when to use this versus get_keygen or get_tss_metrics, nor any prerequisites or exclusions. The only usage signal is the implicit 'for a specific vault public key', which is just the parameter requirement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_keysignARead-onlyInspect
Returns keysign information for a specific block height. Shows transactions that were scheduled to be signed at that height, including outbound transaction details. Use this to investigate signing operations at a particular block.
| Name | Required | Description | Default |
|---|---|---|---|
| height | Yes | The block height to get keysign information for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered; the description usefully adds that the result is a per-height signing view containing outbound transaction details. It does not explain the non-idempotent hint, whether the view is historical/immutable, or how unpaginated the response may be.
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 purpose before usage. The second sentence's content and the third sentence's 'at a particular block' partially restate the opening, so there is minor 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?
There is no output schema, so the description must describe returns, and it does name the core payload (scheduled signing transactions with outbound details). For a one-parameter, read-only tool this is nearly enough; only edge cases like empty heights or response shape remain unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single 'height' parameter, so the schema already documents it. The description only repeats 'for a specific block height' without adding format, range, or whether the height may be a tip/pending height.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns keysign information') and scopes it to a block height, then elaborates on the payload ('transactions scheduled to be signed at that height, including outbound transaction details'). It distinguishes itself implicitly from neighbors like get_keygen and get_scheduled_queue by being height-keyed, but it never names a sibling to sharpen the boundary.
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 this to investigate signing operations at a particular block' gives an implied investigative context, but there is no when-not guidance and no named alternative (e.g., get_keysign_pubkey or get_scheduled_queue) for agents that actually want the queue rather than historical signing at a height.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_keysign_pubkeyBRead-onlyInspect
Returns keysign information for a specific block height and vault pubkey. Shows transactions signed by a particular vault at that height. Use this to investigate a specific vault's signing activity.
| Name | Required | Description | Default |
|---|---|---|---|
| height | Yes | The block height to get keysign information for | |
| pubkey | Yes | The vault pubkey to filter keysign information |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a read-only operation, so the safety profile is covered. The description adds useful content context (it surfaces the transactions a vault signed at that height), but says nothing about result shape, pagination, or why idempotentHint is false for what looks like a pure query.
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 with the core purpose front-loaded. The third sentence marginally restates the second but still earns its place as a usage cue, so the text is close to optimal size.
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 read-only query with full schema coverage and no output schema, the description is largely sufficient. The one material omission is disambiguation from the sibling `get_keysign`, which an agent needs in order to pick the right 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% and both parameters are documented in the schema, so the baseline applies. The description restates 'block height and vault pubkey' but adds no format, range, or validation detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns keysign information') plus the exact scoping keys (block height and vault pubkey), which is more precise than the bare name. However, it never distinguishes itself from the close sibling `get_keysign`, which appears to be the unfiltered variant, so an agent must infer 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?
'Use this to investigate a specific vault's signing activity' implies a use case but gives no explicit when/when-not rules and names no alternative. The natural alternative (`get_keysign`) is left unmentioned, so routing depends on the agent noticing the pubkey parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_known_poolsBRead-onlyInspect
Returns known pools with their status (available, staged, suspended).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a read-only operation. The description adds useful behavioral context by naming the possible status values, but it does not describe the return shape, ordering, or why the tool is not idempotent.
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 efficient sentence with no wasted text. It is front-loaded with the verb and resource.
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-parameter read tool with no output schema, the description could say more about the returned pool structure beyond the status values. It also leaves ambiguity about how this differs from closely related pool-listing 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?
The tool takes zero parameters, so there is no parameter semantics to explain. The schema is empty, and the description correctly does not invent 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 and resource: returns known pools with status values. Clear enough to understand the operation, but it does not distinguish itself from siblings such as list_pools or get_pool.
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 no explicit when-to-use guidance or comparison with alternatives. An agent must infer whether this tool is preferable to list_pools or get_pool based only on the phrase "known pools."
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_lastblockARead-onlyInspect
Returns the last observed and signed block heights for all chains. Useful for monitoring chain sync status and detecting chain halts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and idempotentHint=false, so the safety profile is covered. The description usefully explains the 'observed vs signed' distinction as a halt-detection signal, but does not note that results change over time (the non-idempotent behavior) or the 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?
Two tight sentences, front-loaded with what is returned before the use case. 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 parameterless read tool with no output schema, the description adequately conveys what comes back and why it matters. It could go slightly further on return structure across multiple chains, but nothing essential to invoking 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?
The tool takes zero parameters, so per the rubric this is a baseline 4. No parameter documentation is needed or missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Returns the last observed and signed block heights for all chains.' The 'for all chains' scope implicitly distinguishes it from the sibling get_lastblock_chain, though the sibling is never named, 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?
It supplies an intended context ('monitoring chain sync status and detecting chain halts') but gives no explicit when-to-use versus alternatives or prerequisites. An agent can infer the use case but must guess why it would pick this over get_lastblock_chain.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_lastblock_chainARead-onlyInspect
Returns the last observed and signed block heights for a specific chain. Useful for monitoring a particular chain's sync status.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | Yes | The chain to get last block for (e.g. BTC, ETH, THOR) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=false, so the safety profile is covered. The description adds one piece of behavioral context — that it returns both 'observed' and 'signed' heights, two distinct values — which is meaningful beyond the annotations, but it says nothing about freshness, caching, or what happens for an unknown 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, no filler, and the core behavior is front-loaded before the usage hint. 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 one-parameter read-only lookup with no output schema, the description plus annotations plus full schema coverage give an agent enough to call it correctly. The only real gap is the missing contrast with the sibling get_lastblock.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single chain parameter is fully documented in the schema with examples (BTC, ETH, THOR). The description adds no syntax, format, or cardinality detail beyond that, 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 with scope: 'Returns the last observed and signed block heights for a specific chain.' An agent can tell what it does. It does not, however, explicitly differentiate itself from the sibling get_lastblock, which likely returns the same data without per-chain scoping.
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?
'Useful for monitoring a particular chain's sync status' implies a usage context but gives no explicit when-to-use vs. alternatives (e.g. get_lastblock for all chains) and no exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_limit_swapsARead-onlyInspect
Returns the limit swaps queue containing pending limit orders. Each entry includes swap details, ratio, age, and expiry information. Supports filtering by source/target asset, sender, and pagination. Limit orders only work when AdvSwapQueueEnabled is true.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of items to return (default: 100, max: 1000) | |
| offset | No | Number of items to skip (default: 0) | |
| sender | No | Filter by sender address | |
| sort_by | No | Sort field: ratio, age, amount, or created_height (default: ratio) | |
| sort_order | No | Sort order: asc or desc (default: asc) | |
| source_asset | No | Filter by source asset (e.g. BTC.BTC) | |
| target_asset | No | Filter by target asset (e.g. ETH.ETH) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds non-obvious operational context the annotations cannot carry: the AdvSwapQueueEnabled feature-flag prerequisite and the shape of returned entries. It does not explain pagination behavior, error/empty responses when the flag is off, or ordering side effects.
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 carrying distinct information: what is returned, what can be filtered, and the runtime precondition. No repetition of parameter syntax or annotation content, and purpose 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?
Seven optional parameters are fully covered by the schema and safety is covered by annotations, so the description's job is mostly to convey the return shape, which it does at a high level since no output schema exists. The main gap is that it doesn't say what an agent sees when AdvSwapQueueEnabled is false or how the queue is ordered by default.
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 (limit, offset, sender, sort_by, sort_order, source_asset, target_asset) are already documented with defaults and allowed values. The description only loosely gestures at 'source/target asset, sender, and pagination' and omits the sort parameters entirely, adding no syntax or meaning 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 and resource ('Returns the limit swaps queue containing pending limit orders') and enumerates the entry contents (swap details, ratio, age, expiry). However, it never distinguishes itself from the closely named sibling get_limit_swaps_summary or get_swap_queue, so an agent must guess which returns the raw queue versus a summary.
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 usable context: it supports filtering by source/target asset and sender, plus pagination, and it discloses a real gating precondition ('Limit orders only work when AdvSwapQueueEnabled is true'). It stops short of naming alternatives (e.g. the summary tool) or stating when not to use it, so it clears the 'clear context' bar without reaching explicit routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_limit_swaps_summaryARead-onlyInspect
Returns a summary of the limit swaps queue including total count, total USD value, breakdown by asset pair, oldest swap age, and average age. Useful for getting an overview of pending limit orders without retrieving all individual swaps.
| Name | Required | Description | Default |
|---|---|---|---|
| source_asset | No | Filter by source asset (e.g. BTC.BTC) | |
| target_asset | No | Filter by target asset (e.g. ETH.ETH) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
While annotations cover safety (readOnlyHint), the description provides critical behavioral information about the data structure returned. It enumerates the specific aggregate metrics provided (e.g., 'breakdown by asset pair,' 'average age'), which is valuable context beyond simple read/write status.
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 highly efficient. The first sentence is packed with specific output details, and the second sentence provides a concise, functional use case, ensuring zero wasted 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?
Given that the output schema is missing, the description successfully compensates by exhaustively listing every piece of information the agent should expect in the summary (count, USD value, ages, breakdown). This makes the tool definition fully actionable.
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?
Since the schema description coverage is 100%, the parameters are well-documented structurally. The description reinforces the filtering logic by mentioning 'breakdown by asset pair,' which aligns with the `source_asset` and `target_asset` filters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the resource ('limit swaps queue') and the specific output provided ('a summary... including total count, total USD value, breakdown by asset pair, oldest swap age, and average age'). It also clearly distinguishes itself from retrieving individual swaps.
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 provides explicit context on *when* to use the tool: 'Useful for getting an overview of pending limit orders without retrieving all individual swaps.' This directly advises the agent on its scope versus other potential queue/swap tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_liquidity_historyBRead-onlyInspect
Returns historical liquidity change data including add/withdraw counts, volumes, and net liquidity over time intervals.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End timestamp (Unix seconds) | |
| from | No | Start timestamp (Unix seconds) | |
| count | No | Number of intervals to return | |
| interval | No | Time interval: 5min hour day week month quarter year |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=false, so the safety profile is covered. The description adds which historical metrics are returned, but does not explain default time behavior, pagination, or why idempotentHint is false; no contradiction is present.
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 front-loaded sentence with zero filler. It communicates the resource and returned metrics efficiently.
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 historical query, the description gives enough return-value detail and the schema fully covers parameters. Minor gaps remain around defaults and response structure, but these are small for a 4-parameter read-only 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%, with to/from/count/interval all documented in the schema. The description only restates the idea of time intervals and does not add syntax, defaults, or constraints beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: returns historical liquidity change data with concrete metrics like add/withdraw counts, volumes, and net liquidity. It is clear, but does not distinguish itself from sibling history tools such as get_tvl_history or get_depth_history.
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 no explicit when-to-use guidance, no conditions for choosing this over alternative history tools, and no prerequisites or exclusions. The agent must infer usage from the name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_lp_positionARead-onlyInspect
Returns liquidity provider position information for a specific address in a pool. Includes units, pending asset/rune, and last add/withdraw heights.
| Name | Required | Description | Default |
|---|---|---|---|
| asset | Yes | The pool asset (e.g. 'BTC.BTC' or 'ETH.ETH') | |
| address | Yes | The LP address to lookup |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the read-only nature is covered. The description adds what the response contains (units, pending asset/rune, last add/withdraw heights), which is useful given there is no output schema, but it says nothing about error behavior for unknown addresses/pools or any rate limits.
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 the core purpose is front-loaded ahead of the return-content detail.
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 key returned fields, and the schema fully covers inputs. Only gap is behavior on missing/invalid positions, which would round out an otherwise complete definition.
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 documented in the schema with examples ('BTC.BTC'), so the baseline of 3 applies. The description adds no format, validation, or case-sensitivity detail beyond what the schema already 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 ('Returns liquidity provider position information') plus the scope ('for a specific address in a pool'), which is enough to separate it from the plural list_liquidity_providers. It never names a sibling explicitly, so differentiation is inferable 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: the agent can infer you call this when you already know the asset and LP address, and that listing many LPs is a different tool. There is no explicit when-to-use, when-not-to-use, or prerequisite guidance (e.g. what happens if the address has no position in that pool).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_membersBRead-onlyInspect
Returns list of all liquidity provider addresses.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already establishes this is a safe read, so the description's value-add is limited to the scope word 'all'. It says nothing about ordering, snapshot consistency, whether the set changes over time (notable given idempotentHint=false), or how large the list may be.
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 front-loaded sentence with zero padding and no filler. It is efficient, though the extreme brevity is closer to under-specification than to well-judged concision.
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 parameterless read with no output schema, the description does carry the burden of conveying the return shape, and 'list of addresses' partially does so. But ordering, pagination, and freshness of the address set are all unaddressed, leaving an agent unable to predict the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4 by rule. There is nothing for the description to clarify, and schema coverage is trivially 100%.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns list of all liquidity provider addresses'), and the word 'addresses' usefully distinguishes it from the sibling list_liquidity_providers, which presumably returns richer LP objects. However, it never explicitly contrasts itself with that near-identical sibling, so an agent must infer the difference.
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 guidance, no prerequisites, and no mention of alternatives such as list_liquidity_providers or get_midgard_member. The one sentence describes output content only; an agent gets no routing signal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_midgard_balanceBRead-onlyInspect
Returns balance for an address from Midgard analytics.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Address to get balance for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already state readOnlyHint=true and idempotentHint=false, so safety and idempotency are covered structurally. The description adds the Midgard analytics data source, which is useful, but it does not describe return behavior, freshness, authentication, or why the operation is non-idempotent.
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 single front-loaded sentence with no redundant or filler content. Every phrase contributes to the stated purpose.
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 one-parameter read-only tool, the description is minimally adequate. However, without an output schema it does not clarify what kind of balance is returned, such as which asset or aggregate scope, leaving return semantics underspecified.
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 single address parameter is already fully documented in the schema. The description merely restates that the address is used to get a balance and adds no format or domain constraints beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: returns an address balance from Midgard analytics. It is clear what the tool does, but it does not explicitly differentiate itself from similar siblings such as get_cosmos_balances or get_midgard_member.
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 no guidance on when to use this tool versus alternatives. With many sibling balance/account tools available, an agent must infer the selection criteria from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_midgard_memberBRead-onlyInspect
Returns liquidity provider positions for an address including pool participation, units, and deposit/withdraw history.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | THORChain address (thor1...) or external chain address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true (safe read) and idempotentHint=false, so the safety profile is covered. The description adds value by disclosing the returned content categories, including historical deposit/withdraw data, but says nothing about data freshness, history depth, or address-resolution behavior for external chains.
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 verb and resource, and the content list is compact. It could arguably be trimmed further, but there is no wasted preamble or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of describing returns, and it does list the main returned fields at a high level. For a single-parameter read tool that is largely sufficient, though the absence of routing guidance versus siblings keeps it from being fully 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 'address' parameter is fully documented in the schema (thor1... or external chain address). The description only echoes 'for an address' without adding format, validation, or multi-chain semantics, 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 ('Returns') and resource ('liquidity provider positions for an address') and enumerates the payload contents (pool participation, units, deposit/withdraw history). It does not distinguish itself from close siblings such as get_lp_position, get_members, or get_runepool_member, so an agent cannot tell which to prefer without opening the other 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?
There is no when-to-use guidance, no mention of when not to use it, and no reference to any alternative tool. Given the dense cluster of LP/member siblings, this omission is significant; the agent gets no routing signal beyond the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_midgard_nodesARead-onlyInspect
Returns node information including addresses and public keys from Midgard analytics.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=false, so the safety profile is partly covered. The description adds useful detail about returned fields (addresses and public keys) and the Midgard source, but it does not explain why the operation is non-idempotent or what form the returned node data takes.
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 a single front-loaded sentence with no filler. It communicates the tool's action and data source efficiently.
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 parameters, no output schema, and annotations covering core safety hints, the description is nearly complete. It explains the Midgard source and key returned fields, though it could do more to distinguish this tool from sibling node-information 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?
The tool has zero parameters, so the baseline is 4. The description does not need to explain parameter meanings and appropriately focuses on the returned data instead.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it returns node information, including addresses and public keys, from Midgard analytics. This is clear enough to understand the tool, but it does not differentiate the tool from siblings such as list_nodes, get_node, or get_cosmos_node_info.
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 phrase 'from Midgard analytics' implies that this tool should be used when Midgard-sourced node data is desired, but there is no explicit guidance on when to use it instead of related node or analytics tools. The usage context is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_midgard_statsBRead-onlyInspect
Returns global network statistics including swap counts, volumes, liquidity metrics, and RUNE price.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=false, so the safety profile is covered externally. The description adds no behavioral context beyond the content list: it says nothing about data freshness or snapshot semantics (notably absent given idempotentHint=false implies changing values over time), caching, or rate limits.
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 front-loaded sentence with no filler; the verb and the returned metric categories come first. Every clause earns its place and 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?
With no output schema, the description carries the return-value burden and does list representative fields (swap counts, volumes, liquidity metrics, RUNE price), which is enough for an agent to call it correctly. It falls short of complete because it does not signal whether the list is exhaustive or clarify its relationship to the similarly-named network summary 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?
The tool takes zero parameters, so there is nothing for the description to disambiguate and the baseline is 4. The enumerated metric categories partially compensate for the absent output schema, though they are return semantics rather than parameter semantics.
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 ('Returns global network statistics') and enumerates the payload categories (swap counts, volumes, liquidity metrics, RUNE price), so an agent knows exactly what this tool yields. It does not, however, distinguish itself from near-name siblings like get_network_info, get_network_summary, or get_pool_stats, which also sound like network-level aggregates.
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 when-to-use guidance, no prerequisites, and no named alternative. Given a sibling set containing get_network_summary, get_network_info, get_tvl_history and get_rune_price_history, the description never explains why an agent would pick this Midgard aggregate over those.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_mimirBRead-onlyInspect
Returns THORChain protocol configuration parameters (Mimir values). These are key-value pairs that control protocol behavior like fees, limits, and feature flags.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=false, so the safety profile is covered; the description adds useful semantic context about what Mimir values actually are. It does not disclose scope (global protocol vs node-scoped), whether the full key set or a filtered subset is returned, or how it relates to the node/admin variants.
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 return value and followed by an explanation of the values' role. No filler, though the second sentence could have been spent on sibling differentiation instead of defining Mimir.
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 read tool with no output schema, the description adequately covers what is returned, but it leaves the most consequential open question unanswered: how this differs from get_mimir_node, get_mimir_admin, and get_mimir_key. That ambiguity is material given how many near-identical Mimir siblings exist.
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 tool takes zero parameters and the schema is trivially complete at 100% coverage, so the baseline of 4 applies. The description correctly implies no inputs are needed to fetch the configuration set.
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 (Returns) and resource (THORChain protocol configuration parameters / Mimir values), and even explains what the values are semantically (key-value pairs controlling fees, limits, feature flags). However, it gives no signal distinguishing it from the closely-named siblings get_mimir_admin, get_mimir_key, and get_mimir_node, which an agent must disambiguate before choosing.
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 offers no when-to-use guidance, no exclusions, and never mentions the alternatives (get_mimir_admin, get_mimir_node, get_mimir_key) that return overlapping Mimir data. An agent has to infer that this is the global/default view from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_mimir_adminARead-onlyInspect
Returns the admin mimir configuration. These are protocol parameters set directly by THORChain admins (the dev team) rather than through node voting. Admin overrides take precedence over node votes.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered, and the description doesn't contradict it. It adds useful domain context (admin overrides take precedence over node votes), but says nothing about return format, pagination, or freshness of the 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?
Three tight sentences that front-load the resource and then add the one piece of context (admin vs node-voted) that matters. No redundancy or 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 no-parameter read tool with no output schema, the description covers what is returned and why it differs from other mimir data. Only the absence of any return-shape hint keeps it from being fully 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?
The tool takes zero parameters, so the baseline of 4 applies; there are no parameter semantics to clarify. Nothing in the description is needed to compensate for schema gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns the admin mimir configuration') and clarifies the distinguishing trait versus other mimir data: these are admin-set protocol parameters rather than node-voted ones. It doesn't name the sibling get_mimir explicitly, but the admin-vs-vote distinction gives an agent a basis for 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?
The description explains what admin mimir is but gives no explicit when-to-use guidance or naming of alternatives. An agent must infer from the sibling list whether to call get_mimir, get_mimir_key, or this tool; nothing states the selection condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_mimir_keyARead-onlyInspect
Returns the effective value for a specific mimir key. This shows the final resolved value after considering admin overrides and node voting consensus. Use this to check the current value of any individual protocol parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | The mimir key to look up (e.g. CHURNINTERVAL, HALTTRADING, etc.) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, and the description goes beyond that by explaining the resolution semantics: the value is 'final resolved' after 'admin overrides and node voting consensus.' That tells the agent what the returned number actually represents, which is genuine behavioral context 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 short sentences, zero filler, with the core behavior front-loaded and the resolution detail immediately after. 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 single-parameter read tool with no output schema, the description covers what the value means and when to reach for it. It is nearly complete; only the missing sibling differentiation and the behavior on an unknown key keep 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% and the schema itself supplies example keys (CHURNINTERVAL, HALTTRADING), so the description's reference to 'a specific mimir key' adds little beyond it. Baseline 3 is appropriate when the schema does the documentation 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?
States a specific verb and resource: 'Returns the effective value for a specific mimir key.' An agent knows exactly what it fetches. However, it never distinguishes itself from the very similar siblings get_mimir, get_mimir_admin, and get_mimir_node, so it falls short of full 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?
'Use this to check the current value of any individual protocol parameter' implies the usage context, but there is no when-not guidance and no naming of the alternatives (get_mimir for bulk, get_mimir_admin for overrides). The agent must infer which of the four mimir tools to call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_mimir_nodeARead-onlyInspect
Returns the mimir settings voted by a specific node. Shows a map of mimir keys to their voted values for the given node address. Use this to see what protocol parameters a specific node operator is voting for.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | The node address to get mimir votes for (thor1...) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true, so safety is covered by structured data. The description adds the return shape (a map of mimir keys to voted values), which is useful, but says nothing about why idempotentHint=false (votes change over time), whether non-voting nodes return an empty map, or how large the result can be.
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 with no filler, front-loaded with the core action and followed by the return shape. It could be trimmed slightly since the third sentence partly restates the first, but 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-parameter read-only lookup with no output schema, the description covers what is fetched, for whom, and in what shape. The main remaining gap is disambiguation from the sibling mimir-vote tools, which would make it fully self-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 description coverage is 100% and the single address parameter is fully documented in the schema, including the thor1... format. The description only restates that the address identifies the node, adding no syntax or format detail beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource ("Returns the mimir settings voted by a specific node") and scopes it to one node address, which separates it from get_mimir and get_mimir_key. It does not, however, distinguish itself from the very close sibling list_mimir_node_votes, which an agent could easily confuse it with.
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 this to see what protocol parameters a specific node operator is voting for" supplies a clear use case, but there is no when-not guidance and no named alternative, despite list_mimir_node_votes and get_mimir_key being near neighbors. Usage is implied rather than routed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_network_infoBRead-onlyInspect
Returns THORChain network statistics and health information including bond metrics, pool data, and node counts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safe-read nature is known without the description. The description usefully enumerates what data is bundled (bond metrics, pool data, node counts), but it does not address the odd idempotentHint=false for a parameterless read, nor return format or freshness/staleness of the data.
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 verb and resource and then lists the payload categories. Nothing is wasted, though the phrase 'network statistics and health information' is slightly broad relative to the specific items that follow.
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 parameters and no output schema, the description must carry the full burden of what an agent gets back, and it partially does by naming data categories. However, it gives no way to distinguish this aggregate from the several sibling aggregate/stats tools, leaving a real selection 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?
The tool takes zero parameters, so there is nothing for the description to clarify; the baseline for a 0-param schema is 4.
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 (Returns) and resource (THORChain network statistics and health information) with concrete content categories: bond metrics, pool data, node counts. It is clear on its own, but it does not differentiate itself from close siblings like get_network_summary, get_midgard_stats, or get_bonds, which appear to cover overlapping ground.
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 guidance on when to use this tool versus the many overlapping siblings (get_network_summary, get_midgard_stats, get_bonds, list_nodes). The agent is left to infer selection from the description alone, with no exclusions or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_network_summaryARead-onlyInspect
Compact THORChain network status for agents: node counts, bonding/liquidity APY, reserve, pooled RUNE, next churn height, vault migration flag. Prefer this over get_network_info, which returns large per-node bond arrays.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so safety is covered. The description adds the 'compact' framing and implicitly the trade-off versus the bulky alternative, but says nothing about rate limits, auth, or caching. The idempotentHint=false is consistent with a changing churn height, so no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste: the first enumerates the return contents, the second handles routing. Both are front-loaded and information-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?
With no output schema, the description compensates by listing what the summary contains (node counts, APY, reserve, pooled RUNE, churn height, vault flag), which is exactly what an agent needs to decide relevance. 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?
The tool takes zero parameters; there is nothing for the description to disambiguate, and 100% schema coverage applies trivially. Baseline 4 for a parameterless tool.
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 (network status summary) and enumerates the exact contents returned: node counts, bonding/liquidity APY, reserve, pooled RUNE, churn height, vault migration flag. It also explicitly distinguishes itself from the sibling get_network_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit routing rule: 'Prefer this over get_network_info, which returns large per-node bond arrays.' Names the alternative and the condition (verbosity/size) that selects this tool instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_nodeARead-onlyInspect
Returns detailed information for a specific validator node including bond, status, version, and performance metrics. Bond providers include their Bond Yield configuration (bps share of rewards paid out automatically and its payout_target) when one is set.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | The node address (thor1...) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safe-read profile is covered by structured data. The description contributes genuine extra context by explaining that bond providers include Bond Yield configuration (bps share and payout_target), but says nothing about permissions, error cases, or whether idempotentHint=false matters here.
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 no filler; the core purpose leads and the Bond Yield detail follows as a qualifier. Slightly dense in the second sentence but 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 single-parameter read tool with no output schema and no nested objects, the description covers both what it returns and a notable conditional case (Bond Yield when set) – including the payout_target terminology an agent cannot derive from the schema. Missing only the rare edge/permission 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?
With one parameter and 100% schema description coverage, the schema fully documents the address argument (including its thor1... format). The description adds 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 (returns) and resource (a specific validator node) and enumerates the returned fields (bond, status, version, performance metrics). It implicitly distinguishes itself from the list-oriented siblings like list_nodes and get_midgard_nodes via 'a specific node', but never names them, so differentiation is inferable rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this is the lookup when it already has a node address, versus list_nodes for enumeration. No explicit when-to-use, prerequisites, or named alternatives are given, and with many node-related siblings (get_midgard_nodes, get_cosmos_validators, get_cometbft_validators) this is a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_oracle_priceBRead-onlyInspect
Returns the oracle price for a specific asset symbol. The price is returned in USD and is used for protocol calculations and limit order pricing.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | The asset symbol to get the price for (e.g. BTC, ETH, RUNE) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safe-read nature is covered. The description adds that the result is in USD and what it is used for, but does not disclose freshness, volatility, or why idempotentHint=false despite returning a price.
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 with the primary behavior front-loaded. The second sentence carries useful context about USD denomination and common uses, though it could be tightened.
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?
Adequate for a simple one-parameter getter with rich schema coverage and no output schema. However, it omits the key sibling distinction from get_oracle_prices and does not mention price freshness, which matters for a non-idempotent oracle lookup.
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 only parameter is fully documented in the schema, including examples (BTC, ETH, RUNE), so schema coverage is 100%. The description adds no syntax or format detail beyond restating that the symbol selects the asset.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: returns the oracle price for a specific asset symbol. Clear on its own, but it does not distinguish itself from the sibling tool get_oracle_prices, so an agent must infer singular vs. plural 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?
Provides domain context (protocol calculations and limit order pricing) but gives no explicit when-to-use guidance, no prerequisites, and no comparison to the obvious alternative get_oracle_prices. The choice between this tool and its plural sibling is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_oracle_pricesARead-onlyInspect
Returns all oracle prices for supported assets. Oracle prices are used for determining asset values in the protocol and for pricing limit orders. Returns an array of price objects containing symbol (e.g., BTC, ETH) and price in USD.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. With no output schema, the description usefully discloses the return shape (array of objects with symbol and USD price), which is genuine added context, though it says nothing about the idempotentHint=false flag or refresh/latency 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 short sentences, front-loaded with the core action. Mild redundancy from repeating 'Returns ... Returns ...' 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?
For a no-param read tool with no output schema, the description adequately covers purpose and return structure. It could be more complete by naming the singular sibling it differs from.
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?
Zero parameters, so the baseline of 4 applies; there are no arguments whose semantics need explaining.
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: 'Returns all oracle prices for supported assets.' The word 'all' implicitly distinguishes it from the singular sibling get_oracle_price, 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?
Gives context for what oracle prices are used for (asset valuation, limit-order pricing) but never states when to call this plural tool versus get_oracle_price or any other alternative. 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.
get_outbound_fee_assetARead-onlyInspect
Returns outbound fee information for a specific asset including the fee amount, surplus/deficit tracking, and dynamic multiplier.
| Name | Required | Description | Default |
|---|---|---|---|
| asset | Yes | The asset to get outbound fee for (e.g. BTC.BTC) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, so safety is covered. The description adds value by naming the returned fields (fee amount, surplus/deficit, multiplier), which is useful because there is no output schema. It does not describe edge cases, error behavior, or whether values are live versus cached, so it remains moderate.
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 single, front-loaded sentence that directly states what the tool returns. There is no redundant or filler 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 simple read-only getter with one fully documented parameter and no output schema, the description is mostly complete because it names the key returned fields. The main missing context is how this tool relates to the sibling get_outbound_fees, but the core invocation information 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%, and the single asset parameter is documented in the schema with an example format (e.g. BTC.BTC). The description does not add syntax or format details beyond the schema, so the baseline score 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?
The description states a specific verb and resource: returns outbound fee information for a specific asset. It also names the returned data fields (fee amount, surplus/deficit tracking, dynamic multiplier), making the tool's scope clear. It does not explicitly distinguish this per-asset tool from the sibling get_outbound_fees, 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 phrase 'for a specific asset' implies the tool should be used when an asset-specific outbound fee is needed, which gives some usage context. However, it does not explicitly say when to use this tool versus get_outbound_fees or get_outbound_queue, leaving the agent to infer the difference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_outbound_feesARead-onlyInspect
Returns outbound fee information for all assets including the fee amount, surplus/deficit tracking, and dynamic multiplier. Use this to estimate transaction costs.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already tells the agent this is a safe read, so the description only needs to add context. It adds content scope (all assets, surplus/deficit, dynamic multiplier) but says nothing about freshness or volatility despite idempotentHint=false implying the data changes between calls, nor about the shape of the return. Adequate but with a clear 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 short sentences, zero padding, with the resource and its scope front-loaded ahead of the usage hint. 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 parameters and no output schema, the description usefully enumerates the returned fields, which covers the main gap left by the absent output schema. It is nearly complete; only freshness/volatility and the all-assets vs. single-asset relationship are left implicit.
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 tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline of 4 applies. No parameter-related information is required or missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (returns outbound fee information) and names the scope ('for all assets'), which implicitly distinguishes it from the singular sibling get_outbound_fee_asset. It also enumerates the payload contents (fee amount, surplus/deficit, dynamic multiplier), so an agent knows what it gets 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?
'Use this to estimate transaction costs' gives a clear motivating context, but there is no when-not guidance and the obvious alternative, get_outbound_fee_asset for a single asset, is never named. Usage is implied rather than routed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_outbound_queueARead-onlyInspect
Returns the outbound queue containing signed transactions waiting to be broadcast to external chains. Each entry includes the destination chain, address, coin amount, and gas information. These transactions have been signed and are awaiting confirmation.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=false, so the safety profile is covered. The description adds genuine behavioral context beyond that: these are already-signed transactions in a pre-broadcast state, which tells the agent the queue is a staging area rather than a history. Auth and rate-limit behavior are still unstated.
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. The third sentence largely restates the first ('signed' / 'awaiting confirmation' repeats 'signed transactions waiting to be broadcast'), which is minor redundancy rather than padding.
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 entry fields (destination chain, address, coin amount, gas), which is exactly the return-value detail an agent would otherwise lack. For a zero-param read tool this is close to complete; it only lacks positioning against sibling queues.
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 tool takes zero parameters, so per the rubric the baseline is 4. Nothing in the description is needed to clarify parameter meaning, and nothing misleads.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns the outbound queue') and pins down scope with 'signed transactions waiting to be broadcast to external chains.' However, it never distinguishes itself from the many sibling queue tools (get_queue, get_scheduled_queue, get_swap_queue), so an agent must infer which queue to pick.
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 when-to-use or when-not-to-use guidance, and no alternative is named despite several closely related queue siblings. The agent gets no routing help beyond the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_poolARead-onlyInspect
Returns detailed information for a specific liquidity pool by asset identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| asset | Yes | The asset identifier (e.g. BTC.BTC or ETH.ETH) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description confirms it is a retrieval operation and adds no contradictory behavior, but it provides no additional context about return detail, formatting, or edge cases beyond what the annotations already establish.
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 single efficient sentence with the core action and scoping condition front-loaded. There is 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 simple one-parameter read tool this is minimally adequate, but it does not differentiate from closely named siblings and does not describe what 'detailed information' includes despite there being no output schema. Some gaps remain for an agent deciding whether this is the right pool-detail 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%, and the single parameter is already well documented with examples. The description mentions 'asset identifier' but adds no syntax or format detail 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?
The description states a clear verb and resource: returns detailed information for a specific liquidity pool, scoped by asset identifier. It does not explicitly distinguish itself from siblings like get_pool_stats or list_pools, 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 phrase 'by asset identifier' implies when the tool applies, but there is no explicit guidance on when to use it versus alternatives such as get_pool_stats, get_derived_pool, or list_pools. 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.
get_pool_slipARead-onlyInspect
Returns slip data for one pool, including current slip and rollup statistics.
| Name | Required | Description | Default |
|---|---|---|---|
| asset | Yes | The pool asset (e.g. BTC.BTC) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already establishes that this is a safe read operation. The description adds that it returns current slip and rollup statistics, which helps explain the kind of data returned, but it does not discuss time sensitivity, pagination, or other behavioral details, and it does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted language. It states the operation and the returned data immediately.
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 one-parameter read-only tool, the description provides adequate context: it says what resource is queried and what kind of data is returned. There is no output schema, and while the description could elaborate on the shape of the slip data, it is sufficient for an agent to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single required parameter 'asset' is fully documented in the schema, including an example. The description only says 'for one pool' and adds no meaningful parameter semantics beyond what the schema already provides, so the baseline score 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?
The description states a clear verb and resource: it returns slip data for one pool. It also names the returned content, current slip and rollup statistics, but it does not explicitly distinguish itself from the sibling list_pool_slips beyond the implied single-pool scope.
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 'for one pool,' suggesting this tool is appropriate when the agent needs slip data for a specific asset rather than a list. However, it does not explicitly name when to choose this over list_pool_slips or state any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pool_statsBRead-onlyInspect
Returns detailed analytics and statistics for a specific liquidity pool including volume, fees, APY, and historical metrics.
| Name | Required | Description | Default |
|---|---|---|---|
| asset | Yes | The asset identifier (e.g. BTC.BTC or ETH.ETH) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=false, so the safety profile is covered. The description adds useful context by naming the analytics dimensions returned, but it does not disclose freshness, time-range behavior, rate limits, or response structure beyond the metric list.
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 a single, front-loaded sentence with no wasted words. It immediately states the action, resource, and included metrics.
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-parameter analytics tool, the description is largely complete because it lists the key metric categories returned. It could be stronger by specifying the historical window or response granularity, especially since no output schema 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?
The schema has 100% description coverage and fully documents the single 'asset' parameter with examples. The description reinforces that the tool operates on a specific pool but adds no syntax or format details beyond what the schema already 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?
The description uses a specific verb ('Returns') and resource ('detailed analytics and statistics for a specific liquidity pool') and names the returned metrics (volume, fees, APY, historical metrics). It is clear what the tool does, but it does not explicitly distinguish itself from nearby siblings like get_pool, get_depth_history, or get_tvl_history.
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 provides no when-to-use guidance, no exclusions, and no alternative tool routing. It only implies usage by saying the statistics are for a specific pool, leaving the agent to infer when this is preferable to get_pool, get_depth_history, or get_tvl_history.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_queueARead-onlyInspect
Returns queue statistics including pending swap count, outbound transaction count, internal queue size, and scheduled outbound value. Use this to understand network congestion.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, so the safety profile is covered, and the description usefully enumerates the returned statistics. However, it does not note the idempotentHint=false characteristic or any freshness/polling behavior an agent might care about for a congestion-monitoring 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 tight sentences with the return content front-loaded and the usage cue trailing. 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 no-param read tool whose annotations carry the safety profile, the description adequately covers the output metrics (compensating for the absent output schema). It is nearly complete, only missing any note on data freshness or whether the metrics are point-in-time.
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?
Zero parameters with 100% schema coverage, so the baseline of 4 applies. There is nothing for the description to clarify on the input side.
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 uses a specific verb+resource ('Returns queue statistics') and enumerates the exact metrics returned (pending swap count, outbound transaction count, internal queue size, scheduled outbound value). This lets an agent distinguish it from bare siblings, though it does not explicitly differentiate itself from the many other queue-related tools (get_outbound_queue, get_scheduled_queue, get_swap_queue).
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 provides one usage cue ('Use this to understand network congestion'), which gives context but no when-not guidance or alternatives. Given the cluster of sibling queue tools, an agent still has to infer which queue endpoint fits which scenario.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ragnarokARead-onlyInspect
Returns whether the chain is in Ragnarok (emergency shutdown mode). Ragnarok is triggered when the network needs to return all funds to users. A true value indicates the network is shutting down.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true, so safety is covered. The description adds real value beyond the annotations by explaining the underlying condition (network returning funds) and the operational meaning of a true value, though it leaves the return shape (bare boolean vs. object) and the significance of idempotentHint=false unstated.
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 answer. The final sentence partially restates the first, adding minor redundancy, but the whole block is otherwise tight and 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?
For a trivial, parameterless status check with no output schema, the description supplies the semantics an agent needs to interpret the result. It could be slightly more complete by stating the return type explicitly, but 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?
The tool takes no parameters, so there is nothing for the description to disambiguate; baseline for a zero-parameter tool is 4. No parameter-level gaps exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Returns whether the chain is in Ragnarok") and defines the state precisely as emergency shutdown mode, so an agent immediately knows what question this tool answers. It does not explicitly differentiate from siblings, but no sibling covers Ragnarok, so the risk of confusion is low.
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 Ragnarok is but never says when to call this tool, what it should be paired with (e.g. before prepare_swap or quote_swap), or when it can be ignored. An agent must infer the usage context entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_reference_memoARead-onlyInspect
Returns the memoless transaction memo for a given asset and reference number. Memoless transactions use the amount to encode the reference which maps to a pre-registered memo.
| Name | Required | Description | Default |
|---|---|---|---|
| asset | Yes | The asset (e.g. BTC.BTC) | |
| reference | Yes | The reference number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the safety annotations (readOnlyHint: true), the description provides deep technical behavioral context. It explains *how* the reference is stored and retrieved (encoded in the amount, mapped to a pre-registered memo), which is critical knowledge for an AI agent interacting with blockchain mechanics.
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 extremely concise. The first sentence states the function, and the second sentence immediately backs it up with the critical technical context necessary for the agent to understand the tool's domain, resulting in zero 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 lookup operation, the description is complete. It defines the expected input criteria (asset/reference) and clearly states what the output represents (the memo), providing all necessary operational context to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Since the input schema coverage is 100%, the schema already defines the parameters clearly. The description's primary function is explaining the transaction type and logic (memoless encoding), which provides moderate added semantic value but does not compensate for any schema gaps.
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 uses a specific verb ('Returns') and clearly defines the resource (the memoless transaction memo). It is highly specialized, immediately distinguishing it from similar tools like get_reference_memo_by_hash by requiring asset and reference number lookup.
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?
While it doesn't provide an explicit 'when/when-not' rule, it provides strong contextual guidance. By describing the mechanism ('Memoless transactions use the amount to encode the reference'), it implies that the tool is only relevant when operating within the memoless transaction framework, guiding the agent toward appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_reference_memo_by_hashBRead-onlyInspect
Returns the memoless transaction memo for a given reference hash. Use this to look up the registered memo for a memoless transaction.
| Name | Required | Description | Default |
|---|---|---|---|
| hash | Yes | The transaction hash |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safe-read nature is covered. The description adds that the memo is for a memoless transaction and that it is 'registered', but it does not explain the non-idempotent hint or what happens when no memo exists, so it only partially extends the structured behavioral data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loads the return behavior, but the second sentence largely restates the first ('look up the registered memo for a memoless transaction' vs 'Returns the memoless transaction memo'). One sentence would have sufficed, so there is some 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 one-parameter read tool with annotations covering the safety profile and no output schema, the description states what is returned and for which kind of transaction. It omits error/not-found behavior, but otherwise gives enough to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the single hash parameter is already documented as 'The transaction hash'. The description refers to it as a 'reference hash', which is a minor terminology variation but adds no format, constraint, or validation 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 ('Returns') and resource ('memoless transaction memo') and scopes it to a given reference hash. It is clear what the tool does, but it does not explicitly differentiate itself from siblings like get_reference_memo or check_reference_memo.
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 second sentence gives a usage context ('Use this to look up the registered memo for a memoless transaction'), which implies when to use it. However, it offers no exclusions or explicit alternatives among the many sibling tools, leaving the agent to infer the boundary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_rune_historyCRead-onlyInspect
Returns historical RUNE data including price over time intervals.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End timestamp (Unix seconds) | |
| from | No | Start timestamp (Unix seconds) | |
| count | No | Number of intervals to return | |
| interval | No | Time interval: 5min hour day week month quarter year |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=false, covering the basic safety profile. The description adds no further behavioral context, such as default time ranges, pagination limits, or how missing from/to parameters are handled.
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 single, front-loaded sentence with no wasted words. It is appropriately sized, though it is too sparse to earn a top score for structure.
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 historical data query with four optional parameters and no output schema, the description is incomplete. It does not explain return shape, default values, required vs optional behavior, or how interval and count interact, leaving an agent to infer invocation details.
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 including interval options and timestamp meanings. The description adds no semantics beyond what the schema provides, 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?
The description states a clear verb and resource: 'Returns historical RUNE data including price over time intervals.' It is understandable at a glance, but it does not distinguish this tool from the sibling get_rune_price_history, which appears to cover overlapping functionality.
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 no guidance on when to use this tool versus alternatives such as get_rune_price_history or other history tools. It provides no conditions, exclusions, or recommended contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_rune_poolARead-onlyInspect
Returns the RUNEPool state: protocol-owned liquidity, provider shares, reserve position, deposit limits, and pending deposits/withdrawals.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safe-read profile is established without the description. The description adds useful behavioral context by listing the components of the returned state, but says nothing about freshness, snapshot timing, or why idempotentHint is false for what appears to be a static state 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?
A single sentence, front-loaded with the verb and resource, followed by a compact enumeration of returned fields. No filler, no repetition of the tool name 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?
With no output schema, the description carries the burden of conveying what comes back, and it does so by naming the five state components. It stops short of clarifying the aggregate-vs-member scope relative to get_runepool_member, which is the one thing an agent could still get wrong.
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 tool takes zero parameters, so there is nothing for the description to disambiguate and the baseline of 4 applies. No parameter claims are made that could conflict with the empty 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 ('Returns') and resource ('RUNEPool state') and enumerates the concrete data returned: protocol-owned liquidity, provider shares, reserve position, deposit limits, pending deposits/withdrawals. It is clear what the tool does, but it never distinguishes itself from close siblings such as get_runepool_member or list_rune_providers, so an agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description is purely descriptive of output; it gives no when-to-use guidance, no prerequisites, and does not name an alternative such as get_runepool_member for per-provider detail. Usage is only weakly implied by the name and the aggregate nature of the fields.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_runepool_memberBRead-onlyInspect
Returns Midgard's analytics view of a RUNEPool member: deposit/withdraw history and current units.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | The member's THORChain address (thor1...) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so safety is covered; the description adds useful context by characterizing this as Midgard's analytics view (a derived/aggregated source rather than raw chain state) and naming the returned data. It does not explain why idempotentHint is false or whether the view is eventually consistent.
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 front-loaded sentence with zero filler; the source ('Midgard's analytics view') and the contents come before any elaboration, which is exactly the right ordering.
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 partially compensates by naming the returned fields (deposit/withdraw history, current units), and annotations cover the read-only safety profile. It is adequate for a one-parameter read, though a note on time-range or pagination behavior would close 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?
Schema coverage is 100% and the single address parameter is fully documented in the schema ('thor1...'), so the description adds no parameter detail. Baseline 3 is appropriate when the schema carries the parameter burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Returns') and resource ('Midgard's analytics view of a RUNEPool member') and enumerates the payload (deposit/withdraw history, current units). It does not, however, distinguish itself from adjacent siblings such as get_midgard_member or get_rune_provider, so an agent must infer which member view 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?
The description offers no when-to-use guidance, no prerequisites, and never names an alternative tool. The only routing signal is the tool name itself, which is not enough given the crowded set of member/rune-provider siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_rune_price_historyCRead-onlyInspect
Returns historical RUNE price data in USD over time intervals.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End timestamp (Unix seconds) | |
| from | No | Start timestamp (Unix seconds) | |
| count | No | Number of intervals to return | |
| interval | No | Time interval: 5min hour day week month quarter year |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=false, so the safety profile is covered. The description adds no further behavior: it doesn't explain what happens when optional params are omitted (default interval/window), whether results are paginated or bounded, or how the idempotent=false trait manifests for a read query.
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 front-loaded sentence with no filler. The trailing phrase 'over time intervals' is slightly redundant with the interval parameter, keeping it just short of 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?
With no output schema, no annotations covering return shape, and all four parameters optional, the description should at least explain the default window/interval behavior and roughly what comes back. It explains none of that, so an agent cannot predict the result of a bare call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents to/from/count/interval and the interval vocabulary, making 3 the baseline. The description contributes only the denomination (USD), which is a marginal addition over 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 (Returns) plus resource (historical RUNE price data) and denomination (USD), so the purpose is unambiguous. However, it does not distinguish itself from nearby siblings such as get_rune_history or get_oracle_price/get_oracle_prices, leaving the agent to infer which price source to use.
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 when-to-use guidance, no mention of alternatives, and no exclusions. Given the cluster of price/history siblings (get_rune_history, get_oracle_price, get_oracle_prices, get_tvl_history), the definition gives the agent nothing to route on.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_rune_providerBRead-onlyInspect
Returns one RUNEPool provider's position: deposited RUNE, units, and PnL.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | The provider's THORChain address (thor1...) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safe-read profile is covered. The description adds value by enumerating the returned position fields, which matters because there is no output schema, but it says nothing about behavior for an unknown/invalid address or about mutation of the underlying RUNEPool 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?
A single front-loaded sentence stating the resource and its returned fields, with zero filler. Nothing could be removed without losing 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 does the right thing by summarizing the return shape (deposited RUNE, units, PnL). It is nearly complete for a single-address getter, though it omits error behavior for unknown addresses and the denomination of the PnL figure.
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% (the address param is documented as a thor1... THORChain address), so the schema carries the parameter semantics. The description adds no format or validation detail beyond it, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Returns one RUNEPool provider's position') and enumerates the returned fields (deposited RUNE, units, PnL). The word 'one' implicitly contrasts with the list_rune_providers sibling, but it never names that sibling or disambiguates against get_runepool_member.
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, no prerequisites, and no routing guidance. The sibling set contains both get_runepool_member and list_rune_providers, and the description gives the agent nothing to choose between them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_scheduled_queueBRead-onlyInspect
Returns the scheduled outbound queue containing transactions waiting to be signed and broadcast. Each entry includes the destination chain, address, coin amount, gas rate, and associated memo. Transactions are scheduled based on outbound delay.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already disclose readOnlyHint=true and idempotentHint=false, so the safety profile is covered. The description adds useful context about queue entries and that scheduling is based on outbound delay, but it does not explain freshness, ordering, or why the operation is non-idempotent.
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 are front-loaded with the tool's purpose, then entry contents and scheduling basis. The text is efficient, with no obvious filler, though it 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 zero-parameter read-only tool with no output schema, the description is reasonably complete: it identifies the queue and summarizes the fields returned. The main missing context is how this queue relates to sibling queue tools, which is a usage-guidance gap rather than a return-value 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?
The tool has zero parameters and the schema is an empty object with full coverage, so there are no parameter semantics to document. The description appropriately does not invent parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it returns the scheduled outbound queue of transactions waiting to be signed and broadcast, and it lists the entry fields. It is clear what the tool does, but it does not explicitly distinguish this queue from sibling tools such as get_outbound_queue or get_queue.
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 no guidance on when to use this tool instead of get_outbound_queue, get_queue, or get_swap_queue. There are no prerequisites, exclusions, or selection criteria offered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stable_reserveARead-onlyInspect
Returns the Stable Reserve module status: RUNE balance, depeg tolerance, POL share, per-asset inventory with health flags and oracle prices, and active deployment swaps. Requires THORNode v3.20+; earlier networks answer 501 Not Implemented.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds meaningful context beyond annotations: the exact contents returned and the version-dependent 501 behavior on older networks. It does not disclose pagination or response-format constraints, but those are less relevant for a zero-parameter status endpoint.
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 primary purpose front-loaded and the compatibility caveat immediately after. Every clause conveys useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only status endpoint without an output schema, the description gives enough detail about the returned fields and the version-related failure mode for an agent to call it correctly and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there are no parameter semantics to explain and the baseline is 4. The description correctly focuses on output instead of inventing input details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Returns the Stable Reserve module status") and enumerates the fields returned, making the tool's output clear. It does not explicitly distinguish itself from the sibling get_stable_reserve_contributor, though the resource is distinct.
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 "module status" and the THORNode version requirement, but the description never says when to choose this versus get_stable_reserve_contributor or other reserve-related tools. The version note is useful but is a prerequisite rather than usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stable_reserve_contributorARead-onlyInspect
Returns a contributor's Stable Reserve credit for a given stable asset and address. Requires THORNode v3.20+; earlier networks answer 501 Not Implemented.
| Name | Required | Description | Default |
|---|---|---|---|
| asset | Yes | The stable asset (e.g. ETH.USDC-0XA0B8...) | |
| address | Yes | The contributor's L1 address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=false, so the description carries less burden. It still adds real value beyond them: an explicit version gate (THORNode v3.20+) and the concrete failure mode (501 Not Implemented on older networks), which directly informs error handling.
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 primary behavior leads and the version/error caveat follows. Nothing redundant and nothing that 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 read-only, two-parameter, no-output-schema tool whose annotations cover the safety profile, the description is nearly sufficient: it says what is returned, for which inputs, and what happens on unsupported networks. The remaining gap is disambiguation from get_stable_reserve and any hint of 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 coverage is 100%, so both parameters are already fully documented in the schema. The description only restates that the lookup needs a stable asset and an address, adding no format, casing, or normalization detail beyond the schema, which is the expected 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 and resource: it returns a contributor's Stable Reserve credit, scoped to a stable asset and address. That is materially clearer than a tautology and lets an agent match it to the Stable Reserve domain, but it never mentions the sibling get_stable_reserve, so the boundary between the two 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?
There is no when-to-use or when-not-to-use guidance, and no mention of the alternative get_stable_reserve. The version note reads as a prerequisite/behavioral caveat rather than usage routing, so an agent has no help choosing this tool over its sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_streaming_swapARead-onlyInspect
Returns details of a specific streaming swap by transaction hash, including progress (count/quantity), amounts swapped (in/out), and any failed sub-swaps.
| Name | Required | Description | Default |
|---|---|---|---|
| hash | Yes | The inbound transaction hash of the streaming swap |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds behavioral value by enumerating what the response contains (progress count/quantity, in/out amounts, failed sub-swaps), which goes beyond the annotations. It does not address why idempotentHint is false for a read, nor return format/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?
A single sentence that is front-loaded with the core purpose and then enumerates the result fields without filler. Efficient, though the trailing field list makes it 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?
There is no output schema, so the description must carry the return-value burden, and it partially does by naming progress, amounts, and failed sub-swaps. For a single-parameter read tool this is nearly sufficient, with only pagination/format details 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%, and the schema already documents the sole parameter as "the inbound transaction hash". The description's "by transaction hash" adds no syntax or format detail beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ("Returns details"), a specific resource ("streaming swap"), and the lookup key ("by transaction hash"). This distinguishes it implicitly from list_streaming_swaps, but the differentiator is only implied rather than named.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase "by transaction hash" implies the usage case (you already know the hash and want one swap's details), which is enough to separate it from the list variant. However, there is no explicit when-to-use guidance and no named alternative or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_swap_detailsARead-onlyInspect
Returns detailed information about a specific swap including its current state. Shows the full swap message with source/target assets, amounts, destination, affiliate info, and the swap's status and queue type. Use this to track the progress of a specific swap transaction.
| Name | Required | Description | Default |
|---|---|---|---|
| tx_id | Yes | The transaction ID of the swap to look up |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true, so the safety burden is light. The description goes further by disclosing the exact payload shape and the fact that it reports 'current state'/'status', which usefully explains why idempotentHint=false applies (the swap's status can change between identical calls). It stops short of mentioning any rate limits or staleness guarantees.
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 behavior and the returned fields, with no padding. Slight redundancy between 'detailed information ... current state' and the later 'status and queue type' restatement, but 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-parameter, read-only lookup with no output schema, the description compensates well by enumerating the returned fields. Nothing about calling it correctly is missing, though it could have distinguished itself from the adjacent tx/swap lookup 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?
Only one parameter (tx_id) with 100% schema description coverage, so the schema already carries the meaning. The description's 'of a specific swap' adds only marginal confirmation that tx_id identifies the swap; no format or format examples are provided. 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 ('Returns detailed information about a specific swap') and enumerates what is returned (assets, amounts, destination, affiliate, status, queue type). It contrasts implicitly with list-style siblings like get_swap_history, but never names an alternative, so sibling 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 final sentence gives a usage cue: 'Use this to track the progress of a specific swap transaction.' That is implied guidance rather than an explicit rule, and it offers no when-not condition or named alternative among the many swap/tx siblings (get_swap_history, get_tx_details, get_tx_status).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_swap_historyBRead-onlyInspect
Returns historical swap data including swap counts, volumes, fees, and average slip over time intervals.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End timestamp (Unix seconds) | |
| from | No | Start timestamp (Unix seconds) | |
| count | No | Number of intervals to return | |
| interval | No | Time interval: 5min hour day week month quarter year |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint already tells the agent this is a safe read operation, and the description adds useful context about the returned metrics and interval-based aggregation. However, it does not disclose defaults for the optional timestamps, interval semantics, or pagination/result-size 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?
The description is a single, front-loaded sentence that states what the tool returns. There is no repetitive or 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?
The description lists the key returned fields and the interval-based nature of the data, which is helpful because there is no output schema. Still, for a historical data tool with optional time bounds and no required parameters, it leaves gaps around defaults, interval behavior, and result-shaping details.
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 implies interval-based querying and adds no parameter-specific semantics 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?
The description clearly states a specific verb and resource: returns historical swap data. It also names the returned metrics (counts, volumes, fees, average slip) and time-interval aggregation. It does not explicitly differentiate itself from nearby siblings such as get_swap_details or get_limit_swaps_summary.
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 guidance on when to use this tool versus alternatives like get_swap_details or get_limit_swaps_summary. The description implies historical aggregation but gives no conditions, exclusions, or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_swapper_cloutBRead-onlyInspect
Returns an address's swapper clout: accumulated fee-based score that reduces outbound delays for trusted swappers.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | The swapper's address (any chain) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds genuine domain context the annotations lack: the score is fee-based and its behavioral effect is reduced outbound delays for trusted swappers. It still says nothing about whether the value is time-sensitive or how the score changes, which is relevant given idempotentHint=false.
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 return subject and followed immediately by the definition of the metric. No filler, no redundant 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 single-parameter read-only lookup with full schema description coverage and no output schema, the description is nearly sufficient: it tells the agent what is returned and what the number means. The only missing element is any hint about value volatility or freshness, which would matter for interpreting the score.
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 coverage ('The swapper's address (any chain)'), so the schema carries the full burden of explaining the input. The description adds no format, chain-specific, or validation detail beyond what the schema already states, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource ('an address's swapper clout') with an explicit retrieval verb, and even defines the metric as an 'accumulated fee-based score that reduces outbound delays.' That is far more than a restatement of the name. It does not reference any sibling, but no sibling in the list covers the same concept, so differentiation is not really required.
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 guidance on when to call this versus any alternative, no prerequisites, and no exclusions. The only usage signal is the implicit 'you need an address to look this up' from the schema, which is not stated in the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_swap_queueARead-onlyInspect
Returns the current swap queue containing pending swaps waiting to be executed. Each entry includes source/target assets, amounts, destination addresses, and swap state. Use this to monitor swap processing and identify stuck transactions.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, idempotentHint=false), so the description is not burdened with that. It adds value annotations cannot: the fact that the response is a live snapshot of pending work and enumerates the fields each entry carries (assets, amounts, destinations, state). Minor gaps remain around queue size, ordering, or freshness guarantees, but nothing contradicts the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: one for identity/scope, one for return shape, one for use case. The core definition is front-loaded and there is 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 input parameters and no output schema, the description carries the burden of describing the result set, and it does so by listing the entry fields. It is essentially complete for a zero-arg read tool; only secondary details like freshness, ordering, or queue size are omitted, which are unlikely to block 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?
The tool takes no parameters (0 params, no required fields), so per the baseline this dimension is scored 4. The description correctly implies the tool is unfiltered and returns the whole current queue, which matches the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns the current swap queue') and defines the contents as 'pending swaps waiting to be executed,' which distinguishes it semantically from the scheduled/outbound queues. However, with near-name-collision siblings like get_queue, get_scheduled_queue, and get_outbound_queue in the toolset, the description never explicitly names or contrasts against them, so the agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use this to monitor swap processing and identify stuck transactions' gives clear operational context for when the tool is relevant. It stops short of exclusions or explicit alternatives (e.g., scheduled vs outbound queues), so it is clear context without routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tcy_claimerBRead-onlyInspect
Returns TCY (ThorCoin Yeet) claimer information for a specific address. Takes the claimer's L1 address (e.g. 0x..., bc1..., ltc1...) as listed by list_tcy_claimers and returns the claims (one per asset). Use this to check an individual's TCY claims.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | The THORChain address to get TCY claimer info for (thor1...) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already establishes that this is a safe read operation, so the description does not need to restate that. The description adds useful behavioral detail by saying the result contains claims, one per asset. However, it introduces no information about rate limits, auth, or response shape beyond that, and the address-format mismatch weakens confidence in the stated 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?
The description is front-loaded, only three sentences, and each sentence mostly earns its place: purpose, address source, and return shape. The misleading address examples waste some space, but the structure 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?
There is no output schema, so the description needs to explain the return value, and it does say it returns claims one per asset. However, the contradictory address guidance leaves the single required parameter ambiguous, which is a critical completeness gap for a one-parameter lookup 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 defines the single address parameter. But the description conflicts with the schema: it says the address is an L1 address such as 0x..., bc1..., or ltc1..., while the schema says it is a THORChain address (thor1...). That inconsistency is likely to cause an agent to pass the wrong kind of address, so this is more than a minor omission.
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 and resource: it returns TCY claimer information for a specific address and says the result is claims, one per asset. It also names list_tcy_claimers as the source, which helps distinguish it from the list operation. It does not explicitly distinguish itself from get_tcy_staker, but the core purpose is clear.
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 a clear use case: checking an individual's TCY claims, and it points to list_tcy_claimers as where the address comes from. There are no explicit when-not conditions, but the intended usage context is understandable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tcy_distributionCRead-onlyInspect
Returns TCY distribution for an address.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Address to get TCY distribution for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=false, so the safety profile is covered by structured data. The description adds nothing beyond that – no mention of return format, whether distribution is a single value or a breakdown, pagination, or auth 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?
One short, front-loaded sentence with no filler. It is efficient, though its brevity is partly a symptom of under-specification rather than deliberate economy.
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 annotations covering safety, the minimum is met. But with no output schema, the description should clarify what a 'TCY distribution' actually contains, and it does not.
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 there is a single required parameter, so the schema fully documents it. The description restates 'for an address' without adding format, network, or validity constraints, which is the expected baseline 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 ('Returns TCY distribution') plus the scoping input ('for an address'), so the agent knows what the tool produces. However, it does not distinguish this from related siblings such as get_tcy_claimer, get_tcy_staker, or list_tcy_stakers.
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 the many sibling TCY tools, nor any prerequisite or exclusion. The agent must infer applicability from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tcy_stakerARead-onlyInspect
Returns TCY (ThorCoin Yeet) staker information for a specific address. Shows the staked amount for the given THORChain address. Use this to check an individual's TCY staking position.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | The THORChain address to get TCY staker info for (thor1...) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, covering the safety profile. The description adds that the tool shows the staked amount, a modest output detail, but does not describe error behavior (e.g., non-staker address) or full return 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 sentences, front-loaded with the core action. The second and third sentences add output detail and usage context, though there is slight redundancy between 'Returns staker information' and 'Use this to check...'.
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-only getter with no output schema, the description identifies the target address and the primary returned field (staked amount). It is largely complete, though it could note behavior for invalid or non-staker addresses.
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 address parameter, with its description stating the thor1... format. The tool description adds no syntax or format details beyond the schema, 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?
States a specific verb (Returns) and resource (TCY staker information) with a clear scope (for a specific address). It implicitly distinguishes from the list_tcy_stakers sibling by emphasizing individual scope, but does not name the 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?
Provides a direct use case: 'check an individual's TCY staking position.' This gives clear context for when to call it, but offers no exclusions or comparison to list_tcy_stakers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_thornameBRead-onlyInspect
Returns THORName registration information including owner, expiry, and registered chain addresses. THORNames are human-readable aliases for blockchain addresses.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The THORName to lookup (e.g. 't' or 'thorswap') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the agent knows this is a safe read. The description adds value by disclosing the shape of the payload (owner, expiry, chain addresses), which is real behavioral context beyond the annotations. It does not cover error behavior for unregistered names or explain the unusual idempotentHint=false, so it stays at a solid 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 short sentences, front-loaded with the return payload. The second sentence defining THORNames is mild but useful domain context for a non-obvious resource; no filler beyond that.
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 partially compensates by naming the returned fields. Combined with annotations that cover the safety profile and a fully documented single input, this is adequate — but the total absence of disambiguation against three near-identical siblings leaves a genuine gap for correct tool selection.
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 one parameter and 100% schema description coverage (including an example value 't' or 'thorswap'), the schema fully documents the input. The description mentions the fields returned, not the input semantics, so it adds nothing beyond the schema — 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 ('Returns THORName registration information') and enumerates the returned fields (owner, expiry, registered chain addresses), so the agent knows this is a full-record lookup rather than a single-field one. However, it never distinguishes itself from close siblings like lookup_thorname, get_thorname_owner, or reverse_lookup_thorname, leaving the selection decision ambiguous.
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 when-to-use guidance at all. With three overlapping siblings (lookup_thorname, get_thorname_owner, reverse_lookup_thorname) the description should say which one to pick, but it offers neither conditions nor exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_thorname_ownerCRead-onlyInspect
Returns THORNames owned by an address.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Owner address to get THORNames for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=false, so safety is partly covered, but the description adds nothing on top: it does not explain what is returned (single name vs. list), whether an unregistered address yields an empty result, or why the operation is non-idempotent. For a one-line description this is a minimal contribution.
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 short sentence, front-loaded with the verb and resource, with zero filler. It is efficient, though it is arguably too terse to carry much 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 simple single-parameter read tool with full schema coverage and no output schema, the description is minimally adequate. It leaves the return shape (list of names? empty on no match?) and its relationship to the other THORName lookup tools unstated, which an agent would need in order to choose and interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single 'address' parameter is fully documented in the schema as 'Owner address to get THORNames for'. The description merely restates the same relationship, adding no format or validation 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 ('Returns THORNames owned by an address'), which is clear on its own. However, it gives no differentiation from the closely related siblings get_thorname, lookup_thorname, and especially reverse_lookup_thorname, so an agent must guess which of these address-to-name tools to pick.
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 guidance on when to use this tool versus the other THORName siblings, and no prerequisites or exclusions are stated. The 'owned by an address' phrasing hints at a reverse direction but never contrasts it with reverse_lookup_thorname.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trade_accountBRead-onlyInspect
Returns all trade account positions for a specific address. Each account includes the asset, units, owner, and last activity heights.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | The address to lookup trade accounts for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safe-read nature is known; the description usefully adds the returned fields (asset, units, owner, last activity heights). It does not address the unusual idempotentHint=false, pagination, or any limits on how many accounts are returned, so it adds only moderate value.
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, no filler, with the core behavior front-loaded and the return payload described second. 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, so the description's enumeration of returned fields is genuinely needed and partially compensates. It is nearly complete for a simple one-param read, with the only real gap being sibling disambiguation and pagination behavior.
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 a single parameter at 100% schema description coverage, the schema already fully documents 'address'. The description merely restates that the lookup is address-scoped and adds no format, normalization, or validation detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns all trade account positions') scoped to a specific address, so the agent knows exactly what is fetched. However, it never distinguishes itself from close siblings like list_trade_accounts or get_trade_unit, leaving the plural-vs-single distinction 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 phrase 'for a specific address' hints at address-scoped lookup, but there is no explicit when-to-use statement, no mention of when to prefer list_trade_accounts, and no prerequisites. The agent gets no routing guidance beyond the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trade_unitBRead-onlyInspect
Returns trade unit information for a specific asset. Trade units represent the total units and depth of a trade asset pool.
| Name | Required | Description | Default |
|---|---|---|---|
| asset | Yes | The trade asset to lookup (e.g. 'BTC~BTC' or 'ETH~ETH') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=false, so the safety profile is covered. The description adds useful domain context (trade units = total units and depth of a pool) but says nothing about return shape, size, or why a read operation is flagged non-idempotent. Modest added value against a lower bar.
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; purpose is front-loaded and the domain gloss follows. Efficient, though it could have spent one of those sentences on when-to-use instead.
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?
Adequate for a one-parameter read tool with no output schema: purpose and the meaning of 'trade unit' are covered. Gaps remain on usage routing versus list_trade_units and on what the response contains, which the absence of an output schema means the description could have addressed.
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 itself documents the 'asset' parameter with concrete examples ('BTC~BTC', 'ETH~ETH'). The description adds nothing 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+resource ('Returns trade unit information for a specific asset') and adds a domain gloss explaining what a trade unit is. The singular 'specific asset' implicitly sets it apart from the plural sibling list_trade_units, but the differentiation is not made explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use, no prerequisites, and no named alternatives. The agent is left to infer from 'for a specific asset' that this is a single-asset lookup and that list_trade_units covers enumeration, but that routing logic is never stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tss_metricsBRead-onlyInspect
Returns TSS keygen and keysign timing metrics across the validator set.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered and the lower bar applies. The description adds the aggregation scope ('across the validator set'), which is genuinely useful, but says nothing about the return shape, whether the data is windowed, or how large the response may be. Note the readOnly/idempotentHint=false pairing in the annotations is internally odd, but the description does not contradict it.
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 front-loaded sentence with the verb first and no filler, caveats, or redundant restatement of the name. Nothing could be removed without losing content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and no output schema, the description only needs to convey what comes back, and it does so at a high level. However, for a metrics endpoint it leaves open whether results are per-validator rows or a single aggregate, and whether there is a default time window, which an agent would want to know before calling.
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 tool takes zero parameters (empty schema, additionalProperties=false), so there is nothing for the description to disambiguate. Baseline 4 applies; no parameter meaning is missing.
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 (TSS keygen and keysign timing metrics) and a clear scope (across the validator set), using the verb 'Returns'. It is distinguishable in spirit from the per-validator siblings get_keygen, get_keysign, and get_keygen_metric, but it never names them explicitly, 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?
There is no when-to-use guidance, no conditions, and no mention of the closely related siblings (get_keygen, get_keygen_metric, get_keysign). An agent must guess whether this aggregate view or the per-key tools is the right choice. The absence of any routing language is a clear gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tvl_historyBRead-onlyInspect
Returns historical Total Value Locked (TVL) data including pooled value, bonded value, and total locked value over time intervals.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End timestamp (Unix seconds) | |
| from | No | Start timestamp (Unix seconds) | |
| count | No | Number of intervals to return | |
| interval | No | Time interval: 5min hour day week month quarter year |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds value by naming the data returned, but it says nothing about default behavior when from/to are omitted, interval defaults, or the fact that idempotentHint=false is declared. Useful 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?
A single, well-formed sentence that front-loads the resource and immediately lists the returned fields. No wasted words, though it is slightly dense with parenthetical expansion of TVL.
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 return fields. However, for a tool with all-optional parameters and no required inputs, it omits any explanation of default ranges, interval/count defaults, or result ordering, which an agent would need 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 description coverage is 100%, with each of the four parameters documented in the schema itself (timestamps, count, interval). The description adds no syntax or format detail beyond that, 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 and resource ('Returns historical Total Value Locked (TVL) data') and enumerates the components returned (pooled value, bonded value, total locked value), so an agent knows exactly what this fetches. It does not, however, differentiate itself from the many sibling history tools such as get_liquidity_history or get_rune_history, leaving the agent to infer which history endpoint is appropriate.
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 when-to-use guidance, no exclusions, and no mention of alternatives, despite a crowded set of similarly named *_history siblings. The agent gets no signal about which history tool to pick or what conditions favor this one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_txBRead-onlyInspect
Returns transaction details for a given hash including observed transaction data, status, and processing stages.
| Name | Required | Description | Default |
|---|---|---|---|
| hash | Yes | The transaction hash (inbound or outbound) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already mark this as a read-only operation, and the description consistently adds that it returns observed transaction data, status, and processing stages. It does not add deeper behavioral context such as auth requirements, rate limits, or why idempotentHint is false, but it does provide some useful return-shape information beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence that states the operation and the main return categories with no wasted wording. It is appropriately sized for a simple get-by-hash 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?
Input schema and annotations are clear, and the description broadly covers return contents. However, given the large family of overlapping transaction-related sibling tools and no output schema, the description does not provide enough differentiation for an agent to know when this specific tool is the right choice.
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 description already defines it fully as the transaction hash, including inbound or outbound. The tool description adds no syntax, format, or semantic detail beyond the schema, so the baseline of 3 applies when schema coverage is effectively complete.
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 clear verb and resource: returns transaction details for a given hash, including observed data, status, and processing stages. However, it does not distinguish this tool from siblings such as get_tx_details, get_tx_stages, get_tx_status, get_cometbft_tx, or get_cosmos_tx.
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 guidance on when to use this tool instead of related sibling tools that also retrieve transaction information. The description gives no exclusions, prerequisites, or alternative-selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tx_detailsARead-onlyInspect
Returns comprehensive transaction details including observed transactions, actions taken, outbound transactions, consensus and finalized heights, and whether the vault was updated or the transaction reverted. Use this for deep transaction analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| hash | Yes | The transaction hash (inbound or outbound) to get detailed information for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint and idempotentHint=false; the description adds real behavioral color by disclosing that the response covers consensus/finalized heights and whether the vault was updated or the transaction reverted. It does not explain why the operation is non-idempotent (e.g., heights advancing as the tx finalizes), which is the one 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 sentences, front-loaded with the return contents and closed with the usage cue; no filler. The field enumeration is long but each item earns its place by telling the agent what it can extract.
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 reasonably by listing the key returned fields. It lacks sibling routing and any note on when results stabilize (relevant given idempotentHint=false), but for a single-required-param read tool it is close to 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?
One parameter with 100% schema description coverage, so the schema already carries the meaning ('transaction hash (inbound or outbound)'). The description adds nothing about format or validation, 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 ('Returns comprehensive transaction details') and enumerates the payload contents (observed txs, actions, outbound txs, heights, vault updated vs. reverted). It is clear what the tool does, but it never distinguishes itself from close siblings like get_tx, get_tx_status, get_tx_stages, or get_cometbft_tx.
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 this for deep transaction analysis' implies a context but names no alternatives and gives no exclusion criteria. An agent facing get_tx, get_tx_status and get_tx_stages alongside this tool has no explicit routing rule for when the deep variant is warranted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tx_stagesARead-onlyInspect
Returns detailed processing stages of an inbound transaction including observation counts, confirmation status, swap status (with streaming progress if applicable), outbound delay, and signing status.
| Name | Required | Description | Default |
|---|---|---|---|
| hash | Yes | The inbound transaction hash to check processing stages for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and idempotentHint=false, so safety is covered and the description is consistent with them. The description adds genuine value beyond the annotations by enumerating the specific stage data returned (observation counts, confirmation, swap status with streaming progress, outbound delay, signing status), though it omits anything about auth needs, latency, or how stage data is structured.
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 front-loaded sentence with no preamble or filler; the core action comes first and the enumerated fields follow. The enumeration is slightly dense but every item earns its place by describing the return 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?
With no output schema, the description bears the burden of describing return values and does so by listing the stage fields. For a one-parameter read-only tool this is largely sufficient, though it could say more about how to interpret stage states or what an incomplete processing chain looks like.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single hash parameter is documented in the schema. The description implies the hash is the inbound transaction hash but adds no syntax, format, or validation detail beyond the schema, so this sits at the baseline for full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Returns) and resource (detailed processing stages of an inbound transaction), and enumerates the stage details it surfaces. It is clearly a stage-reporting tool, but it never distinguishes itself from close siblings like get_tx, get_tx_details, or get_tx_status, so an agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of when this beats get_tx_status or get_tx_details, and no prerequisites or exclusions stated. The agent gets the what but not the when.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tx_statusARead-onlyInspect
Returns comprehensive transaction status including processing stages, planned outbound transactions, and completed outbound transactions. Use this to track swap progress.
| Name | Required | Description | Default |
|---|---|---|---|
| hash | Yes | The inbound transaction hash to check status for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so safety is covered. The description adds useful return-content context (stages, planned vs completed outbound transactions), but says nothing about freshness, whether the status is final, or error behavior for unknown hashes. Note idempotentHint=false sits oddly with a read-only status lookup, though the description does not contradict it.
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 returned content before the usage hint. "Comprehensive" is mild filler but the enumeration that follows earns its space. Nothing is redundant enough to penalize further.
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 describing returns, and it does list the three main components (stages, planned outbound, completed outbound). It falls short of explaining what the stages are or how a caller distinguishes terminal from in-progress states, which would be valuable for a status-tracking 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% for the single hash parameter, so the schema already documents it fully. The description's only marginal addition is framing the hash as swap-related via "track swap progress"; it adds no format or constraint detail. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (Returns) and resource (transaction status) and enumerates the three components returned: processing stages, planned outbound transactions, and completed outbound transactions. It partially distinguishes itself from siblings like get_tx_stages and get_tx by emphasizing outbound/swap tracking, 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?
"Use this to track swap progress" gives an implied usage context, but there is no when-not guidance and no alternatives named despite close siblings (get_tx, get_tx_details, get_tx_stages, get_swap_details). The agent must infer which of these several transaction tools to pick.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_upgrade_proposalBRead-onlyInspect
Returns a specific upgrade proposal by name including target block height and upgrade information.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The upgrade proposal name (e.g. 'v3.137.0') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already establishes that this is a safe read operation. The description adds that the response includes target block height and upgrade information, which is useful return context, but it does not explain error behavior when a name is not found or why idempotentHint is false for a lookup.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single front-loaded sentence with no wasted text, efficiently stating the action, resource, lookup key, and return contents.
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 lookup with one fully documented required parameter and annotations covering safety, this is largely complete. The return shape is only broadly described as 'target block height and upgrade information,' which leaves some ambiguity since there is 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 single 'name' parameter is already fully documented with an example. The description only reinforces that the lookup is by name; it adds no syntax or format detail beyond the schema 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?
The description states a specific verb ('Returns') and resource ('a specific upgrade proposal') with the scoping condition 'by name,' which clearly indicates a single-record lookup rather than a list. It does not explicitly name or contrast with siblings such as list_upgrade_proposals, so it falls short of the top score for 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?
It implies the tool is used when you know a proposal name, but there is no explicit guidance on when to use this versus list_upgrade_proposals or get_upgrade_votes, and no exclusions or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_upgrade_votesARead-onlyInspect
Returns all node votes for a specific upgrade proposal. Each vote shows the node address and whether they approved. Use this to track upgrade consensus.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The upgrade proposal name to get votes for (e.g. 'v3.137.0') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=false, so safety is covered. The description adds value beyond annotations by disclosing the return shape ('node address and whether they approved'), which is genuinely useful context for interpreting 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?
Three short sentences, front-loaded with the core action and free of filler. The closing 'track upgrade consensus' sentence is mildly redundant with the opening but still earns some place as intent framing.
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 covers what it returns and why. Nothing critical is missing, though it stops short of clarifying its relationship to the sibling vote/proposal 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 description coverage is 100%, so the 'name' parameter and its example ('v3.137.0') are fully documented in the schema. The description only restates 'for a specific upgrade proposal' without adding format or constraint detail, 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 ('Returns all node votes') scoped to 'a specific upgrade proposal', which is clear. It doesn't explicitly distinguish itself from the sibling get_votes or get_upgrade_proposal, so an agent must infer the difference, but the upgrade-proposal scope is concrete enough.
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 this to track upgrade consensus' is a purpose statement rather than genuine when-to-use guidance. There is no mention of when-not to use it or how it relates to get_votes / get_upgrade_proposal, leaving routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_vaultBRead-onlyInspect
Returns a specific vault by its public key including coin balances, status, membership, routers, and chain addresses.
| Name | Required | Description | Default |
|---|---|---|---|
| pubkey | Yes | The vault public key (thorpub1...) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so safety is covered. The description adds real value by disclosing what the vault payload contains, but does not explain the unusual idempotentHint=false signal, failure behavior, or any auth requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact sentence, front-loaded with the action and resource, with the returned fields listed as a tight clause. 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 usefully enumerates the returned vault contents, which is exactly the burden it must carry here. It stops short of noting lookup-failure behavior or how routers/chain addresses are structured, but an agent can call it confidently.
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 pubkey parameter is fully documented with its thorpub1 prefix. The description only restates 'by its public key', adding 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?
The description states a precise verb and resource ('Returns a specific vault by its public key') and even enumerates the returned facets (coin balances, status, membership, routers, chain addresses). It implicitly contrasts with sibling list tools such as list_asgard_vaults, but never names an alternative, 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?
There is no statement of when to use this tool versus get_vault_pubkeys, get_vault_solvency, or list_asgard_vaults, nor any prerequisite or error condition (e.g., unknown pubkey). The agent must infer usage purely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_vault_pubkeysARead-onlyInspect
Returns all vault public keys organized by type: Asgard (active network vaults), Yggdrasil (node vaults), and inactive vaults. Includes router addresses and membership information.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=false, so the safety profile is carried by structured data. The description adds useful return-shape context (router addresses, membership info) but discloses nothing beyond content—no note on scale, freshness, or why a read would be non-idempotent.
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 object of the call front-loaded and the type breakdown following immediately. No filler or restatement of the name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 reasonably, naming the key categories plus router addresses and membership info. It is nearly complete for a zero-argument read tool, though the non-idempotent read hint is left 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 tool takes zero parameters, so the schema baseline of 4 applies; there are no parameters whose semantics the description would need to elaborate.
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 ("Returns all vault public keys") and enumerates the three organizing categories (Asgard, Yggdrasil, inactive), which lets an agent distinguish it from single-vault siblings like get_vault or get_keysign_pubkey. It stops short of explicitly naming which sibling to prefer, so it is clear but not fully 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?
The description explains content but gives no when-to-use guidance, no conditions, and no reference to alternatives such as get_vault, get_vault_solvency, or list_asgard_vaults. An agent must infer the routing decision entirely on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_vault_solvencyARead-onlyInspect
Returns aggregate vault solvency showing over-solvent or under-solvent amounts per asset. Positive amounts indicate over-solvency (more assets than expected), negative amounts indicate under-solvency. Critical for monitoring vault health.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish this as a safe read (readOnlyHint=true), so the description only needs to add context — and it does, by defining the sign convention: positive means over-solvent, negative means under-solvent. That value-interpretation is exactly the kind of behavioral detail an agent cannot derive from the empty schema. It omits aggregation scope and any freshness/timing caveats, 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?
Three short sentences, front-loaded with the core behavior, followed by the sign convention and a one-line usage rationale. 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?
With no parameters and no output schema, the description carries the burden for both behavior and return-value interpretation, and it handles the critical piece (what positive/negative amounts mean). It stops short of stating the scope of aggregation (all vaults vs. a subset) or which assets appear, which would make it fully self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema declares zero parameters, so the baseline of 4 applies. There is nothing for the description to clarify about inputs, and it correctly does not invent any.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns aggregate vault solvency') plus the shape of the result ('per asset'), which clearly separates it from siblings like get_vault, get_vault_pubkeys, and get_tvl_history. An agent can tell what it gets 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?
'Critical for monitoring vault health' implies the usage context but never states when to prefer this over alternatives such as get_vault or get_tvl_history, and offers no exclusions or prerequisites. Usage is inferable but not guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_versionARead-onlyInspect
Returns network version information including current version, next required version for nodes, and the querier version.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds the shape of the returned data, which is useful given no output schema exists, but it says nothing about the odd idempotentHint=false on a zero-argument getter, nor about caching, freshness, or cost of the call.
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 front-loaded sentence with no filler; the highest-value information (what it returns) leads the sentence and 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 parameterless read-only getter with no output schema, the description does the essential job of enumerating the return fields. It is slightly thin on what 'querier version' means and on freshness, but nothing critical to invoking the 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?
The tool takes zero parameters, so the baseline of 4 applies. Schema coverage is 100% and there is nothing parameter-related left to explain.
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 ('Returns') and resource ('network version information') and enumerates the payload (current version, next required node version, querier version), so the agent knows exactly what data comes back. It does not, however, distinguish itself from adjacent informational siblings such as get_constants or get_network_info, which an agent could reasonably confuse for version 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?
There is no guidance on when to call this versus alternatives; the description is purely descriptive of output. With siblings like get_network_info, get_constants, and get_cosmos_node_info in the same family, a routing hint would have been valuable and is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_votesARead-onlyInspect
Returns governance votes including parameter proposals and node votes.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=false, so the safety profile is largely covered. The description adds useful scope by naming included vote types, but it does not disclose pagination, freshness, or return-shape behavior 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?
The description is a single front-loaded sentence with no wasted words. It states the return content immediately without unnecessary preamble.
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 read-only tool, the description is largely complete: annotations cover safety, and the sentence names the included vote categories. The remaining minor gap is that output structure is not described, though no output schema exists to carry that burden.
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 tool takes zero parameters, so there is no parameter semantics burden and the baseline is 4. The description does not need to explain inputs because none exist.
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 uses a specific verb and resource: 'Returns governance votes,' and adds scope with 'including parameter proposals and node votes.' It is clear what the tool does, but it does not explicitly distinguish itself from siblings like get_upgrade_votes or list_mimir_node_votes.
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 guidance on when to use this tool versus alternatives, no exclusions, and no mention of related sibling tools such as get_upgrade_votes or list_mimir_node_votes. The agent must infer usage context entirely from the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_asgard_vaultsARead-onlyInspect
Returns current Asgard vaults with their pubkeys, coin balances, status, membership, and chain addresses. Asgard vaults are the main network vaults that hold user funds. Supports pagination with limit and offset parameters.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results to return (default 100, max 1000) | |
| offset | No | Number of results to skip for pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only safety, but with no output schema the description's list of returned fields (pubkeys, balances, status, membership, chain addresses) and the 'current' qualifier meaningfully fill the gap. It still omits auth requirements, ordering, and whether inactive vaults are excluded, keeping it below 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 sentences, front-loaded with the purpose and returned fields. The resource definition earns its place, though the final pagination sentence is largely redundant with the schema and could be trimmed.
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 no output schema, the description covers purpose, returned fields, resource definition, and pagination. Missing details like default ordering or whether all vault states are included are minor but prevent a perfect score.
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 fully documented in the schema with defaults and max values. The description's 'supports pagination with limit and offset' merely restates the schema, so 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 and resource ('Returns current Asgard vaults') and enumerates the returned fields, so an agent knows exactly what data this yields. It does not distinguish itself from sibling vault tools like get_vault, get_vault_pubkeys, or list_derived_pools, so it falls short of the sibling-aware 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?
There is no when-to-use or when-not-to-use guidance, and no alternative is named despite several overlapping vault tools (get_vault, get_vault_pubkeys, get_vault_solvency). The definition of Asgard vaults is descriptive background rather than routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_derived_poolsARead-onlyInspect
Lists all derived (virtual) pools with their depths and status.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=false, so the safety profile is clear. The description adds that the response includes depths and status, which is useful return-content context, but it does not cover pagination, ordering, or freshness.
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 front-loaded sentence with no wasted words. It states the resource and the key returned fields efficiently.
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, read-only list tool with no output schema, the description is nearly complete: it says what is listed and which attributes are returned. It could be stronger by clarifying return structure or whether pagination applies, but nothing critical is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the baseline is 4. The description correctly does not invent parameter semantics, and the empty schema is self-explanatory.
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 ('Lists') and resource ('derived (virtual) pools') and adds the returned fields ('depths and status'). However, it does not explicitly differentiate from siblings like list_pools or get_derived_pool, so an agent must infer the distinction from the resource subtype.
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 no when-to-use guidance, no alternatives, and no exclusions. It simply states what the tool does, leaving the agent to infer that it is for listing all derived pools rather than using get_derived_pool for a single pool or list_pools for all pools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_invariantsARead-onlyInspect
Returns the list of available protocol invariants that can be checked. Invariants are consistency checks that verify the protocol's internal state is valid. Common invariants include 'asgard', 'bond', 'pools', 'thorchain', etc.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and idempotentHint=false, so the safety profile is already covered. The description adds useful domain context by defining invariants and listing common examples, but it does not disclose return format, ordering, or whether the list is static or dynamic.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and then adds definition and examples. It is appropriately sized for a simple zero-parameter list tool, though the definitional sentence is slightly more than strictly necessary for invocation.
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 endpoint with no parameters and no output schema, the description is largely complete: it says what is returned and gives example invariant names. It could still mention whether the list is exhaustive or whether it should be paired with get_invariant, but the annotations already cover the safety 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?
The tool takes zero parameters and the schema has no properties, so there are no parameter semantics to document. Per the rubric, zero parameters gives a baseline of 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: returns the list of available protocol invariants. It defines what invariants are and gives examples, making the output clear. However, it does not explicitly distinguish itself from the sibling get_invariant tool, which likely retrieves a single invariant.
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 phrase 'available protocol invariants that can be checked' implies this tool is used to discover invariant names, probably before calling get_invariant. But there is no explicit when-to-use guidance, no alternatives named, and no when-not-to-use condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_liquidity_providersBRead-onlyInspect
Returns all liquidity providers for a specific pool. Each entry includes the LP's units, pending amounts, deposit values, and addresses. Use this to analyze pool participation.
| Name | Required | Description | Default |
|---|---|---|---|
| asset | Yes | The pool asset (e.g. 'BTC.BTC' or 'ETH.ETH') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds value by enumerating return fields (units, pending amounts, deposit values, addresses), but it does not explain the idempotentHint=false declaration, pagination, or completeness guarantees for a list call.
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 behavior and the return shape. The closing 'Use this to analyze pool participation' is the weakest sentence but is not verbose enough to harm readability.
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 naming the fields each entry contains. The single required parameter is covered and the read-only nature is declared, leaving only minor gaps around result size/pagination and sibling routing.
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 one parameter at 100% schema coverage, the schema already documents 'asset' with an example format. The description's 'for a specific pool' merely echoes that, adding 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 ('Returns all liquidity providers') and scopes it ('for a specific pool'), so the agent knows exactly what it retrieves. It does not explicitly differentiate itself from adjacent siblings like list_rune_providers or get_lp_position, 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?
'Use this to analyze pool participation' is a vague purpose statement rather than actionable guidance. There is no indication of when to prefer this over get_lp_position, list_rune_providers, or get_midgard_member, and no exclusions or prerequisites are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_mimir_node_votesARead-onlyInspect
Returns all node operator votes on mimir settings. Each vote shows the mimir key, the voted value, and the node address that cast the vote. Use this to track node consensus on protocol parameter changes.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds the payload shape (mimir key, voted value, node address) but says nothing about ordering, completeness, or why idempotentHint is false for a read-only listing.
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 followed by payload detail and purpose. No filler, though the final usage sentence is somewhat redundant with the first.
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 input parameters and no output schema, the description usefully enumerates the returned fields so an agent knows what a vote record contains. It is close to complete for such a simple read-only listing 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?
The tool takes zero parameters, so there is nothing for the description to clarify; the baseline of 4 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: returning node operator votes on mimir settings. It is clearly more specific than generic siblings like get_mimir or get_votes, though it never names those siblings to sharpen 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?
The closing sentence gives an implied purpose ('track node consensus on protocol parameter changes') but offers no when-to-use vs. alternative guidance and no exclusions relative to get_votes, get_mimir, or get_mimir_node.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_nodesBRead-onlyInspect
Returns all registered validator nodes with their status, bond amounts, and operational information. Each bond provider may carry a Bond Yield configuration (bps share of rewards paid out automatically and its payout_target); the fields are absent on nodes without one. Supports pagination with limit and offset parameters.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results to return (default 100, max 1000) | |
| offset | No | Number of results to skip for pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so safety is covered. The description adds useful output-shape context — that a Bond Yield configuration may or may not be present and its fields are absent on nodes without one — but discloses nothing about auth needs, rate limits, or scope restrictions.
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 purpose before the Bond Yield nuance and pagination note. Nothing is wasted, though the middle sentence is somewhat dense relative to its marginal value.
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 compensates by naming the returned fields (status, bond amounts, operational info, Bond Yield config). Adequate for a paginated list tool, though it omits scope or auth caveats an agent might want.
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 limit (default 100, max 1000) and offset. The description merely restates that pagination is supported without adding any syntax or constraint beyond what the schema provides, 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 — 'Returns all registered validator nodes' — and enumerates the data returned (status, bond amounts, operational info). The 'list' framing implicitly distinguishes it from the singular sibling get_node, but it never explicitly names a sibling such as get_midgard_nodes or get_bonds.
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 only states what the tool returns and that it supports pagination. It gives no when-to-use guidance, no condition for choosing it over get_node, get_midgard_nodes, or get_bonds, and no exclusions. Usage must be inferred from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_poolsARead-onlyInspect
Returns all active liquidity pools on THORChain with their balances, units, and status. Supports pagination with limit and offset parameters.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results to return (default 100, max 1000) | |
| offset | No | Number of results to skip for pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true, so the safety profile is covered, and the description adds the pagination mechanism and the shape of returned data (balances, units, status). It does not disclose rate limits, default sort order, or whether inactive pools are excluded from other endpoints.
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 primary purpose and no filler. The second sentence is slightly redundant given the schema already documents both parameters.
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 read-only list tool with a fully documented schema and no output schema, the description covers purpose, scope, and returned fields adequately. Only the absence of alternative-selection guidance holds it below 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 description coverage is 100%, with defaults and max documented in the schema itself; the description merely restates that limit and offset exist. Baseline 3 for a fully documented schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (returns) plus resource (all active liquidity pools on THORChain) and enumerates returned content (balances, units, status). The 'all active' scope distinguishes it from the singular get_pool and from list_derived_pools.
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 indication of when to use this instead of get_pool, get_known_pools, or list_derived_pools, and no prerequisites or filtering conditions stated. Only pagination mechanics are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_pool_slipsBRead-onlyInspect
Returns pool slip information for all Layer 1 pools. Pool slip measures trading activity and depth pressure. Shows current slip, rollup counts, and long-term rollup medians used for fee calculations and pool health monitoring.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a safe read (readOnlyHint=true), so the safety profile is covered. The description adds what the response contains (current slip, rollup counts, long-term median rollups), which is useful given no output schema, but it discloses no pagination, format, 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 sentences, front-loaded with the verb and resource, then scope, then definitional context. The third sentence earns its place by naming the returned fields, though 'Pool slip measures trading activity and depth pressure' is somewhat ancillary.
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 parameterless read-only list with no output schema, the description covers scope and return content adequately. The main gap is that 'Layer 1 pools' and the result format go undefined, but the overall coverage is 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?
The tool takes zero parameters, so per the rubric the baseline is 4. Schema coverage is 100% and there are no arguments whose semantics need explaining.
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 clear verb ('Returns'), resource ('pool slip information'), and scope ('all Layer 1 pools'), which implicitly distinguishes it from the singular sibling get_pool_slip. It also defines what pool slip measures. Sibling differentiation is present but not 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?
There is no explicit when-to-use or when-not guidance, and no named alternative (e.g. get_pool_slip for a single pool). The mention of 'fee calculations and pool health monitoring' hints at a use context but does not route the agent between this tool and its siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_rune_providersARead-onlyInspect
Lists all RUNEPool providers with their deposited RUNE and units.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already tells the agent this is a safe read, so the safety burden is covered. The description adds what the listing contains (deposited RUNE and units) but says nothing about ordering, pagination, or why idempotentHint=false on a read-only call – a mildly useful addendum rather than rich behavioral context.
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 short sentence, front-loaded with the verb and resource, and every clause earns its place by naming the returned data.
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 no parameters, the description carries the return-value burden and does sketch the payload (providers with RUNE and units). For a trivial zero-arg lister this is nearly sufficient, missing only ordering or pagination notes.
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 tool takes zero parameters, so there is nothing for the description to disambiguate; the schema surface is empty and 100% covered. Baseline of 4 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 (Lists) and resource (RUNEPool providers) and even names the returned fields (deposited RUNE and units). It is clearly distinct from the singular get_rune_provider and get_runepool_member, though it never explicitly contrasts itself with 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?
Usage is only implied by the word 'Lists all' – an agent can infer this is the enumeration counterpart to the single-provider getters, but the description gives no explicit when-to-use, prerequisites, or alternative to prefer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_streaming_swapsARead-onlyInspect
Returns all active streaming swaps. Streaming swaps split large trades into smaller chunks executed over multiple blocks to minimize slippage. Supports pagination with limit and offset parameters.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results to return (default 100, max 1000) | |
| offset | No | Number of results to skip for pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=false, so the safety profile is covered. The description adds a domain explanation of what streaming swaps are and notes pagination support, which is mildly useful context, but it omits rate limits, ordering, and result-shape 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 sentences that front-load the operation, then the domain rationale, then pagination. The middle definitional sentence is somewhat tangential but aids selection; minimal waste overall.
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 no output schema, the definition covers purpose, domain context, and pagination. It could route explicitly to get_streaming_swap, but 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 coverage is 100% and both parameters (limit, offset) are fully documented with defaults and max in the schema. The description merely repeats that pagination is supported via limit and offset, adding no format or interaction detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns all active streaming swaps') with a scope qualifier ('all active') that sets it apart from the singular get_streaming_swap sibling. It never names the sibling explicitly, so the distinction must be inferred rather than read.
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 'all active' versus the singular get_streaming_swap, but the description never says when to use this rather than that, nor any prerequisites. No explicit when/when-not or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tcy_claimersARead-onlyInspect
Returns all TCY (ThorCoin Yeet) claimers. Shows summary information for all addresses that have claimed in the TCY program.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=false, so safety profile is covered. The description adds that it returns 'summary information for all addresses,' which clarifies scope and granularity beyond annotations, but omits pagination, auth, or rate-limit context.
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 concise sentences, front-loaded with the return scope. Every sentence 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 zero-parameter list tool with annotations covering safety, the description adequately conveys what is returned ('summary information'). No output schema exists, but the summary-level detail is sufficient to set expectations for a simple read operation.
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 tool has zero parameters and schema coverage is 100%, so no parameter explanation is needed. The baseline of 4 applies per rubric for zero-param tools.
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 ('Returns all') and resource ('TCY claimers'), expanding the acronym for clarity. It distinguishes scope ('all addresses') from the single-entity sibling get_tcy_claimer, though it does not explicitly name 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?
The description is purely declarative and offers no when-to-use guidance, no exclusions, and no mention of alternatives like get_tcy_claimer or list_tcy_stakers. An agent must infer that this is for bulk retrieval of all claimers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tcy_stakersBRead-onlyInspect
Returns all TCY (ThorCoin Yeet) stakers. Shows summary information for all addresses that have staked in the TCY program.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile with readOnlyHint=true and idempotentHint=false, so the description only needs to add behavioral context. It adds that results cover all qualifying addresses and are 'summary information,' but does not discuss pagination, result freshness, or response shape, so the 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?
The first sentence front-loads the core purpose efficiently. The second sentence is slightly redundant because 'addresses that have staked in the TCY program' largely restates 'stakers,' but it does add the 'summary information' detail.
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 parameterless list tool with no output schema, the description gives enough to understand the resource and the general nature of the response. It stops short of describing the summary fields or pagination behavior, but the annotations already cover the read-only safety profile.
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 tool takes zero parameters, so there are no parameter semantics to document. The description correctly does not invent parameter guidance, and the baseline for a parameterless tool 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?
It states a specific verb ('Returns all') and resource ('TCY (ThorCoin Yeet) stakers'), and clarifies the scope as 'all addresses that have staked in the TCY program.' The plural list nature implicitly distinguishes it from the singular sibling get_tcy_staker, but it does not name or explicitly contrast with any alternative.
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 says what the tool returns but gives no guidance on when to use it versus siblings like get_tcy_staker or list_tcy_claimers. There are no stated preconditions, exclusions, or alternative-routing cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_trade_accountsARead-onlyInspect
Returns all trade accounts for a specific trade asset. Each account includes the asset, units, owner address, and activity history.
| Name | Required | Description | Default |
|---|---|---|---|
| asset | Yes | The trade asset to list accounts for (e.g. 'BTC~BTC' or 'ETH~ETH') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, covering the safety profile. The description adds value by enumerating the returned fields (asset, units, owner address, activity history), which matters since no output schema exists, but says nothing about pagination, ordering, or empty results for a 'returns all' operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences with the scope constraint front-loaded and zero 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 one documented parameter, no output schema, and readOnly annotations, the description is nearly complete because it enumerates the returned fields. It leaves pagination/ordering behavior unspecified for a list operation, which is the only real 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 documents the asset parameter with format examples ('BTC~BTC'). The description 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 (Returns/list) and resource (trade accounts) scoped to a specific trade asset. It is distinguishable from singular siblings like get_trade_account, though it never explicitly contrasts itself with list_trade_units.
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 scoping phrase 'for a specific trade asset' implies the usage context, but there is no explicit when-to-use or when-not-to-use guidance and no mention of alternatives such as get_trade_account or list_trade_units.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_trade_unitsARead-onlyInspect
Returns all trade units across all trade assets. Each unit includes the asset, total units, and depth.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true and idempotentHint=false, so the safety profile is covered. The description adds useful behavioral context by naming the returned fields ('asset, total units, and depth'), which is valuable because there is no output schema, though it omits ordering or freshness details.
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 action and scope, and no wasted words. The second sentence efficiently describes the return contents.
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, read-only listing tool without an output schema, the description gives enough context: it states the resource scope and the fields each unit includes. Minor omissions such as ordering or whether empty results are possible keep it from being fully 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?
The tool takes zero parameters, so there are no parameter semantics to document; the baseline for 0 params is 4. The description correctly does not waste space explaining nonexistent 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?
The description states a specific verb ('Returns') and resource ('all trade units across all trade assets'), making the scope clear. It does not explicitly contrast itself with the singular sibling get_trade_unit, so it falls 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?
It implies usage by saying 'Returns all trade units,' but gives no explicit guidance on when to choose this over get_trade_unit, list_trade_accounts, or other related siblings. There are no stated alternatives, exclusions, or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_upgrade_proposalsARead-onlyInspect
Returns all pending network upgrade proposals. Each proposal includes the upgrade name, target block height, and upgrade info. Use this to monitor upcoming network changes.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so only the 'pending' scoping and the shape of returned fields are added. Since there is no output schema, disclosing that each proposal carries upgrade name, target block height, and info is genuinely useful behavioral context; nothing about pagination or ordering is mentioned.
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, purpose front-loaded, followed by return contents and a usage hook. Nothing is bloated, though the usage sentence is the weakest and does not add much beyond the purpose line.
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 parameterless read-only list tool with no output schema, the description covers scope, payload contents, and intent, which is essentially everything an agent needs to invoke it correctly. Absence of output schema slightly raises the burden, but the field list compensates.
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?
Zero parameters, so the baseline is 4; schema coverage is 100% and there is nothing for the description to clarify. No parameter-related claims are made or needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns all pending network upgrade proposals') and enumerates the returned fields. It is distinguishable from the singular 'get_upgrade_proposal' and 'get_upgrade_votes' siblings by the plural, list-shaped scope, 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?
'Use this to monitor upcoming network changes' gives an implied context but no when-not guidance and no explicit routing to the singular get_upgrade_proposal or get_upgrade_votes alternatives. 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.
lookup_thornameBRead-onlyInspect
Returns THORName details including chain addresses, expiry, and owner.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | THORName to look up |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so safety is covered, and the description usefully names the fields returned (chain addresses, expiry, owner). It does not note the odd idempotentHint=false for a pure lookup, nor explain the relationship to reverse_lookup_thorname. Adds moderate value 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?
One short, front-loaded sentence with zero filler. It is efficient, though it spends its single clause on return fields rather than on routing or lookup semantics.
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-only lookup with no output schema, naming the returned fields is the right compensating detail and nothing critical is omitted. It falls short only in not differentiating from get_thorname/reverse_lookup_thorname.
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?
Only one parameter, fully documented in the schema (100% coverage) as 'THORName to look up'. The description adds no format, casing, or resolution semantics beyond that, so the schema carries the whole burden — 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 (returns) and resource (THORName details) and enumerates the payload fields: chain addresses, expiry, owner. However, it does nothing to distinguish itself from the closely named sibling get_thorname (nor get_thorname_owner / reverse_lookup_thorname), so an agent cannot tell from the text alone which of these to call.
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, when-not-to-use, or alternative routing is provided. With siblings get_thorname and reverse_lookup_thorname in the same namespace, the absence of any disambiguation guidance is a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pingARead-onlyInspect
Health check endpoint. Returns 'pong' if the THORNode is responding. Use this to verify connectivity to the node.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish that this is a read-only operation, so the description's job is lighter. The description adds useful behavioral detail by stating the expected response ('pong') and the condition under which it is returned, though it does not discuss failure modes or timeout 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 short sentences with the endpoint identity front-loaded, followed by return behavior and intended use. There is no redundant or filler 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 zero-parameter health-check tool with no output schema, the description supplies everything needed: what it is, what it returns, and when to call it. No additional output or parameter documentation is necessary.
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 tool takes no parameters, so there are no parameter semantics to explain. The schema is minimal and complete, and the description appropriately does not invent parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific endpoint type (health check) and states exactly what it returns ('pong' when the THORNode is responding). This clearly distinguishes it from the many data-fetching sibling tools, which retrieve node or chain data rather than perform a liveness check.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says to use this tool to verify connectivity to the node, giving clear usage context. It does not name exclusions or alternative diagnostic tools, but the intended use is unambiguous for a zero-parameter health check.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prepare_swapARead-onlyInspect
Build a ready-to-execute THORChain swap. Returns the exact vault address to send to, the memo, the source chain, the expected output and guaranteed minimum, the estimated time, and an expiry. Use this when the user wants to actually perform a swap, not just price it (for pricing only, use quote_swap). The returned instruction is what a wallet signs and broadcasts; this tool itself never moves funds.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Amount to swap in THORChain base units (1e8; e.g. 50000000 = 0.5 BTC) | |
| to_asset | Yes | The target asset to swap to (e.g. ETH.ETH) | |
| affiliate | No | Optional affiliate address or THORName that collects a fee | |
| from_asset | Yes | The source asset to swap from (e.g. BTC.BTC) | |
| destination | Yes | The address on the destination chain that will receive the swap output. Required to execute a swap. | |
| affiliate_bps | No | Optional affiliate fee in basis points (0-1000; protocol caps total affiliate fees at 1000 bps) | |
| max_slippage_bps | No | Maximum acceptable slippage in basis points; sets the min-received limit baked into the memo (default 300 = 3%). Range 1-10000. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and the description is consistent, adding real context beyond them: the tool never moves funds, the returned instruction is what a wallet signs and broadcasts, and the result carries an expiry. It stops short of discussing failure modes or whether the quote can go stale before broadcast, 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?
Three sentences, all front-loaded: what it does, when to use it, and the safety caveat. Every sentence 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?
There is no output schema, and the description compensates by enumerating the returned fields (vault address, memo, source chain, expected output, guaranteed minimum, estimated time, expiry). Combined with full param coverage and annotations, an agent has everything needed to call and interpret it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 7 parameters including units, defaults and ranges. The description adds nothing about parameters (it only describes returns), 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 ('Build a ready-to-execute THORChain swap') and immediately enumerates the artifact it produces, which distinguishes it from the many read-only query siblings. An agent can tell this apart from quote_swap 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 names the when ('user wants to actually perform a swap'), the when-not ('not just price it'), and the alternative ('for pricing only, use quote_swap'). This is textbook routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quote_limitARead-onlyInspect
Get a limit order quote with expected output, expiry time, and a generated memo for executing the limit order. Limit orders execute when the target price is reached.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | The amount in base units (1e8 for most assets) | |
| to_asset | Yes | The target asset (e.g. ETH.ETH) | |
| affiliate | No | The affiliate address or THORName | |
| custom_ttl | No | Custom TTL in blocks for the limit order | |
| from_asset | Yes | The source asset (e.g. BTC.BTC) | |
| target_out | Yes | The limit price: minimum acceptable output amount in base units (1e8). The order executes only at this price or better | |
| destination | No | The destination address for the swap output | |
| affiliate_bps | No | The affiliate fee in basis points (0-1000; protocol caps total affiliate fees at 1000 bps) | |
| refund_address | No | The refund address if the swap fails | |
| streaming_quantity | No | Number of sub-swaps for streaming |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=false, so safety is covered. The description goes beyond that by naming what the quote produces (expected output, expiry time, generated memo), which is valuable behavioral context given there is no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the core action front-loaded and the limit-order mechanic following as supporting context. 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 10-parameter tool with no output schema, the description usefully previews the return contents (quote, expiry, memo). It slightly undersells prerequisites (e.g., that a destination address is needed to produce an executable memo), but covers the essentials.
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 ten parameters, including target_out's limit-price semantics, are documented in the schema. The description only aligns loosely with target_out ("target price") and adds no syntax or format detail beyond the schema, so the baseline 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 a limit order quote") and clarifies the scope, naming the artifacts returned (expected output, expiry, memo). It is clearly distinguishable from retrieval siblings, but it never names its closest alternative (quote_swap) to sharpen the boundary.
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 second sentence explains limit-order mechanics ("execute when the target price is reached"), which implies when this tool applies, but it gives no explicit when-to-use guidance or comparison against quote_swap/prepare_swap. 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.
quote_swapARead-onlyInspect
Calculate how much output you would receive when swapping one asset for another. Use this tool to answer questions like 'how much ETH would I get for 100 RUNE?' Returns expected output amount, fees, slippage, estimated time, and a memo for executing the swap.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | The amount in base units (1e8 for most assets) | |
| to_asset | Yes | The target asset (e.g. ETH.ETH) | |
| affiliate | No | The affiliate address or THORName | |
| from_asset | Yes | The source asset (e.g. BTC.BTC) | |
| destination | No | The destination address for the swap output | |
| affiliate_bps | No | The affiliate fee in basis points (0-1000; protocol caps total affiliate fees at 1000 bps) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish read-only behavior, and the description adds useful behavioral context by listing the returned estimate fields, including fees, slippage, estimated time, and a memo. It does not explicitly say whether the quote expires or what permissions, if any, are required.
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-load the purpose and then give a concrete example and return-value summary. There is 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?
With no output schema, the description appropriately names the expected return fields and makes clear this is a calculation rather than an execution tool. The main remaining gap is routing guidance versus similar quote or execution 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 all six parameters in detail. The description reinforces the core concept with an example, but adds no parameter-specific syntax or formatting beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: calculating expected swap output for one asset into another, with a concrete example. It clearly separates quoting from executing, but does not explicitly distinguish itself from similar siblings such as quote_limit or prepare_swap.
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 usage context with an example question, so an agent knows this tool is for estimation-style swap questions. It does not name when to use alternatives like quote_limit or prepare_swap instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reverse_lookup_thornameARead-onlyInspect
Returns THORNames associated with an address.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Address to look up THORNames for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no unique behavioral traits beyond the basic function. The relevant safety information (read-only nature) is already explicitly covered by the 'readOnlyHint: true' annotation. Therefore, the description contributes minimally to behavioral 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?
The definition is highly efficient, consisting of a single, focused sentence that immediately conveys the tool's purpose with zero unnecessary 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?
Given that this is a simple read-only lookup, the combination of the description and annotations provides sufficient information for an agent to call the tool correctly. It is missing context on expected return format, but this is a minor gap for a non-complex operation.
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%, meaning the schema thoroughly defines the `address` parameter. The description merely confirms the relationship ('associated with an address'), which adds no semantic meaning beyond what the detailed input schema already provides. Baseline score 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 clearly states the specific function (Returns THORNames) and the resource/input required (associated with an address). This reverse lookup function is clearly differentiated from other potential lookup tools like get_thorname or lookup_thorname listed among 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?
The name and description provide clear context for when this tool should be used—when an address is known and the corresponding THORName(s) are needed. While it doesn't explicitly state 'use this vs X,' the functional distinction is robust enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_cometbft_txBRead-onlyInspect
Searches for transactions matching the query. Supports queries like 'tx.height=1000', 'message.action="send"', or composite queries. Returns matching transactions with optional proofs.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (1-indexed). Default is 1. | |
| prove | No | Include proof for each transaction. | |
| query | Yes | Search query (e.g. tx.height=1000 or message.action='send'). | |
| order_by | No | Result ordering: 'asc' or 'desc'. Default is 'asc'. | |
| per_page | No | Results per page. Default is 30, max is 100. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds that proofs are optional and what query forms are accepted, but says nothing about pagination behavior, result limits, or error handling for malformed queries.
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 the query-syntax detail earns its place. No filler or restatement of the name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 note the return shape ('matching transactions with optional proofs'), which is helpful. But for a search tool with a same-named sibling, the missing disambiguation and lack of pagination guidance leave real gaps.
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 page, prove, query, order_by, and per_page with defaults. The description reinforces query syntax and mentions composite queries, adding modest value over the schema's single example, but adds nothing for the other four 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 and resource ('Searches for transactions matching the query') plus the supported query syntax, so the agent knows exactly what it does. However, it never distinguishes itself from the near-identically named sibling search_cosmos_txs, leaving the agent to guess which search tool 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-to-use guidance, no prerequisites, and no routing between this and the sibling search_cosmos_txs (or the get_cometbft_tx/get_cosmos_tx getters). The query examples hint at capability but do not tell the agent when this tool is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_cosmos_txsBRead-onlyInspect
Searches for transactions matching the query events. Supports filtering by message type, sender, recipient, and other event attributes.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (1-indexed). Default is 1. | |
| limit | No | Results per page. Default is 100. | |
| events | No | Query events to filter transactions (e.g. message.action='send'). Multiple events are ANDed. | |
| order_by | No | Result ordering: ORDER_BY_ASC or ORDER_BY_DESC. Default is ORDER_BY_ASC. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=false, so the safety profile is known. The description adds the nature of the filterable attributes, but nothing about pagination limits, result size, or query cost; with annotations carrying safety, 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?
Two compact sentences with the core purpose front-loaded and no filler. It could be tighterefficient but is well within bounds for a search 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?
No output schema exists, yet the description says nothing about the shape of returned transaction data or result-size expectations. Pagination is at least covered by the schema, and annotations cover safety, so the gaps are moderate rather than severe.
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 (page, limit, events, order_by) are already documented, establishing a baseline of 3. The description hints at what the 'events' filter can target (message type, sender, recipient), marginally enriching 'events' beyond the schema's single example, but adds no syntax or format 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 (searches) and resource (transactions) with a clear mechanism (matching query events). It does not differentiate itself from the near-identical sibling search_cometbft_tx or from single-tx tools like get_cosmos_tx, 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 lists capabilities (filtering by message type, sender, recipient) but gives no guidance on when to use this tool versus get_cosmos_tx, search_cometbft_tx, or get_tx. No prerequisites or exclusions are stated, leaving selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
126 tool updates
- First observed
check_reference_memo - First observed
get_affiliate_earnings - First observed
get_affiliate_history - First observed
get_affiliate_stats - First observed
get_ban - First observed
get_block - First observed
get_bonds - First observed
get_churns - First observed
get_cometbft_block - First observed
get_cometbft_block_results - First observed
get_cometbft_consensus_params - First observed
get_cometbft_consensus_state - First observed
get_cometbft_net_info - First observed
get_cometbft_status - First observed
get_cometbft_tx - First observed
get_cometbft_validators - First observed
get_constants - First observed
get_cosmos_account - First observed
get_cosmos_balances - First observed
get_cosmos_block - First observed
get_cosmos_delegations - First observed
get_cosmos_latest_block - First observed
get_cosmos_node_info - First observed
get_cosmos_rewards - First observed
get_cosmos_supply - First observed
get_cosmos_syncing - First observed
get_cosmos_tx - First observed
get_cosmos_validators - First observed
get_depth_history - First observed
get_derived_pool - First observed
get_dynamic_l1_fees - First observed
get_earnings_history - First observed
get_holders - First observed
get_inbound_addresses - First observed
get_invariant - First observed
get_keygen - First observed
get_keygen_metric - First observed
get_keysign - First observed
get_keysign_pubkey - First observed
get_known_pools - First observed
get_lastblock - First observed
get_lastblock_chain - First observed
get_limit_swaps - First observed
get_limit_swaps_summary - First observed
get_liquidity_history - First observed
get_lp_position - First observed
get_members - First observed
get_midgard_balance - First observed
get_midgard_member - First observed
get_midgard_nodes - First observed
get_midgard_stats - First observed
get_mimir - First observed
get_mimir_admin - First observed
get_mimir_key - First observed
get_mimir_node - First observed
get_network_info - First observed
get_network_summary - First observed
get_node - First observed
get_oracle_price - First observed
get_oracle_prices - First observed
get_outbound_fee_asset - First observed
get_outbound_fees - First observed
get_outbound_queue - First observed
get_pool - First observed
get_pool_slip - First observed
get_pool_stats - First observed
get_queue - First observed
get_ragnarok - First observed
get_reference_memo - First observed
get_reference_memo_by_hash - First observed
get_rune_history - First observed
get_rune_pool - First observed
get_rune_price_history - First observed
get_rune_provider - First observed
get_runepool_member - First observed
get_scheduled_queue - First observed
get_stable_reserve - First observed
get_stable_reserve_contributor - First observed
get_streaming_swap - First observed
get_swap_details - First observed
get_swap_history - First observed
get_swap_queue - First observed
get_swapper_clout - First observed
get_tcy_claimer - First observed
get_tcy_distribution - First observed
get_tcy_staker - First observed
get_thorname - First observed
get_thorname_owner - First observed
get_trade_account - First observed
get_trade_unit - First observed
get_tss_metrics - First observed
get_tvl_history - First observed
get_tx - First observed
get_tx_details - First observed
get_tx_stages - First observed
get_tx_status - First observed
get_upgrade_proposal - First observed
get_upgrade_votes - First observed
get_vault - First observed
get_vault_pubkeys - First observed
get_vault_solvency - First observed
get_version - First observed
get_votes - First observed
list_asgard_vaults - First observed
list_derived_pools - First observed
list_invariants - First observed
list_liquidity_providers - First observed
list_mimir_node_votes - First observed
list_nodes - First observed
list_pool_slips - First observed
list_pools - First observed
list_rune_providers - First observed
list_streaming_swaps - First observed
list_tcy_claimers - First observed
list_tcy_stakers - First observed
list_trade_accounts - First observed
list_trade_units - First observed
list_upgrade_proposals - First observed
lookup_thorname - First observed
ping - First observed
prepare_swap - First observed
quote_limit - First observed
quote_swap - First observed
reverse_lookup_thorname - First observed
search_cometbft_tx - First observed
search_cosmos_txs
Related MCP Connectors
Read-only THORChain swap quotes, liquidity pools, and network status.
Read-only Proof of Agent explorer: epochs, rewards, holders, swaps and agent census. No auth.
Read-only Bitcoin blockchain, mempool, mining, market, and on-chain analytics; no API key.
Read-only Etherscan V2 blockchain data: balances, transactions, transfers, tokens, contracts, logs.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to query THORChain blockchain data including transactions, address history, liquidity pool statistics, network metrics, and vault addresses through a standardized interface.8 npmApache 2.0
- FlicenseAqualityDmaintenanceProvides read-only access to the XRP Ledger for querying accounts, transactions, NFTs, DEX order books, and more.12-

Tegro Wallet MCPofficial
AlicenseAqualityDmaintenanceProvides read-only, real-time access to TON blockchain data including wallet balances, token holdings, transactions, prices, NFTs, DNS resolution, and address validation, without requiring private keys.813 npmMIT- AlicenseAqualityDmaintenanceRead-only MCP server for Tegro Finance DEX on TON blockchain, enabling AI assistants to query pools, token prices, swap quotes, and liquid-staking rates without API keys or wallet.728 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.