Skip to main content
Glama

Server Details

Teardrop is the native economic layer for AI agents, providing a robust suite of tools for multi-chain portfolio tracking, DeFi yield analysis, and gas estimation. It enables autonomous agents to securely find Web3 data and manage micro-payments on-chain with zero human intervention.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.4/5 across 25 of 25 tools scored. Lowest: 3.6/5.

Server CoherenceA
Disambiguation4/5

Most tools have distinct purposes, but there is some overlap: get_wallet_portfolio includes ETH balance making get_eth_balance redundant, and both get_lending_rates and get_yield_rates provide rate information. However, descriptions clarify the differences, reducing confusion.

Naming Consistency5/5

All tool names follow a consistent verb_noun snake_case pattern (e.g., get_block, calculate, convert_currency). No mixed conventions or irregular naming, making it predictable for an agent.

Tool Count5/5

25 tools is well-scoped for a versatile DeFi/blockchain assistant. The count covers essential blockchain queries, DeFi positions, prices, yield, and general utilities without being excessive.

Completeness4/5

The tool set covers a broad range of DeFi operations: portfolio, positions, liquidation, approvals, DEX quotes, prices, yields, TVL, lending rates, plus utilities. Minor gaps like missing staking or governance tools are acceptable given the focus.

Available Tools

25 tools
calculateCalculateA
Read-only
Inspect

Evaluate a safe arithmetic expression. Supports +,-,*,/,**,%,sqrt,abs,round,floor,ceil,log,sin,cos,tan,pi,e.

ParametersJSON Schema
NameRequiredDescriptionDefault
expressionYesA safe arithmetic expression, e.g. '(3 + 4) * 2 / sqrt(9)'

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
resultNo
expressionYes
Behavior4/5

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

Annotations already indicate readOnlyHint=true. The description adds 'safe' and enumerates supported functions and constants, which provides additional context about the tool's behavior without contradicting annotations.

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

Conciseness5/5

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

The description is a single sentence with no wasted words. It efficiently conveys the tool's purpose and supported operations, making it easy for an AI agent to parse quickly.

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

Completeness5/5

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

For a tool with one parameter, a well-described schema, and an output schema (not shown but present), the description is sufficient. It explains the core functionality and supported operations, leaving no major gaps in understanding.

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

Parameters4/5

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

Schema coverage is 100%, but the description adds significant extra information: a list of supported operators and functions (+, -, *, /, **, %, sqrt, abs, etc.) that goes beyond the schema's example expression. This enhances understanding of valid inputs.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Evaluate a safe arithmetic expression.' It specifies the verb (evaluate) and resource (arithmetic expression), and lists supported operations, distinguishing it from sibling tools which are unrelated.

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

Usage Guidelines3/5

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

The description implies this tool is for arithmetic computations but does not explicitly state when to use it versus alternatives or provide any exclusions. Given the simplicity and clear domain, this is minimally adequate.

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

convert_currencyConvert CurrencyA
Read-only
Inspect

Convert between fiat currencies (USD, EUR, GBP, etc.) and crypto assets (BTC, ETH, USDC, SOL, etc.). Returns the converted amount and exchange rate.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesAmount to convert
to_currencyYesTarget currency (e.g. 'USD', 'EUR', 'BTC')
from_currencyYesSource currency (e.g. 'ETH', 'USD', 'BTC')

Output Schema

ParametersJSON Schema
NameRequiredDescription
rateYes
amountYes
sourceYes
to_currencyYes
from_currencyYes
converted_amountYes
Behavior4/5

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

The description aligns with the readOnlyHint annotation, stating that it converts (a non-mutating operation). It adds context by noting it returns both the converted amount and market data, which annotations alone don't specify. However, it could mention that rates are live or sourced externally, but this is minor.

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

Conciseness5/5

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

The description is a single concise sentence with no redundant information. It front-loads the core action ('Convert between...') and immediately states the return values. Every word serves a purpose.

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

Completeness5/5

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

Given the tool's simplicity, output schema availability, and full parameter coverage, the description adequately equips the agent. It specifies the return values (converted amount and exchange rate) without needing deeper detail. No gaps are apparent.

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

Parameters3/5

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

The input schema covers all parameters with clear descriptions. The description provides example currency values (USD, BTC) that add value beyond the schema's generic descriptions. However, it does not explain the format or restrictions (e.g., case sensitivity, allowed codes) further, so baseline 3 is appropriate given 100% coverage.

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

Purpose5/5

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

The description clearly identifies the tool's purpose: converting between fiat currencies and crypto assets. It uses specific verb 'Convert' and specifies the resource (currencies), and the mention of 'returns the converted amount and exchange rate' distinguishes it from siblings like get_token_price which may not perform conversion.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as get_dex_quote or get_token_price. The description does not mention conditions, prerequisites, or scenarios where this tool is preferable. Without explicit context, the agent may select it incorrectly.

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

count_text_statsCount Text StatsA
Read-only
Inspect

Return word count, character count, sentence count, and paragraph statistics for a given text.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesText to summarize

Output Schema

ParametersJSON Schema
NameRequiredDescription
word_countYes
sentence_countYes
character_countYes
paragraph_countYes
average_words_per_sentenceYes
Behavior3/5

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

Annotations declare readOnlyHint=true, which the description does not contradict. The description adds that the tool returns specific statistics, but does not detail the definition of sentences or paragraphs, nor any edge-case behavior.

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

Conciseness5/5

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

The description is a single sentence, front-loaded with the action and output, with no superfluous words.

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

Completeness4/5

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

Given the simple nature of the tool and the presence of an output schema (not shown but indicated), the description covers the main return values. It could be slightly more explicit about what 'paragraph statistics' includes, but overall adequate.

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

Parameters3/5

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

Schema coverage is 100% with a single 'text' parameter described as 'Text to summarize'. The description adds no additional meaning 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.

Purpose5/5

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

The description clearly states the tool returns word, character, sentence, and paragraph statistics for a given text, distinguishing it from sibling tools which focus on blockchain or web data.

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

Usage Guidelines3/5

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

The description does not provide explicit guidance on when to use this tool versus alternatives. However, context signals show no sibling tools with similar functionality, making the usage implicit.

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

decode_transactionDecode TransactionA
Read-only
Inspect

Decode a transaction's calldata into a human-readable function name and arguments. Also returns transaction status (1=success, 0=revert), gas used, and block number. Optionally provide an ABI for precise decoding; otherwise uses 4byte.directory. Supports Ethereum mainnet and Base.

ParametersJSON Schema
NameRequiredDescriptionDefault
tx_hashYesTransaction hash (0x… 64 hex chars)
abi_jsonNoOptional ABI JSON array for decoding. If omitted, 4byte.directory is used.
chain_idNoChain ID (1=Ethereum, 8453=Base)

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
statusNo1=success, 0=revert, None=pending
tx_hashYes
chain_idYes
gas_usedYes
value_ethYes
to_addressYes
block_numberYes
decoded_argsYes
from_addressYes
raw_calldataYes
decode_sourceYes
function_nameYes
function_selectorYes
Behavior5/5

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

Annotations indicate readOnlyHint=true, description confirms no mutation. Discloses fallback behavior and returned data fields.

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

Conciseness5/5

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

Two concise sentences, front-loaded with main function, then additional details. No unnecessary words.

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

Completeness5/5

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

With output schema present, description covers key returns. Sibling context differentiates from similar tools. Complete for the tool's complexity.

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

Parameters5/5

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

Schema coverage is 100%; description adds chain IDs and clarifies ABI parameter meaning and default behavior.

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

Purpose5/5

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

Describes specific verb ('decode') and resource ('transaction calldata'), yielding human-readable function name and arguments. Distinct from siblings like get_transaction and read_contract.

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

Usage Guidelines4/5

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

Explicitly states optional ABI for precise decoding and supported chains. Could include when to use 4byte.directory vs. providing ABI.

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

delegate_to_agentDelegate To AgentAInspect

Delegate a task to a remote A2A-compliant agent. Discovers the agent's capabilities via its agent card, sends it a message, and returns the result. Use when a task requires specialist capabilities beyond your own tools.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_urlYesBase URL of the remote A2A agent (e.g. https://agent.example.com)
task_descriptionYesNatural language description of the task to delegate

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoError message, if any
resultYesText result extracted from the remote agent's response
statusYesA2A task state: completed, failed, etc.
cost_usdcNoCost of this delegation in atomic USDC
agent_nameYesName of the remote agent (from its agent card)
Behavior4/5

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

Annotations already indicate non-readonly, non-idempotent, and open-world. The description adds the discovery step ('Discovers agent capabilities via agent card') and interaction pattern, providing useful context beyond annotations.

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

Conciseness5/5

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

Three sentences with no fluff: action, process, usage guidance. Front-loaded with the core purpose. Every sentence earns its place.

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

Completeness5/5

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

The description covers what the tool does, how it works (agent discovery and messaging), and when to use it. Output schema exists, so return values are handled. For a delegation tool, this is complete.

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

Parameters3/5

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

Schema coverage is 100%, so parameters are fully described in the schema. The description does not add new details about parameter formats or constraints but reinforces their purpose in context, meeting the baseline for high coverage.

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

Purpose5/5

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

The description specifies the verb 'delegate' and the resource 'task to remote A2A-compliant agent'. It clearly distinguishes this tool from siblings (all other tools are generic utilities like web search, blockchain lookups, etc.) by focusing on external agent delegation.

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

Usage Guidelines4/5

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

States 'Use when a task requires specialist capabilities beyond your own tools,' giving clear context for use. It does not explicitly list when not to use, but the sibling list makes alternatives apparent.

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

get_blockGet BlockA
Read-only
Inspect

Get details for an Ethereum or Base block by number, hash, or 'latest'.

ParametersJSON Schema
NameRequiredDescriptionDefault
chain_idNoChain ID (1=Ethereum, 8453=Base)
block_identifierNoBlock number, block hash, or 'latest'/'earliest'/'pending'latest

Output Schema

ParametersJSON Schema
NameRequiredDescription
hashYes
numberYes
gas_usedYes
timestampYes
base_fee_gweiYes
transaction_countYes
Behavior3/5

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

Annotations already provide readOnlyHint=true. The description adds that the tool retrieves details for a block, but does not disclose behaviors like what happens with invalid identifiers, rate limits, or the structure of the response. It provides some additional context (Ethereum/Base) beyond annotations.

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

Conciseness5/5

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

The description is a single, clear sentence with no redundant information. Every word contributes to understanding the tool's function.

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

Completeness4/5

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

Given the tool's simplicity, the description covers the key aspects: chains supported, identifier types. The presence of an output schema means return values need not be described. Minor omission of 'earliest'/'pending' but overall adequate.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already describes both parameters. The description mentions 'by number, hash, or latest', which aligns with 'block_identifier' but omits 'earliest' and 'pending' mentioned in the schema. It adds no new meaning beyond the schema.

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

Purpose5/5

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

The description clearly states the verb ('get'), the resource ('block'), and the scope ('Ethereum or Base' with identifiers like number, hash, or 'latest'). It distinguishes from sibling tools that work with transactions or other data.

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

Usage Guidelines3/5

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

The description implies usage when one needs block details, but does not explicitly state when to use this tool versus alternatives like 'get_transaction' or 'get_eth_balance'. No exclusion criteria or context for when not to use it are provided.

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

get_datetimeGet DatetimeA
Read-only
Inspect

Return the current UTC date and time. Optional strftime format parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNostrftime format string for the output%Y-%m-%d %H:%M:%S UTC

Output Schema

ParametersJSON Schema
NameRequiredDescription
iso8601Yes
datetimeYes
Behavior3/5

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

Annotations already declare readOnlyHint=true. Description adds that it returns UTC time and accepts a format parameter, but no deeper behavioral details (e.g., timezone handling beyond UTC, precision). Bar is lowered due to annotation, but description adds marginal value.

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

Conciseness5/5

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

Two concise sentences with front-loaded core info. No wasted words. Fully earns its place.

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

Completeness5/5

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

For a simple read-only tool with one optional parameter and an output schema, this description covers all needed info: what it does, when it returns (UTC), and how to customize output. No gaps.

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

Parameters3/5

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

Schema coverage is 100% with clear description of 'format' parameter. Tool description merely reiterates the optional format, adding no extra meaning beyond what the schema provides. Baseline 3 applies.

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

Purpose4/5

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

Clear verb 'Return' and resource 'current UTC date and time'. Specifies optional formatting, distinguishing it from sibling tools which are blockchain-related. Could be more explicit that output is a string, but inference is straightforward.

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

Usage Guidelines3/5

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

No explicit guidance on when to use or alternatives, but its simple nature and non-overlap with siblings imply use when current time is needed. Provides no when-not-to-use context.

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

get_defi_positionsGet Defi PositionsA
Read-only
Inspect

Aggregate DeFi positions for a wallet across Aave v3, Compound v3, and Uniswap v3 LP on Ethereum (chain_id=1) or Base (chain_id=8453). Returns Aave aggregate account health (collateral, debt, health factor, LTV) with per-reserve breakdown for major assets, Compound v3 Comet market positions (supply, borrow, per-asset collateral, liquidation flag), and Uniswap v3 LP positions by token ID (token pair, fee tier, tick range, liquidity, uncollected fees). Per-protocol failures are isolated — other protocols still return.

ParametersJSON Schema
NameRequiredDescriptionDefault
chain_idNoChain ID (1=Ethereum, 8453=Base)
wallet_addressYesWallet address (0x…)

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
errorsNo
aave_v3No
chain_idYes
uniswap_v3No
compound_v3No
wallet_addressYes
data_block_numberYes
Behavior4/5

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

Description discloses that per-protocol failures are isolated and lists return fields, adding value beyond readOnlyHint annotation. 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.

Conciseness4/5

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

Description is a single dense paragraph but efficiently conveys all necessary information without wasted words. Could be slightly more structured, but concise overall.

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

Completeness5/5

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

Given full schema coverage, annotations, and presence of output schema, the description thoroughly explains return structure per protocol and failure isolation, making it complete for this complex tool.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for both parameters. Description adds no extra meaning beyond what schema provides, thus baseline score of 3.

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

Purpose5/5

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

Description clearly states aggregation of DeFi positions for a wallet across specific protocols (Aave v3, Compound v3, Uniswap v3 LP) and chains (Ethereum, Base), distinguishing it from sibling tools like get_wallet_portfolio or get_lending_rates.

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

Usage Guidelines4/5

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

Explicitly defines when to use: for wallet positions across listed protocols on Ethereum or Base. Lacks explicit 'when not to use' but provides enough context via protocol and chain specificity.

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

get_dex_quoteGet Dex QuoteA
Read-only
Inspect

Get the best Uniswap v3 swap quote on Ethereum (chain_id=1) or Base (chain_id=8453) via direct on-chain QuoterV2 calls. Queries all four fee tiers (100/500/3000/10000 bps) in parallel and returns the tier with the highest output amount, along with per-tier breakdown. Inputs are raw uint256 amounts and EIP-55 checksummed addresses; native ETH is not quoted directly — pass the WETH address. Returns no_liquidity=true when no pool exists for the pair. Point-in-time quote at the returned block_number; do not cache.

ParametersJSON Schema
NameRequiredDescriptionDefault
chain_idNo1 = Ethereum mainnet, 8453 = Base mainnet. Other chains unsupported.
token_inYesEIP-55 checksummed address of the token being sold. For native ETH, pass the WETH address (Ethereum: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; Base: 0x4200000000000000000000000000000000000006).
amount_inYesInput amount in RAW uint256 units (e.g. '1000000' for 1 USDC, '1000000000000000000' for 1 WETH). Must be > 0 and < 2^128. Common token decimals: WETH/ETH/DAI/wstETH/cbETH/weETH 18, WBTC/cbBTC 8, USDC/USDT 6. Do not call read_contract to look up decimals — use these values directly.
token_outYesEIP-55 checksummed address of the token being bought.

Output Schema

ParametersJSON Schema
NameRequiredDescription
chain_idYes
token_inYes
amount_inYes
token_outYes
amount_outYes
block_numberYes
no_liquidityYes
fee_tier_usedYes
effective_rateYes
quotes_per_tierYes
amount_out_humanYes
amount_in_decimalsYes
amount_out_decimalsYes
Behavior5/5

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

Beyond the readOnlyHint annotation, the description reveals using parallel QuoterV2 calls across four fee tiers, returning the best quote with per-tier breakdown, indicating no_liquidity when no pool exists, and that the quote is point-in-time at a specific block. No contradictions.

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

Conciseness4/5

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

The description is thorough without redundancy; the first sentence captures the core purpose, and subsequent sentences add necessary constraints and behaviors. Slightly dense but every sentence adds value.

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

Completeness5/5

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

Given the tool's complexity (multiple chains, fee tiers, output schema), the description covers all essential aspects: supported chains, fee tiers, input formatting, special cases (WETH for native), and response hints (no_liquidity, block_number). The existence of an output schema relieves the description from explaining return values.

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

Parameters5/5

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

The input schema has 100% coverage, but the description adds critical nuance: amounts are raw uint256, addresses must be EIP-55 checksummed, provides WETH addresses for native ETH, and gives decimal examples for common tokens. This significantly aids correct parameter usage.

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

Purpose5/5

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

The description clearly states it gets the best Uniswap v3 swap quote on Ethereum or Base via on-chain QuoterV2 calls, distinguishing it from sibling tools like get_token_price or read_contract by specifying the exact action and resources.

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

Usage Guidelines4/5

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

The description provides explicit context: supported chains, that native ETH must use WETH, and instructions not to cache. While it doesn't name alternative tools explicitly, it gives clear when-to and when-not-to guidance, earning a 4.

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

get_erc20_balanceGet Erc20 BalanceA
Read-only
Inspect

Get the ERC-20 token balance of a wallet, including symbol and decimals.

ParametersJSON Schema
NameRequiredDescriptionDefault
chain_idNoChain ID (1=Ethereum, 8453=Base)
token_addressYesERC-20 token contract address (0x…)
wallet_addressYesWallet address (0x…)

Output Schema

ParametersJSON Schema
NameRequiredDescription
chain_idYes
balance_rawYes
token_symbolYes
token_addressYes
token_decimalsYes
wallet_addressYes
balance_formattedYes
Behavior4/5

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

Annotations already indicate readOnlyHint=true, so no need to disclose mutability. The description adds that the tool returns symbol and decimals, which goes beyond the schema. It does not mention error handling or special cases, but is sufficient for a read operation.

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

Conciseness5/5

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

Single sentence, front-loaded with the main purpose, no unnecessary words.

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

Completeness4/5

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

Given the simplicity of the tool and the presence of an output schema (not shown but confirmed), the description is largely complete. However, it could mention that chain_id defaults to Ethereum for clarity.

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

Parameters3/5

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

Schema coverage is 100%, and the description adds no extra parameter details beyond what the schema already provides. Baseline 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb ('Get') and resource ('ERC-20 token balance') and adds that it includes symbol and decimals. This clearly distinguishes it from siblings like get_eth_balance or get_token_price.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., get_eth_balance for ETH balance). No when-not-to-use or prerequisites mentioned.

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

get_eth_balanceGet Eth BalanceA
Read-only
Inspect

Get the native ETH balance of an Ethereum or Base address. NOTE: get_wallet_portfolio already includes the native ETH balance in its holdings list — only call get_eth_balance when you need a standalone ETH balance without a full portfolio scan.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesEthereum address (0x…)
chain_idNoChain ID (1=Ethereum, 8453=Base)

Output Schema

ParametersJSON Schema
NameRequiredDescription
addressYes
chain_idYes
balance_ethYes
balance_weiYes
Behavior4/5

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

Annotations declare readOnlyHint=true, and the description adds that it returns only the ETH balance without a full scan, which is useful behavioral context beyond the annotation.

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

Conciseness5/5

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

Two short sentences, each adding distinct value: purpose and usage guideline. No wasted words.

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

Completeness4/5

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

Given the high schema coverage and presence of an output schema, the description covers the tool's purpose and key usage hints. Missing details like balance unit or return format are likely in the output schema.

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

Parameters3/5

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

Schema describes both parameters fully with 100% coverage; description does not add extra meaning beyond what is already in the schema, placing it at the baseline.

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

Purpose5/5

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

The description clearly states the tool gets native ETH balance for Ethereum/Base addresses, with a specific verb and resource. It distinguishes itself from the sibling get_wallet_portfolio by noting the standalone scope.

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

Usage Guidelines5/5

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

Explicitly says when to use (standalone ETH balance) and when not to (prefer get_wallet_portfolio for full portfolio), directly naming the alternative tool.

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

get_gas_priceGet Gas PriceA
Read-only
Inspect

Get current EIP-1559 gas fees on Ethereum or Base. Returns base fee, priority fee, and next-block base fee estimate (useful for timing transactions). gas_used_ratio indicates network congestion (>0.5 = busy, >0.9 = very congested). Optional USD estimates include ETH spot price and rough transfer/swap costs. Results cached 10 seconds per chain.

ParametersJSON Schema
NameRequiredDescriptionDefault
chain_idNoChain ID (1=Ethereum, 8453=Base)
include_usd_estimateNoIf true, include ETH spot price and rough USD cost estimates for a simple transfer (21k gas) and a swap-like transaction (150k gas).

Output Schema

ParametersJSON Schema
NameRequiredDescription
chain_idYes
base_fee_gweiYes
eth_price_usdNo
gas_price_gweiYes
gas_used_ratioYes
priority_fee_gweiYes
next_base_fee_gweiYes
estimated_swap_cost_usdNo
estimated_transfer_cost_usdNo
Behavior4/5

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

Annotations already mark readOnlyHint=true, so the description adds value by noting that results are cached for 10 seconds per chain. It also explains the meaning of gas_used_ratio for congestion, providing behavioral context beyond annotations.

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

Conciseness5/5

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

Three sentences, front-loaded with main purpose, then output details, optional features, and caching. Every sentence adds value without redundancy. Very efficient.

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

Completeness5/5

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

Given the tool's simplicity (2 optional parameters, no required fields, output schema exists), the description covers all relevant behavioral aspects: what is returned, USD estimate details, caching policy, and network congestion threshold. No gaps.

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

Parameters4/5

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

Input schema already covers both parameters with descriptions (100% coverage). The description adds useful context: include_usd_estimate includes ETH spot price and rough transfer/swap costs, and chain_id defaults are mentioned. This enhances understanding beyond the schema.

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

Purpose5/5

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

Description clearly states the tool gets current EIP-1559 gas fees on Ethereum or Base. It identifies the specific resource and scope, distinguishing it from siblings like get_token_price or get_block.

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

Usage Guidelines3/5

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

Description explains output fields (e.g., gas_used_ratio interpretation) and optional USD estimates, which helps decide if the tool is appropriate. However, it does not explicitly state when to use vs alternatives like get_eth_balance or read_contract.

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

get_lending_ratesGet Lending RatesA
Read-only
Inspect

Get current on-chain lending supply/borrow rates for Aave v3 and Compound v3 on Ethereum or Base. Returns per-asset APY snapshots and Compound utilization where available. Useful for protocol-specific stablecoin yield comparisons (e.g., USDC on Aave vs Compound).

ParametersJSON Schema
NameRequiredDescriptionDefault
assetsNoOptional asset-symbol filter (e.g., ['USDC','DAI']). Case-insensitive. Max 20 symbols.
chain_idNoChain ID (1=Ethereum, 8453=Base).
protocolNoProtocol to query: 'aave-v3', 'compound-v3', or 'all'.all

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
ratesYes
errorsNo
chain_idYes
protocolYes
data_block_numberYes
Behavior3/5

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

Annotations already declare readOnlyHint=true, and the description is consistent. No additional behavioral details are provided beyond what annotations offer, so the description adds minimal transparency.

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

Conciseness5/5

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

Two sentences, each essential. The first states core function, the second gives a use case. No wasted words.

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

Completeness5/5

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

The output schema exists, so return values are handled. The description covers purpose, parameters, and usage context. For a simple tool with optional parameters, it is complete.

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

Parameters4/5

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

The schema covers all 3 parameters with descriptions. The description adds extra context about outputs (APY snapshots, utilization) beyond the schema, enhancing understanding.

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

Purpose5/5

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

The description clearly states the tool retrieves lending rates for specific protocols and chains, with output details. It distinguishes from siblings like get_yield_rates by being protocol-specific.

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

Usage Guidelines4/5

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

The description provides a concrete use case for stablecoin yield comparisons, implying when to use this tool. It lacks explicit when-not-to-use or alternative suggestions, but the context is clear.

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

get_liquidation_riskGet Liquidation RiskA
Read-only
Inspect

Assess DeFi liquidation risk for up to 50 wallets across Aave v3 and Compound v3 on Ethereum (chain_id=1) or Base (chain_id=8453). Returns per-wallet health factor and tiered risk classification (liquidatable, critical, warning, caution, healthy, no_debt) plus an overall_tier aggregate across protocols, and a summary count for alert dashboards. Per-protocol failures are isolated — a Compound RPC error does not blank the Aave result (and vice versa). View-only (eth_call) against hardcoded protocol addresses; duplicate wallet addresses are silently removed.

ParametersJSON Schema
NameRequiredDescriptionDefault
chain_idNoChain ID (1=Ethereum, 8453=Base)
wallet_addressesYesWallet addresses to assess (max 50; duplicates are silently removed).

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
resultsYes
summaryYes
chain_idYes
data_block_numberYes
Behavior5/5

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

Discloses view-only nature (eth_call), duplicate removal, per-protocol failure isolation, and hardcoded addresses. Adds significant context beyond readOnlyHint annotation.

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

Conciseness5/5

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

Four well-structured sentences, front-loaded with core purpose. No fluff—each sentence adds unique value (scope, returns, edge cases).

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

Completeness5/5

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

Covers multi-chain, multi-protocol, per-wallet and aggregate results, risk tiers, failure isolation, duplicate handling, and view-only nature. Output schema exists, so return details are appropriately left out.

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

Parameters4/5

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

Schema coverage is 100%, but description enriches both parameters: explains chain_id values (1=Ethereum, 8453=Base) and wallet_addresses max 50 with duplicate removal. Also describes return fields (health factor, tier, aggregate).

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

Purpose5/5

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

Clearly states it assesses DeFi liquidation risk across Aave v3 and Compound v3 on Ethereum or Base, returning per-wallet health factor and tiered classification. Differentiates from sibling tools like get_lending_rates or get_defi_positions.

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

Usage Guidelines4/5

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

Explicitly describes when to use (liquidation risk assessment) and adds useful constraints (max 50 wallets, duplicate removal, failure isolation). No explicit when-not but contextually clear.

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

get_protocol_tvlGet Protocol TvlA
Read-only
Inspect

Get Total Value Locked (TVL) data for a DeFi protocol from DeFiLlama. Returns current TVL in USD, 7-day and 30-day percentage change, and a per-chain breakdown. Set include_historical=True to also retrieve a daily TVL series for trend analysis. You can also batch multiple protocols via protocols=[...]. Supports 3,000+ protocols including Aave, Uniswap, Curve, Compound, Lido, MakerDAO, and more. Use the DeFiLlama slug format: 'aave-v3', 'uniswap-v3', 'curve-dex'. Common aliases such as 'spark-protocol' and 'compound' are auto-corrected.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoLookback window in days for the historical series (only used when include_historical=True).
protocolNoDeFiLlama protocol slug (e.g. 'aave-v3', 'uniswap-v3', 'curve-dex'). Use lowercase with hyphens as shown on DeFiLlama. Tip: 'aave' works for the combined Aave TVL; 'aave-v3' for V3 only. Optional when using batch mode via protocols=[...].
protocolsNoOptional batch mode: list of DeFiLlama protocol slugs. When provided, the tool returns one TVL result object per protocol.
include_historicalNoIf true, return a daily historical TVL series for the requested window.
Behavior5/5

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

Annotations show readOnlyHint=true, consistent with a read operation. Description adds rich behavioral details: from DeFiLlama, returns per-chain breakdown, historical series option, batch support, and alias auto-correction. No contradictions.

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

Conciseness5/5

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

Single, well-structured paragraph front-loaded with the main action. Every sentence adds value, including examples and alias details. No redundancy.

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

Completeness5/5

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

Despite no output schema, description fully covers return values (current TVL, changes, chain breakdown, historical). Also addresses batch mode, alias handling, and parameter dependencies. Sufficient for effective tool use.

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

Parameters4/5

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

Schema coverage 100%, baseline 3. Description adds value beyond schema: explains slug format, batch mode interaction, and gives tips (e.g., 'aave' vs 'aave-v3'), and clarifies that 'days' only used when include_historical=True.

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

Purpose5/5

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

Clearly states it gets TVL data for a DeFi protocol from DeFiLlama, specifying outputs (current TVL, 7d/30d change, chain breakdown, optional historical series). Distinguishes from siblings like get_token_price or get_defi_positions by focusing on TVL.

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

Usage Guidelines4/5

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

Provides context for use: mentions batch mode, common aliases, and optional historical data. Does not explicitly state 'when not to use' but gives sufficient guidance and examples.

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

get_token_approvalsGet Token ApprovalsA
Read-only
Inspect

Audit ERC-20 token allowances for a wallet address. Returns all non-zero approvals across curated DeFi protocol spenders (Uniswap, Aave, Compound, 1inch, 0x, OpenSea). Flags unlimited approvals with risk levels: high=unknown spender, medium=trusted protocol, low=bounded amount. Use before swaps to verify approval state, or after security incidents to detect active exploit vectors. Ethereum mainnet and Base only.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokensNoToken contract addresses to check (max 50). Defaults to the platform tracked token list.
chain_idNoChain ID (1=Ethereum, 8453=Base)
spendersNoSpender contract addresses to check (max 20). Defaults to the curated DeFi protocol list.
wallet_addressYesWallet address (0x…)

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteYes
errorNo
chain_idYes
approvalsYes
risk_summaryYes
wallet_addressYes
Behavior5/5

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

Discloses only non-zero approvals, curated DeFi protocols, risk flagging, and supported chains. No contradiction with readOnlyHint annotation.

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

Conciseness5/5

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

Three concise sentences front-loading purpose, then details, then usage. No wasted words.

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

Completeness5/5

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

Covers purpose, usage guidance, supported chains, and return behavior (flags, risk levels). Output schema exists, so return format detail not required.

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

Parameters4/5

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

Schema coverage is 100%, but description adds value by clarifying defaults (platform tracked list, curated spenders) and risk level interpretation beyond parameter descriptions.

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

Purpose5/5

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

Clearly states verb 'audit' and resource 'ERC-20 token allowances for a wallet address'. Distinct from sibling tools like get_erc20_balance or get_token_price.

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

Usage Guidelines5/5

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

Explicitly recommends use before swaps or after security incidents, providing clear context for when to invoke this tool over alternatives.

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

get_token_priceGet Token PriceA
Read-only
Inspect

Get current price, 24h change, market cap, and volume for one or more crypto tokens. Accepts ticker symbols (BTC, ETH, LQTY), full token names (Bitcoin, Liquity, Chainlink), or CoinGecko IDs. Unknown symbols are resolved automatically against the full CoinGecko coin list. Supports batch queries up to 50 tokens. Bare 0x contract addresses are not resolvable by CoinGecko and should be treated as unknown. If get_wallet_portfolio already returned price_usd/value_usd for a held token, reuse that value instead of calling get_token_price again.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokensYesToken symbols or CoinGecko IDs (e.g. ['BTC', 'ETH', 'SOL'])
vs_currencyNoQuote currency (usd, eur, gbp, btc, eth)usd

Output Schema

ParametersJSON Schema
NameRequiredDescription
pricesYes
vs_currencyYes
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the description's read-only nature is clear. The description adds behavioral details: unknown symbols are resolved automatically against the full CoinGecko list, batch queries are supported, and bare 0x contract addresses are not resolvable. 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.

Conciseness5/5

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

The description is concise, with no wasted sentences. It front-loads the core purpose and then adds key details (accepted identifiers, resolution behavior, batch limit, reuse hint). Every sentence adds value.

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

Completeness5/5

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

Given the presence of an output schema (context signals), the description is fully complete. It covers input types, resolution behavior, batch limits, a reuse optimization, and an important constraint (no bare contract addresses). No gaps for an AI agent to use this tool correctly.

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

Parameters5/5

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

The schema coverage is 100%, but the description adds significant extra meaning: it explains that 'tokens' can be ticker symbols, full token names, or CoinGecko IDs, and that unknown symbols are auto-resolved. This goes well beyond the schema's simple 'Token symbols or CoinGecko IDs' description.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Get current price, 24h change, market cap, and volume for one or more crypto tokens.' It specifies accepted identifiers (ticker symbols, full names, CoinGecko IDs) and distinguishes from sibling tools like get_token_price_historical and get_wallet_portfolio.

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

Usage Guidelines4/5

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

The description provides a reuse guideline: if get_wallet_portfolio already returned price for a held token, reuse that value instead of calling this tool. It also mentions batch queries up to 50 tokens and notes that bare contract addresses are not resolvable, guiding proper usage. However, it does not explicitly state when not to use this tool or list alternatives beyond the one reuse hint.

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

get_token_price_historicalGet Token Price HistoricalA
Read-only
Inspect

Get historical price data for crypto tokens over a specified time window (1–365 days). Returns period statistics (start, end, % change, high, low) plus a downsampled daily price series. Use for period comparisons (month-over-month, YTD), trend analysis, and price charts. Prefer over web_search for any time-comparative financial query. Pass stats_only=true when the daily series is unnecessary. price_change_pct is pre-computed and should not be re-derived with calculate.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoLookback window in days (1–365). 1=5-min granularity, 2-90=hourly, 91+=daily.
tokensYesToken symbols or CoinGecko IDs (e.g. ['BTC', 'ETH']). Max 10 per call.
stats_onlyNoIf true, omit the daily price series and return only period stats (start/end/change/high/low) to reduce payload size.
vs_currencyNoQuote currency (usd, eur, gbp, btc, eth). Lowercase 3–10 letters.usd

Output Schema

ParametersJSON Schema
NameRequiredDescription
daysYes
tokensYes
vs_currencyYes
Behavior5/5

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

Discloses behavioral details beyond annotations: time window (1-365 days), granularity variations based on days (5-min, hourly, daily), pre-computed `price_change_pct`, and that daily series is downsampled. No contradiction with `readOnlyHint`.

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

Conciseness5/5

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

Description is concise with 3 sentences plus a brief note. Front-loads purpose, then usage guidance, then parameter tips. Every sentence is informative and non-redundant.

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

Completeness5/5

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

Given the tool's complexity (4 parameters, output schema exists), the description covers all critical aspects: what it does, when to use, parameter nuances, and behavioral traits. No obvious gaps.

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

Parameters5/5

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

Schema coverage is 100% but description adds significant value: explains days granularity, clarifies `stats_only` usage, notes `price_change_pct` pre-computed, and details `vs_currency` pattern. All parameters are well-explained.

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

Purpose5/5

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

The description clearly states it retrieves historical price data for crypto tokens over a specified time window, listing explicit outputs (period statistics and daily price series). It differentiates from siblings like `get_token_price` (presumably current price) and `web_search` by specifying its use for time-comparative financial queries.

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

Usage Guidelines5/5

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

Provides explicit use cases: period comparisons, trend analysis, price charts. Advises preferring this over `web_search` for time-comparative financial queries. Also includes advice on using `stats_only` to reduce payload.

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

get_transactionGet TransactionA
Read-only
Inspect

Get details and receipt for an Ethereum or Base transaction by hash.

ParametersJSON Schema
NameRequiredDescriptionDefault
tx_hashYesTransaction hash (0x…)
chain_idNoChain ID (1=Ethereum, 8453=Base)

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusNo1=success, 0=revert, None=pending
tx_hashYes
chain_idYes
gas_usedYes
value_ethYes
to_addressYes
block_numberYes
from_addressYes
gas_price_gweiYes
Behavior3/5

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

The description aligns with readOnlyHint annotation (read operation). It adds context about supported networks (Ethereum, Base) but doesn't disclose other behaviors like error handling or pending transactions.

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

Conciseness5/5

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

Single sentence, front-loaded with purpose, no unnecessary words.

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

Completeness4/5

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

With output schema present and readOnlyHint, the description is mostly complete. Could mention that receipts require confirmed transactions, but overall sufficient.

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

Parameters3/5

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

Schema description coverage is 100% with clear parameter descriptions. The tool description does not add further parameter info, baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'Get', the resource 'details and receipt', and the scope 'Ethereum or Base transaction by hash'. It distinguishes from siblings like decode_transaction (decodes raw data) and get_block (block-level info).

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives. The description only states what it does, without mentioning context, 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_wallet_portfolioGet Wallet PortfolioA
Read-only
Inspect

Get aggregated token holdings with USD values for a wallet address. Tracks 15+ major tokens on Ethereum (USDC, USDT, DAI, WETH, WBTC, LINK, UNI, AAVE, ARB, OP, LDO, stETH, CRV, SUSHI, MKR) and 9+ on Base. Sorted by USD value. Returns up to 20 holdings. Includes native ETH balance in the holdings list — calling get_eth_balance separately after this is redundant.

ParametersJSON Schema
NameRequiredDescriptionDefault
chain_idNoChain ID (1=Ethereum, 8453=Base)
wallet_addressYesWallet address (0x…)

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
chain_idYes
holdingsYes
fetch_errorsNo
wallet_addressYes
total_value_usdYes
Behavior5/5

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

The description adds substantial behavioral context beyond the readOnlyHint annotation: it lists supported tokens (15+ on Ethereum, 9+ on Base), notes sorting by USD value, return limit of 20, and inclusion of native ETH balance. No contradiction with annotations (readOnlyHint=true is consistent with a read operation).

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

Conciseness5/5

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

Two sentences, no wasted words. Front-loaded with the core purpose, then details. Every sentence earns its place.

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

Completeness5/5

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

Comprehensive for the tool's complexity. Output schema exists, so return values need no explanation. Description covers scope, limitations (20 holdings), and integration notes (ETH balance included). No gaps.

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

Parameters3/5

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

Schema coverage is 100%, so baseline 3. The description does not add significant meaning beyond schema; it mentions chains (Ethereum/Base) but the schema already provides chain_id with defaults. No additional format or constraints beyond what schema provides.

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

Purpose5/5

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

The description uses a specific verb ('Get aggregated token holdings with USD values') and identifies the resource ('wallet address'). It distinguishes from sibling tools by explicitly noting that calling get_eth_balance separately is redundant.

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

Usage Guidelines4/5

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

The description implies usage for aggregated holdings and notes redundancy with get_eth_balance, providing a clear alternative. However, it does not explicitly list all situations where this tool should be avoided (e.g., for single token balances), but the mention of 'calling get_eth_balance separately after this is redundant' gives strong guidance.

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

get_yield_ratesGet Yield RatesA
Read-only
Inspect

Get DeFi yield pool rates from DeFiLlama, covering 1,000+ protocols across all chains. Returns pools sorted by APY with TVL, base rate, reward APY, and 7d/30d mean APY context. Filter by protocol (e.g. 'aave-v3', 'compound-v3'), chain (e.g. 'Ethereum', 'Base'), minimum TVL, and minimum APY. Use this to answer questions like 'Where can I get the best USDC yield?', 'What is Aave's current APY on Ethereum?', or 'Compare Aave vs Compound yields'. Returns up to 50 pools. IMPORTANT: Call ONCE per query. The returned symbol field contains the underlying tokens (e.g. 'USDC', 'ETH-USDC', 'WBTC'); filter on the client side by inspecting symbol rather than re-calling with different arguments. Use min_apy, min_tvl_usd, and symbols_any to prune noise in a single call. Set stable_only=true when you need consistent stablecoin yield screening; this ranks by 30d mean APY first and still returns spot/base/reward components.

ParametersJSON Schema
NameRequiredDescriptionDefault
chainNoFilter by chain name (e.g. 'Ethereum', 'Base', 'Arbitrum'). Case-insensitive. None = all chains.
limitNoMaximum number of pools to return, sorted by APY descending.
min_apyNoExclude pools with APY below this value (%). Default 0 includes all.
protocolsNoFilter by DeFiLlama project slugs (e.g. ['aave-v3', 'compound-v3']). None or empty list = include all protocols.
min_tvl_usdNoExclude pools with TVL below this threshold (USD). Default $1M filters noise.
stable_onlyNoWhen true, return only stablecoin pools and rank by 30d mean APY first to emphasize consistency over short-term spikes.
symbols_anyNoOptional symbol filter. If provided, include pools whose symbol field contains at least one token from this list (case-insensitive). Use held token symbols from get_wallet_portfolio to focus results.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteYes
poolsYes
total_matchingYes
filters_appliedYes
Behavior5/5

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

Discloses sorting by APY, limit of 50 pools, and stable_only ranking by 30d mean APY. Annotations already indicate readOnlyHint=true, and description complements with behavioral details without contradiction.

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

Conciseness4/5

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

Well-structured with clear sections, but slightly verbose. Every sentence adds value; no redundant content.

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

Completeness5/5

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

Given 7 parameters and output schema, description covers all aspects: functionality, parameter usage, optimization, and special modes. References sibling tool for context.

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

Parameters4/5

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

Input schema has 100% coverage, but description adds extra value by explaining real-world usage of parameters (e.g., symbols_any with get_wallet_portfolio) and stable_only behavior.

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

Purpose5/5

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

Clearly states the tool retrieves DeFi yield pool rates from DeFiLlama, covering 1,000+ protocols across all chains. Examples of questions it answers further clarify its purpose and distinguish it from siblings like get_lending_rates.

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

Usage Guidelines5/5

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

Provides explicit guidance on when to use (e.g., comparing yields) and when not to (e.g., avoid re-calling for symbol filtering). Includes optimization tips like using min_apy, min_tvl_usd, symbols_any, and stable_only mode.

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

http_fetchHttp FetchA
Read-only
Inspect

Fetch a web page and extract its main text content. Useful for reading articles, documentation, and web resources. Returns cleaned text, not raw HTML.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to fetch (http or https only)
max_charsNoMaximum characters of extracted content to return

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlYes
titleYes
contentYes
truncatedYes
content_lengthYes
Behavior4/5

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

Annotations already indicate readOnlyHint=true, so the agent knows it's a safe read operation. The description adds value by specifying that it returns cleaned text, not raw HTML, which is beyond the annotation.

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

Conciseness5/5

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

Two sentences, front-loaded with the main action, no unnecessary words. Excellent conciseness.

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

Completeness5/5

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

The description is complete for a simple 2-parameter tool with an output schema. It explains the purpose, output format, and usage context, needing no further elaboration.

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

Parameters3/5

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

Schema coverage is 100% and includes descriptions for both parameters. The description does not add additional meaning 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.

Purpose5/5

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

Description clearly states the tool fetches a web page and extracts main text content, distinguishing it from sibling tools like web_search. The verb 'fetch' and resource 'web page' are specific.

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

Usage Guidelines4/5

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

Description mentions usefulness for reading articles, documentation, and web resources, providing clear context. However, it does not explicitly state when not to use it or mention alternatives (e.g., web_search).

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

read_contractRead ContractA
Read-only
Inspect

Call any view/pure function on a smart contract and return the result. Provide the ABI fragment (JSON array) and function name. State-changing functions (payable/nonpayable) are rejected for safety. Supports historical queries via block_identifier (block number or 'latest').

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNoDEPRECATED: Positional arguments for the function call. Use 'args_json' for complex objects or Gemini compatibility.
chain_idNoChain ID (1=Ethereum, 8453=Base)
args_jsonNoOptional JSON array string of positional arguments for the function call. Use this instead of 'args' for complex types or when calling via Google/Gemini.
abi_fragmentYesJSON array containing the ABI for the function to call. Supports both modern (stateMutability: view/pure) and legacy (constant: true) formats. Only read-only functions are allowed.
function_nameYesName of the function to call
block_identifierNoBlock number, block hash, or 'latest'/'earliest'/'pending'latest
contract_addressYesContract address (0x…)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
chain_idYes
function_nameYes
block_identifierYes
contract_addressYes
Behavior4/5

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

Annotations already indicate readOnlyHint=true, and the description reinforces that only view/pure functions are allowed, rejecting state-changing ones for safety. This adds behavioral context beyond the annotation.

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

Conciseness5/5

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

The description is two sentences, front-loading the core purpose and then adding key details. Every sentence provides essential information without redundancy.

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

Completeness4/5

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

Given 7 parameters and an existing output schema, the description covers main usage, safety, and historical queries. It could briefly mention that results are returned in standard format, but the output schema likely handles that.

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

Parameters4/5

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

With 100% schema coverage, descriptions already exist for each parameter. The tool description adds value by recommending args_json for complex types and explaining that abi_fragment supports legacy format. It also clarifies block_identifier options beyond the schema.

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

Purpose5/5

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

The description clearly states the tool calls any view/pure function on a smart contract, distinguishes from state-changing functions, and specifies required inputs (ABI fragment, function name). This differentiates it from siblings that handle specific token or balance queries.

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

Usage Guidelines4/5

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

The description explicitly says state-changing functions are rejected, guiding when not to use. It mentions historical queries via block_identifier. It lacks explicit comparison to sibling tools for standard reads, but the generic nature of the tool makes the use case clear.

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

resolve_ensResolve EnsA
Read-only
Inspect

Resolve an ENS name (e.g. 'vitalik.eth') to an Ethereum address, or pass an Ethereum address for reverse lookup to its primary ENS name. Also returns the avatar text record when available. Mainnet only.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesENS name (e.g. 'vitalik.eth') to resolve to an address, or an Ethereum address (0x…) for reverse lookup to a primary ENS name.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameYes
errorNo
avatarNo
addressYes
resolvedYes
Behavior4/5

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

The description adds behavioral context beyond the readOnlyHint annotation, such as the Mainnet-only restriction and the return of avatar text records. It aligns with the annotation and provides useful information for the agent.

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

Conciseness5/5

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

The description is two sentences long, front-loading the core purpose and adding important constraints. Every word contributes value, and there is no redundancy or unnecessary detail.

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

Completeness5/5

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

Given the presence of an output schema and the simplicity of the tool, the description covers all essential aspects: forward and reverse resolution, avatar records, and network restriction. It is complete for the agent to select and invoke the tool correctly.

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

Parameters3/5

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

The schema has 100% coverage for the single parameter, and the description largely restates its definition (ENS name or address). It adds the Mainnet-only constraint, but that is not parameter-specific. The description does not significantly extend the schema's parameter documentation, so a baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool resolves ENS names to Ethereum addresses, performs reverse lookups from addresses to ENS names, and returns avatar text records. It specifies 'Mainnet only,' which distinguishes it from any potential testnet variants. The purpose is specific and distinct from sibling tools.

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

Usage Guidelines4/5

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

The description explains both forward and reverse resolution use cases, providing clear context for when to use the tool. It does not explicitly list alternatives or when not to use it, but given the sibling tools, no alternative ENS resolution exists, so the guidance is sufficient.

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

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources