Skip to main content
Glama
0xReisearch

REI Crypto MCP Server

by 0xReisearch

REI Crypto MCP Server - Beta

FastMCP implementation of the in-house MCP servers used by Units of the Rei Network. You can use them without providing API keys at app.reisearch.box or you can use them with other MCP clients deploying them yourself.

Everything is to be considered still in beta. Expect things to be added or changed with no warnings.

Current MCP servers:

  • DefiLlama Pro API

  • CoinGecko Pro API

  • Arkham Intelligence API

  • Elfa AI API

  • Codex API

Codex at the moment is just used for searching a contract address from the name. Deeper implementation will come in the near future. Codex uses GraphQL for it's query system. Edit the query to hardcode some parameters in case you need stricter filtering.

Related MCP server: x402-api

Prerequisites

  • Python 3.12

  • uv package manager

  • API keys for the services you plan to use

Installation

  1. Clone the repository:

git clone https://github.com/0xReisearch/crypto-mcp-beta
cd crypto-mcp-beta
  1. Install uv (if not already installed):

curl -LsSf https://astral.sh/uv/install.sh | sh
  1. Create and activate a virtual environment with uv:

uv venv
source .venv/bin/activate  # On Unix/macOS
# or
.venv\Scripts\activate  # On Windows
  1. Install dependencies from pyproject.toml:

uv pip install .
  1. Set up your environment variables:

cp .env_example .env

Edit .env with your API keys:

ARKHAM_API_KEY=<YOUR ARKHAM_API_KEY>
CG_API_KEY=<YOUR_CG_API_KEY>
DEFILLAMA_API_KEY=<YOUR_DEFILLAMA_API_KEY>
CODEX_API_KEY=<YOUR_CODEX_API_KEY>
ELFA_API_KEY=<YOUR_ELFA_API_KEY>

Running the Servers

You can run each server individually:

# Run DefiLlama server
uv run defillama_server.py

# Run CoinGecko server
uv run cg_server.py

# Run Arkham server
uv run arkham_server.py

# Run Codex server
uv run codex_server.py

# Run Elfa AI server
uv run elfa_server.py

Configuring Claude Desktop

To use these servers with Claude Desktop, you need to configure the claude_desktop_config.json file. This file is typically located in:

  • Windows: %APPDATA%/claude-desktop/claude_desktop_config.json

  • macOS: ~/Library/Application Support/claude-desktop/claude_desktop_config.json

  • Linux: ~/.config/claude-desktop/claude_desktop_config.json

Example configuration:

{
    "mcpServers": {
        "arkham": {
            "command": "ssh",
            "args": [
                "user@your-host",
                "cd /path/to/crypto_mcp && /path/to/uv run arkham_server.py"
            ]
        },
        "coingecko": {
            "command": "ssh",
            "args": [
                "user@your-host",
                "cd /path/to/crypto_mcp && /path/to/uv run cg_server.py"
            ]
        },
        "defillama": {
            "command": "ssh",
            "args": [
                "user@your-host",
                "cd /path/to/crypto_mcp && /path/to/uv run defillama_server.py"
            ]
        },
        "codex": {
            "command": "ssh",
            "args": [
                "user@your-host",
                "cd /path/to/crypto_mcp && /path/to/uv run codex_server.py"
            ]
        },
        "elfa": {
            "command": "ssh",
            "args": [
                "user@your-host",
                "cd /path/to/crypto_mcp && /path/to/uv run elfa_server.py"
            ]
        }
    }
}

Replace the following:

  • user@your-host: Your SSH username and host

  • /path/to/crypto_mcp: The absolute path to where you cloned this repository

  • /path/to/uv: The absolute path to your uv installation (usually in ~/.local/bin/uv on Unix systems)

API Documentation

Feedback

If you encounter any issues or have suggestions for improvements:

  1. For bug reports or feature requests, please open an issue in this repository

  2. For general feedback or questions, you can leave a comment in the repository discussions

Made with ❤️ by Rei Network

Available Tools

61 tools
get_active_usersB

GET /api/activeUsers

Get active users on our chains and protocols pages.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It only states what data is retrieved ('active users') without mentioning response format, pagination, rate limits, authentication requirements, or error conditions. For a data retrieval tool with zero annotation coverage, this leaves significant 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.

Conciseness3/5

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

The description is brief (two sentences) but includes redundant information - the HTTP method 'GET' is already implied by the tool name starting with 'get_'. The second sentence is useful but could be more efficiently integrated. The structure is front-loaded with the API endpoint, which is less helpful than starting with the tool's purpose.

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

Completeness3/5

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

Given the tool has no parameters, an output schema exists, and it's a simple data retrieval operation, the description is minimally adequate. However, with no annotations and a generic 'active users' concept, more context about what constitutes 'active' or the data format would be helpful. The existence of an output schema reduces but doesn't eliminate the need for some behavioral 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?

The tool has 0 parameters with 100% schema description coverage, so the schema fully documents the absence of parameters. The description doesn't need to add parameter information, and it appropriately doesn't mention any parameters. This meets the baseline expectation for parameterless tools.

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

Purpose4/5

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

The description clearly states the tool's purpose with a specific verb ('Get') and resource ('active users'), and specifies the scope ('on our chains and protocols pages'). It doesn't explicitly differentiate from sibling tools, but the specificity of 'active users' makes its purpose distinct from other data retrieval tools in the list.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, exclusions, or comparison with sibling tools like 'get_user_data' or 'get_protocols' that might overlap in user-related data retrieval.

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

get_batch_historical_pricesB

GET /coins/batchHistorical

Get historical prices for multiple tokens at multiple different timestamps.

Parameters:
    coins: dict where keys are coins in format {chain}:{address} and values are arrays of timestamps
    search_width: time range on either side to find price data (default: '6h')
ParametersJSON Schema
NameRequiredDescriptionDefault
coinsYes
search_widthNo6h

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool is a GET operation (implying read-only) and describes the basic functionality, but lacks critical details like rate limits, authentication requirements, error handling, or response format. For a tool with no annotations, this is insufficient.

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 efficiently structured: a clear purpose statement followed by parameter explanations. Every sentence adds value without redundancy. It's appropriately sized and front-loaded with the core functionality.

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

Completeness3/5

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

Given the tool's complexity (2 parameters with nested objects), no annotations, and an output schema (which reduces the need to describe return values), the description is moderately complete. It covers parameters well but lacks behavioral context like rate limits or error handling. The presence of an output schema helps, but more disclosure would improve completeness.

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 description adds significant meaning beyond the input schema, which has 0% description coverage. It explains the 'coins' parameter structure ('dict where keys are coins in format {chain}:{address} and values are arrays of timestamps') and clarifies the 'search_width' default and purpose. This compensates well for the schema's lack of documentation.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get historical prices for multiple tokens at multiple different timestamps.' It specifies the verb ('Get'), resource ('historical prices'), and scope ('multiple tokens at multiple different timestamps'). However, it doesn't explicitly differentiate from sibling tools like 'get_historical_prices' or 'get_current_prices', which would be needed for a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_historical_prices' (which appears to fetch prices for a single token) or 'get_current_prices', nor does it specify prerequisites or exclusions. Usage context is implied but not explicit.

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

get_bridge_day_statsC

GET /bridgedaystats/{timestamp}/{chain}

Get a 24hr token and address volume breakdown for a bridge.

Parameters:
    timestamp: Unix timestamp for the 24hr period starting at 00:00 UTC
    chain: chain slug (e.g., 'Ethereum')
    id: bridge ID (optional, can be retrieved from /bridges)
ParametersJSON Schema
NameRequiredDescriptionDefault
timestampYes
chainYes
idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It states the tool is a GET operation, implying it is read-only, but does not confirm this or address other aspects like rate limits, authentication needs, error handling, or response format. The description lacks details on what the breakdown includes (e.g., token types, address categories) or any constraints, making it insufficient for a tool with no annotation support.

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 appropriately sized and front-loaded, starting with the purpose in the first sentence. The parameter explanations are concise and directly relevant. However, the inclusion of 'GET /bridgedaystats/{timestamp}/{chain}' is somewhat redundant with the tool name and could be omitted for better flow, slightly reducing efficiency.

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

Completeness3/5

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

Given that there is an output schema (as per context signals), the description does not need to explain return values. However, for a tool with 3 parameters, 0% schema description coverage, and no annotations, the description is moderately complete: it covers the purpose and parameter semantics but lacks behavioral details like rate limits or error cases. It is adequate but has clear gaps in guiding the agent on usage and transparency.

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 0%, so the description must compensate. It adds meaning by explaining that 'timestamp' is a 'Unix timestamp for the 24hr period starting at 00:00 UTC', 'chain' is a 'chain slug (e.g., 'Ethereum')', and 'id' is a 'bridge ID (optional, can be retrieved from /bridges)'. This clarifies the purpose and format of parameters beyond the basic schema, but it does not provide examples for 'chain' beyond one slug or detail how 'timestamp' aligns with UTC, leaving some gaps.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get a 24hr token and address volume breakdown for a bridge.' It specifies the verb ('Get'), resource ('24hr token and address volume breakdown'), and scope ('for a bridge'), making it easy to understand. However, it does not explicitly differentiate from sibling tools like 'get_bridge_volume' or 'get_bridge_transactions', which might offer related data, so it falls short of a perfect score.

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

Usage Guidelines2/5

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

The description provides minimal usage guidance. It mentions that the 'id' parameter is optional and can be retrieved from '/bridges', which hints at a prerequisite, but it does not explain when to use this tool versus alternatives like 'get_bridge_volume' or 'get_bridge_transactions'. There is no explicit context on when or when not to use it, leaving the agent to infer usage based on the purpose alone.

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

get_bridge_detailsB

GET /bridge/{id}

Get summary of bridge volume and volume breakdown by chain.

Parameters:
    id: bridge ID (can be retrieved from /bridges)
ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states this is a GET operation, implying it's likely read-only, but doesn't confirm if it's safe or has any side effects. It also doesn't mention rate limits, authentication needs, or what the output looks like (though an output schema exists, which helps). For a tool with no annotations, this is a significant gap in 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?

The description is concise and well-structured: it starts with the HTTP method and endpoint, states the purpose clearly, and lists parameters with brief explanations. Every sentence earns its place, with no redundant information, making it easy to parse quickly.

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 low complexity (one parameter) and the presence of an output schema (which handles return values), the description is reasonably complete. It covers the purpose, parameter semantics, and a hint on usage. However, it lacks behavioral details like safety or rate limits, which would be beneficial since no annotations are provided, keeping it from a perfect score.

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 description adds meaningful context for the single parameter: 'id: bridge ID (can be retrieved from /bridges)'. This clarifies what 'id' represents and how to obtain it, which is valuable since the input schema has 0% description coverage (only providing type and title). With one parameter, this compensation is sufficient to score highly, though it doesn't detail format constraints beyond being an integer.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get summary of bridge volume and volume breakdown by chain.' This specifies the verb ('Get'), resource ('bridge'), and what information is retrieved ('summary of bridge volume and volume breakdown by chain'), making it easy to understand. However, it doesn't explicitly differentiate from sibling tools like 'get_bridge_volume' or 'get_bridge_day_stats', which might offer similar or overlapping data.

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

Usage Guidelines2/5

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

The description provides minimal usage guidance: it mentions that the 'id' parameter 'can be retrieved from /bridges', which hints at a prerequisite but doesn't specify when to use this tool versus alternatives. There's no explicit guidance on when to choose this over sibling tools like 'get_bridge_volume' or 'get_bridge_transactions', leaving the agent to infer based on the purpose alone.

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

get_bridgesB

GET /bridges

List all bridges along with summaries of recent bridge volumes.

Parameters:
    include_chains: set whether to include current previous day volume breakdown by chain
ParametersJSON Schema
NameRequiredDescriptionDefault
include_chainsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It mentions 'List all bridges' but doesn't disclose behavioral traits such as pagination, rate limits, authentication needs, or what 'recent' means temporally. The description is minimal and lacks crucial operational details 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.

Conciseness4/5

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

The description is appropriately sized and front-loaded, starting with the core purpose followed by parameter details. Every sentence adds value without redundancy. However, it could be slightly more structured by separating the purpose and parameters more clearly.

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

Completeness3/5

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

Given the tool's simplicity (1 parameter, no annotations, but with an output schema), the description is moderately complete. It covers the purpose and parameter semantics adequately, but lacks behavioral transparency and usage guidelines. The output schema likely handles return values, so the description doesn't need to explain those.

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 description adds meaningful context for the single parameter 'include_chains', explaining it as 'set whether to include current previous day volume breakdown by chain'. This clarifies the parameter's purpose beyond the schema's basic title and type, compensating for the 0% schema description coverage. No other parameters exist, so this is sufficient.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'List all bridges along with summaries of recent bridge volumes.' It specifies the verb ('List'), resource ('bridges'), and scope ('summaries of recent bridge volumes'), which distinguishes it from siblings like 'get_bridge_details' or 'get_bridge_transactions'. However, it doesn't explicitly differentiate from 'get_bridge_volume', which might overlap in functionality.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention siblings like 'get_bridge_details' for detailed info or 'get_bridge_volume' for volume-specific data, nor does it specify prerequisites or exclusions. Usage is implied by the purpose but lacks explicit context.

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

get_bridge_transactionsB

GET /transactions/{id}

Get all transactions for a bridge within a date range.

Parameters:
    id: bridge ID (can be retrieved from /bridges)
    start_timestamp: start timestamp (Unix Timestamp) for date range
    end_timestamp: end timestamp (Unix Timestamp) for date range
    source_chain: filter by source chain (e.g., 'Polygon')
    address: filter by address in format {chain}:{address}
    limit: limit number of transactions returned (max 6000)
ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
start_timestampNo
end_timestampNo
source_chainNo
addressNo
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the 'limit' parameter has a maximum of 6000, which is useful context. However, it doesn't describe other important behavioral aspects like whether this is a read-only operation, potential rate limits, authentication requirements, pagination behavior, or error conditions. For a tool with 6 parameters and no annotations, this is a significant gap.

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 well-structured and appropriately sized. It starts with the HTTP method and endpoint, states the purpose clearly, then lists all parameters with helpful explanations. Every sentence earns its place, though it could be slightly more concise by combining some parameter explanations.

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

Completeness3/5

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

Given that there's an output schema (which handles return values) and the description provides good parameter semantics, the description is reasonably complete. However, for a tool with 6 parameters and no annotations, it should ideally include more behavioral context about how the tool actually works, error handling, and performance characteristics to be fully complete.

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 description provides excellent parameter semantics beyond the input schema. With 0% schema description coverage, the description fully compensates by explaining all 6 parameters: what 'id' represents and where to get it, that timestamps are Unix format, examples for 'source_chain' and 'address' formats, and the maximum value for 'limit'. This adds substantial value beyond the bare schema.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get all transactions for a bridge within a date range.' This specifies the verb ('Get'), resource ('transactions'), and scope ('bridge within a date range'). However, it doesn't explicitly differentiate from sibling tools like 'get_bridge_day_stats' or 'get_bridge_volume', which might provide related but different data.

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

Usage Guidelines2/5

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

The description provides minimal usage guidance. It mentions that the 'id' parameter can be retrieved from '/bridges', but doesn't specify when to use this tool versus alternatives like 'get_bridge_day_stats' or 'get_bridge_volume'. No explicit when-not-to-use or prerequisite information is provided.

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

get_bridge_volumeB

GET /bridgevolume/{chain}

Get historical volumes for a bridge, chain, or bridge on a particular chain.

Parameters:
    chain: chain slug (e.g., 'Ethereum') or 'all' for volume on all chains
    id: bridge ID (optional, can be retrieved from /bridges)
ParametersJSON Schema
NameRequiredDescriptionDefault
chainYes
idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool retrieves historical volumes, implying a read-only operation, but doesn't clarify aspects like rate limits, authentication needs, error handling, or data freshness. While it hints at the scope ('historical volumes'), it lacks details on time ranges, data formats, or pagination, which are critical for an agent to use it effectively.

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 appropriately sized and front-loaded, starting with the core purpose in the first sentence. The parameter explanations are concise and directly relevant. There's no unnecessary fluff, and the structure (purpose followed by parameters) is logical. However, it could be slightly more polished by integrating the parameter details more seamlessly into the narrative.

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

Completeness3/5

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

Given the tool's moderate complexity (2 parameters, no annotations, but with an output schema), the description is partially complete. It covers the purpose and parameters well, but lacks behavioral context like rate limits or error handling. The presence of an output schema means the description doesn't need to explain return values, but it should still address usage nuances and potential constraints to be fully adequate.

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 description adds significant meaning beyond the input schema, which has 0% schema description coverage. It explains that 'chain' is a 'chain slug (e.g., 'Ethereum') or 'all' for volume on all chains' and that 'id' is an 'optional' 'bridge ID' that 'can be retrieved from /bridges'. This clarifies the parameter roles, formats, and relationships, compensating well for the schema's lack of descriptions.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get historical volumes for a bridge, chain, or bridge on a particular chain.' It specifies the verb ('Get historical volumes') and resource ('bridge, chain, or bridge on a particular chain'), making the intent unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'get_bridge_day_stats' or 'get_bridge_transactions', which might also involve bridge-related data retrieval.

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

Usage Guidelines2/5

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

The description provides minimal guidance on when to use this tool. It mentions that 'id' is optional and can be retrieved from '/bridges', but offers no explicit advice on when to use this tool versus alternatives like 'get_bridge_day_stats' or 'get_bridge_transactions'. There's no mention of specific use cases, prerequisites, or exclusions, leaving the agent to infer usage from the purpose alone.

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

get_categoriesB

GET /api/categories

Overview of all categories across all protocols.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states this is a GET operation (implying read-only) and mentions 'overview' but doesn't describe response format, pagination, rate limits, authentication requirements, or error conditions. For a data retrieval tool with zero annotation coverage, this leaves significant 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.

Conciseness3/5

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

The description is brief (two sentences) but includes redundant information - the HTTP method 'GET /api/categories' could be inferred from the tool name. The second sentence provides the core value. While concise, the structure could be more front-loaded with the essential purpose rather than leading with implementation details.

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

Completeness3/5

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

Given the tool has 0 parameters, 100% schema coverage, and an output schema exists, the description is minimally adequate. However, for a data retrieval tool with no annotations, it should ideally describe what 'categories' means in this context, the response structure, or any limitations. The existence of an output schema reduces but doesn't eliminate the need for contextual explanation.

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

Parameters4/5

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

The tool has 0 parameters with 100% schema description coverage, so the schema already fully documents the parameter situation. The description appropriately doesn't discuss parameters since none exist, which is correct. Baseline for 0 parameters is 4.

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

Purpose4/5

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

The description clearly states the tool's purpose as 'Overview of all categories across all protocols' which is a specific verb+resource combination. It distinguishes itself from siblings by focusing on categories rather than users, prices, bridges, or other data types. However, it doesn't explicitly contrast with potential similar tools (though none appear in the sibling list).

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, timing considerations, or how it differs from other data retrieval tools in the sibling list. The agent must infer usage from the title 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_chain_assetsB

GET /api/chainAssets

Get assets of all chains.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It states it's a GET operation, implying read-only behavior, but lacks details on permissions, rate limits, pagination, or response format. For a tool with no annotations, this is a significant gap in behavioral disclosure.

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

Conciseness3/5

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

The description is brief and front-loaded with the core purpose, but includes redundant information (the API endpoint 'GET /api/chainAssets') that doesn't add value for an AI agent. It could be more streamlined by focusing solely on the functional intent.

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

Completeness3/5

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

Given no annotations, 0 parameters, and an output schema exists, the description is minimally adequate. It states the purpose but lacks behavioral context (e.g., what 'assets' entail, data freshness). The output schema likely covers return values, so completeness is borderline but has clear 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?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add param info, which is acceptable here. Baseline is 4 for zero parameters, as it doesn't need to compensate for any gaps.

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

Purpose4/5

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

The description clearly states the verb ('Get') and resource ('assets of all chains'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_chains' or 'get_historical_chain_tvl', which might also relate to chain data, so it doesn't reach the highest score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. With many sibling tools related to chains and assets (e.g., 'get_chains', 'get_historical_chain_tvl'), there's no indication of context, prerequisites, or exclusions, leaving usage ambiguous.

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

get_chainsB

GET /api/v2/chains

Get current TVL of all chains.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action ('Get') and data type ('current TVL of all chains'), but lacks details on permissions, rate limits, data freshness, pagination, or error handling. For a tool with zero annotation coverage, this is a significant gap in transparency about how the tool behaves in practice.

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 extremely concise and front-loaded: it states the HTTP method and endpoint ('GET /api/v2/chains') followed by the core purpose in a single sentence. There is zero waste or redundancy, making it easy to parse quickly. Every sentence earns its place by providing essential information.

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

Completeness3/5

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

Given the tool has no parameters, an output schema exists, and the purpose is simple (fetching current TVL), the description is minimally adequate. However, with no annotations and sibling tools that might overlap (e.g., historical TVL tools), it lacks context on data scope, freshness, or differentiation. The output schema will handle return values, but the description doesn't fully compensate for the missing behavioral 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?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate here. A baseline score of 4 is given because the tool has no parameters, and the description correctly avoids unnecessary parameter explanations.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get current TVL of all chains.' It specifies the verb ('Get') and resource ('TVL of all chains'), making the function unambiguous. However, it doesn't differentiate this from sibling tools like 'get_historical_chain_tvl' or 'get_historical_chain_tvl_by_chain', which likely provide similar TVL data but with different scopes or timeframes.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It mentions 'current TVL' but doesn't clarify if this is real-time data, daily snapshots, or how it differs from historical TVL tools in the sibling list. There are no explicit when/when-not instructions or named alternatives, leaving usage context implied at best.

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

get_closest_blockC

GET /coins/block/{chain}/{timestamp}

Get the closest block to a timestamp.

Parameters:
    chain: chain identifier
    timestamp: UNIX timestamp to find closest block for
ParametersJSON Schema
NameRequiredDescriptionDefault
chainYes
timestampYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It states the action ('Get the closest block') but doesn't explain what 'closest' means (e.g., before, after, or nearest in time), potential errors (e.g., invalid chain or timestamp), rate limits, or authentication needs. This is insufficient for a tool with no annotation coverage.

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 appropriately sized and front-loaded: the first sentence states the purpose clearly, followed by a URL and parameter list. There's no wasted text, but the structure could be slightly improved by integrating the URL more seamlessly. Overall, it's efficient.

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

Completeness3/5

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

Given the tool's moderate complexity (2 required parameters) and the presence of an output schema, the description is partially complete. It covers the basic purpose and parameters but lacks behavioral context and usage guidelines. The output schema likely handles return values, so the description doesn't need to explain those, but it should address other gaps like error handling or constraints.

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 0%, but the description compensates by listing parameters with brief explanations: 'chain: chain identifier' and 'timestamp: UNIX timestamp to find closest block for.' This adds meaning beyond the schema's generic titles. However, it doesn't detail valid chain values or timestamp constraints, leaving gaps. With 0% coverage, baseline is lower, but the description provides some value.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get the closest block to a timestamp.' It specifies the verb ('Get') and resource ('closest block'), and the URL path '/coins/block/{chain}/{timestamp}' reinforces this. However, it doesn't differentiate from sibling tools, which appear unrelated (e.g., get_active_users, get_historical_prices), so it's not a 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It lacks context about prerequisites, such as valid chain identifiers or timestamp ranges, and doesn't mention any sibling tools that might serve similar purposes. This leaves the agent without usage direction.

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

get_current_pricesB

GET /coins/prices/current/{coins}

Get current prices of tokens by contract address.

Parameters:
    coins: comma-separated tokens in format {chain}:{address} (e.g., 'ethereum:0xdF574c24545E5FfEcb9a659c229253D4111d87e1,coingecko:ethereum')
    search_width: time range on either side to find price data (default: '6h')
ParametersJSON Schema
NameRequiredDescriptionDefault
coinsYes
search_widthNo6h

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the API endpoint ('GET /coins/prices/current/{coins}') and a default parameter value, but doesn't describe error handling, rate limits, authentication needs, response format, or what happens with invalid inputs. For a tool with no annotations, this leaves significant 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.

Conciseness4/5

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

The description is appropriately sized and front-loaded: the first sentence states the purpose clearly, followed by parameter details. There's no wasted text, and the structure (purpose then parameters) is logical. It could be slightly more concise by integrating the endpoint into the purpose statement, but it's efficient overall.

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

Completeness3/5

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

Given the tool's moderate complexity (2 parameters, no annotations, but with an output schema), the description is partially complete. It covers the purpose and parameters well, but lacks behavioral context (e.g., error cases, rate limits). The presence of an output schema means return values don't need explanation, but other operational aspects are missing, making it adequate but with clear 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?

The description adds substantial meaning beyond the input schema, which has 0% description coverage. It explains the 'coins' parameter format ('comma-separated tokens in format {chain}:{address}') with an example, and clarifies 'search_width' as 'time range on either side to find price data' with a default. This compensates well for the schema's lack of documentation, though it doesn't detail all possible values or constraints.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get current prices of tokens by contract address.' It specifies the verb ('Get'), resource ('current prices of tokens'), and mechanism ('by contract address'). However, it doesn't explicitly differentiate from sibling tools like 'get_historical_prices' or 'get_stablecoin_prices', which is why it doesn't earn a 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools (e.g., 'get_historical_prices' for historical data, 'get_stablecoin_prices' for stablecoins) or any prerequisites. The only implied context is the need for current token prices, but no explicit usage instructions are given.

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

get_derivatives_overviewB

GET /api/overview/derivatives

Lists all derivatives along summaries of their volumes filtering by chain.

Parameters:
    exclude_total_data_chart: true to exclude aggregated chart from response
    exclude_total_data_chart_breakdown: true to exclude broken down chart from response
ParametersJSON Schema
NameRequiredDescriptionDefault
exclude_total_data_chartNo
exclude_total_data_chart_breakdownNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. While it mentions the tool lists derivatives with volume summaries filtered by chain, it doesn't describe important behavioral aspects: whether this is a read-only operation, what permissions might be needed, how results are formatted, whether there are rate limits, or what the output contains beyond the chart exclusion parameters. The description provides minimal 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.

Conciseness4/5

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

The description is appropriately concise with three sentences that each serve a purpose: stating the endpoint, explaining the tool's function, and detailing parameters. It's front-loaded with the core functionality. While efficient, the inclusion of the endpoint path 'GET /api/overview/derivatives' might be slightly redundant if the tool name already conveys this information.

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

Completeness3/5

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

Given that there's an output schema (which reduces the need to describe return values), 0 required parameters, and only 2 boolean parameters, the description is reasonably complete for this level of complexity. However, as a data retrieval tool with no annotations, it should ideally mention that this is a read-only operation and provide more context about the filtering mechanism ('by chain'). The parameter explanations are strong, but overall behavioral context is lacking.

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 description provides excellent parameter semantics despite 0% schema description coverage. It clearly explains both parameters: 'exclude_total_data_chart: true to exclude aggregated chart from response' and 'exclude_total_data_chart_breakdown: true to exclude broken down chart from response.' This adds crucial meaning beyond the schema's bare boolean types and titles, explaining what these parameters actually control in the response.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Lists all derivatives along summaries of their volumes filtering by chain.' This specifies the verb (lists), resource (derivatives), and scope (summaries of volumes filtered by chain). However, it doesn't explicitly differentiate from sibling tools like 'get_derivatives_summary' or 'get_options_overview', which appear to be related derivatives/options tools.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'get_derivatives_summary' and 'get_options_overview' available, there's no indication of how this tool differs or when it should be preferred. The mention of 'filtering by chain' might imply some context, but no explicit usage instructions are provided.

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

get_derivatives_summaryB

GET /api/summary/derivatives/{protocol}

Volume Details about a specific perp protocol.

Parameters:
    protocol: protocol slug (e.g., 'hyperliquid')
    exclude_total_data_chart: true to exclude aggregated chart from response
    exclude_total_data_chart_breakdown: true to exclude broken down chart from response
ParametersJSON Schema
NameRequiredDescriptionDefault
protocolYes
exclude_total_data_chartNo
exclude_total_data_chart_breakdownNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the tool is a GET operation and describes some response exclusions, but does not cover critical aspects like rate limits, authentication needs, error handling, or the structure of the returned volume details. For a tool with no annotations, this leaves significant gaps in understanding its behavior.

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 appropriately sized and front-loaded, starting with the purpose and followed by parameter details. It uses bullet points for parameters, making it easy to scan. However, the first sentence could be more polished, and some redundancy exists (e.g., repeating 'total data chart'), but overall it is efficient with minimal waste.

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

Completeness3/5

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

Given the tool's complexity (3 parameters, no annotations, but with an output schema), the description is partially complete. It covers the purpose and parameters adequately, but lacks behavioral context and usage guidelines. The presence of an output schema means return values are documented elsewhere, so the description's focus on parameters is acceptable, but overall completeness is moderate due to missing operational details.

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 description adds meaningful semantics beyond the input schema, which has 0% description coverage. It explains that 'protocol' is a 'slug (e.g., 'hyperliquid')' and clarifies the boolean parameters as exclusions for specific chart types. This compensates well for the schema's lack of descriptions, though it could provide more context on protocol options or chart details.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Volume Details about a specific perp protocol.' It specifies the verb ('GET') and resource ('derivatives summary'), but does not explicitly differentiate it from sibling tools like 'get_derivatives_overview' or 'get_options_summary', which might have overlapping scopes. The purpose is clear but lacks sibling distinction.

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. The description does not mention any context, prerequisites, or exclusions, such as when to choose this over 'get_derivatives_overview' or other summary tools. Usage is implied only by the parameter details, with no explicit guidelines.

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

get_dex_overviewB

GET /api/overview/dexs

List all dexs along with summaries of their volumes and dataType history data.

Parameters:
    exclude_total_data_chart: true to exclude aggregated chart from response
    exclude_total_data_chart_breakdown: true to exclude broken down chart from response
ParametersJSON Schema
NameRequiredDescriptionDefault
exclude_total_data_chartNo
exclude_total_data_chart_breakdownNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states this is a 'GET' operation, implying read-only behavior, but doesn't clarify aspects like authentication requirements, rate limits, response format, or pagination. For a tool with no annotations, this is a significant gap in transparency.

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

Conciseness4/5

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

The description is appropriately sized and front-loaded, starting with the HTTP method and purpose, followed by parameter details. Every sentence adds value, with no redundant information. It could be slightly more structured with bullet points for parameters, but it remains efficient and clear.

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

Completeness3/5

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

Given that an output schema exists, the description doesn't need to explain return values. However, with no annotations and 0% schema description coverage, it partially compensates with parameter semantics but lacks behavioral details like authentication or rate limits. For a tool with two parameters and sibling alternatives, this is adequate but leaves gaps in usage 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?

Schema description coverage is 0%, so the description must compensate. It provides clear semantics for both parameters: 'exclude_total_data_chart: true to exclude aggregated chart from response' and 'exclude_total_data_chart_breakdown: true to exclude broken down chart from response.' This adds meaningful context beyond the schema's titles and types, though it doesn't cover default values or other nuances.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'List all dexs along with summaries of their volumes and dataType history data.' It specifies the verb ('List'), resource ('dexs'), and what information is included ('summaries of their volumes and dataType history data'). However, it doesn't explicitly differentiate from sibling tools like 'get_dex_overview_by_chain' or 'get_dex_summary,' which would require a 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_dex_overview_by_chain' or 'get_dex_summary,' nor does it specify any prerequisites or contexts for usage. This leaves the agent without clear direction on tool selection.

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

get_dex_overview_by_chainB

GET /api/overview/dexs/{chain}

List all dexs along with summaries of their volumes and dataType history data filtering by chain.

Parameters:
    chain: chain name (e.g., 'ethereum')
    exclude_total_data_chart: true to exclude aggregated chart from response
    exclude_total_data_chart_breakdown: true to exclude broken down chart from response
ParametersJSON Schema
NameRequiredDescriptionDefault
chainYes
exclude_total_data_chartNo
exclude_total_data_chart_breakdownNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It describes a read operation ('List') and mentions data filtering, but lacks critical details like whether this is a safe read-only operation, potential rate limits, authentication requirements, or what the output looks like (though an output schema exists). For a tool with no annotations, this leaves significant 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.

Conciseness4/5

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

The description is appropriately sized and front-loaded, starting with a clear purpose statement followed by parameter details. Every sentence adds value, with no redundant information. However, the formatting could be slightly improved for readability (e.g., bullet points for parameters), but it remains efficient and well-structured.

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

Completeness3/5

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

Given the tool's moderate complexity (3 parameters, 1 required), no annotations, and the presence of an output schema, the description is minimally adequate. It covers the purpose and parameters but lacks behavioral context and usage guidelines. The output schema mitigates the need to explain return values, but more detail on tool behavior would improve completeness.

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 description adds meaningful context beyond the input schema, which has 0% description coverage. It explains that 'chain' is a chain name with an example ('ethereum'), and clarifies the purpose of the two boolean parameters for excluding charts. This compensates well for the schema's lack of descriptions, though it doesn't detail all possible chain values or chart specifics.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'List all dexs along with summaries of their volumes and dataType history data filtering by chain.' It specifies the verb ('List'), resource ('dexs'), and scope ('filtering by chain'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'get_dex_overview' or 'get_dex_summary', which prevents a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It mentions filtering by chain but doesn't explain why one would choose this over other dex-related tools in the sibling list, such as 'get_dex_overview' or 'get_dex_summary'. There are no explicit when-to-use or when-not-to-use instructions, leaving usage context unclear.

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

get_dex_summaryB

GET /api/summary/dexs/{protocol}

Get summary of dex volume with historical data.

Parameters:
    protocol: protocol slug (e.g., 'uniswap')
    exclude_total_data_chart: true to exclude aggregated chart from response
    exclude_total_data_chart_breakdown: true to exclude broken down chart from response
ParametersJSON Schema
NameRequiredDescriptionDefault
protocolYes
exclude_total_data_chartNo
exclude_total_data_chart_breakdownNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states this is a GET operation (implying read-only) and mentions historical data, but doesn't cover critical aspects like authentication requirements, rate limits, error handling, pagination, or response format. For a tool with no annotation coverage, this leaves significant gaps in understanding its behavior.

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 appropriately sized and front-loaded, with the core purpose stated first. The parameter explanations are clear and necessary. However, the inclusion of the HTTP method 'GET /api/summary/dexs/{protocol}' is redundant with the tool name and could be omitted for better conciseness.

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

Completeness3/5

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

Given the tool's moderate complexity (3 parameters, 1 required), no annotations, and the presence of an output schema, the description is partially complete. It covers the purpose and parameters adequately but lacks behavioral details (e.g., auth, errors) and usage guidelines. The output schema likely handles return values, so that gap is mitigated, but overall completeness is limited.

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 description adds meaningful context beyond the input schema. While the schema has 0% description coverage (only titles), the description explains that 'protocol' is a 'slug (e.g., 'uniswap')' and clarifies the boolean parameters control exclusion of specific chart types from the response. This compensates well for the schema's lack of descriptions, though it doesn't detail all possible protocol values or chart formats.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get summary of dex volume with historical data.' It specifies the verb ('Get'), resource ('summary of dex volume'), and scope ('with historical data'). However, it doesn't explicitly differentiate from sibling tools like 'get_dex_overview' or 'get_dex_overview_by_chain', which might provide overlapping functionality.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_dex_overview' or 'get_dex_overview_by_chain', nor does it specify prerequisites, exclusions, or appropriate contexts for usage. The only implied usage is based on the parameter descriptions, but no explicit guidelines are given.

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

get_emission_dataC

GET /api/emission/{protocol}

Unlocks data for a given token/protocol.

Parameters:
    protocol: protocol slug (e.g., 'aave')
ParametersJSON Schema
NameRequiredDescriptionDefault
protocolYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'Unlocks data' but does not clarify if this is a read-only operation, requires authentication, has rate limits, or what the output entails (though an output schema exists). The term 'Unlocks' is vague and could imply mutative or computational behavior without further explanation.

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

Conciseness3/5

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

The description is brief but includes unnecessary technical details (e.g., 'GET /api/emission/{protocol}') that do not aid the AI agent. The core purpose and parameter explanation are front-loaded, but the structure could be more streamlined by omitting the API endpoint and focusing solely on functional guidance.

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

Completeness3/5

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

Given 1 parameter with low schema coverage and an output schema present, the description provides basic parameter semantics but lacks details on behavioral traits, usage context, or output interpretation. It is minimally adequate for a simple data-fetching tool but misses opportunities to clarify scope or differentiate from siblings like 'get_emissions.'

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 description adds meaning by specifying that the 'protocol' parameter is a 'protocol slug' with an example ('aave'), which is valuable since the input schema has 0% description coverage and only provides a title. With 1 parameter, this compensates well, though it could further clarify allowed values or format constraints.

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

Purpose3/5

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

The description states 'Unlocks data for a given token/protocol,' which provides a vague purpose but lacks specificity about what type of data (e.g., emission rates, schedules, metrics) or what 'unlocks' means operationally. It distinguishes from siblings by focusing on emission data, but the verb 'Unlocks' is ambiguous compared to clearer alternatives like 'Retrieves' or 'Fetches.'

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 sibling tools like 'get_emissions' (which might overlap) or other data-fetching tools. The description does not mention prerequisites, context, or exclusions, leaving the agent to infer usage based on the tool name alone.

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

get_emissionsB

GET /api/emissions

List of all tokens along with basic info for each.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It implies a read-only operation via 'GET' and 'List', but doesn't specify details like pagination, rate limits, authentication requirements, or what constitutes 'basic info'. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.

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 brief and front-loaded, consisting of two sentences: the HTTP endpoint and the core functionality. There's no unnecessary information, making it efficient. However, the structure could be slightly improved by combining the two sentences for better flow.

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

Completeness3/5

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

Given the tool's simplicity (0 parameters, 100% schema coverage, and an output schema exists), the description is adequate but minimal. It covers the basic purpose but lacks behavioral details that would be helpful for an agent, such as output format hints or usage context. The presence of an output schema reduces the need to describe return values, but more guidance on when to use this tool would enhance completeness.

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 input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately doesn't discuss parameters, focusing instead on the tool's purpose. This aligns with the baseline expectation for zero-parameter tools.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'List of all tokens along with basic info for each.' It specifies the verb ('List') and resource ('tokens'), and the HTTP method 'GET /api/emissions' reinforces this as a read operation. However, it doesn't explicitly differentiate from sibling tools like 'get_emission_data' or 'get_token_protocols', which might offer overlapping functionality.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, exclusions, or comparisons to sibling tools such as 'get_emission_data' or 'get_token_protocols', leaving the agent to infer usage context based on the tool name alone.

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

get_entitiesC

GET /api/entities

List all entities.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It mentions 'GET /api/entities' which implies a read-only HTTP operation, but doesn't disclose behavioral traits like pagination, rate limits, authentication needs, or what 'entities' encompasses. The description is minimal and lacks crucial operational context.

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 very concise with two short lines, front-loading the purpose. However, it includes the endpoint path 'GET /api/entities' which might be redundant if the tool name already implies this, slightly reducing efficiency.

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

Completeness3/5

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

Given 0 parameters and an output schema exists, the description doesn't need to explain return values. However, with no annotations and a generic purpose among many siblings, it lacks context on what 'entities' are and operational behavior, making it incomplete for effective 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?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate here, earning a baseline score of 4 for zero-parameter tools.

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

Purpose3/5

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

The description states the tool 'List all entities' which provides a clear verb+resource combination, but it doesn't differentiate from sibling tools like 'get_protocols' or 'get_categories' that might also list different types of entities. The purpose is understandable but generic.

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. With many sibling tools that fetch different data types (e.g., get_protocols, get_stablecoins), the description lacks context on what 'entities' refers to or when this is the appropriate choice.

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

get_etf_historyB

GET /etfs/history

Historical AUM of all BTC ETFs.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states it's a GET operation for historical data, implying read-only behavior, but doesn't cover important aspects like rate limits, authentication needs, data freshness, pagination, or error handling. For a data retrieval tool with zero annotation coverage, this is insufficient.

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 very concise with just two lines: the endpoint path and a brief explanation. It's front-loaded with the key information (GET operation and historical AUM focus). While efficient, it could potentially benefit from slightly more detail without becoming verbose.

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

Completeness3/5

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

Given the tool has 0 parameters, 100% schema coverage, and an output schema exists, the description is minimally complete. However, for a historical data retrieval tool with no annotations, it lacks context about data format, time ranges, or comparison to siblings. The output schema helps, but the description itself is too sparse for full completeness.

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 input schema has 0 parameters with 100% description coverage, so the schema fully documents the absence of parameters. The description doesn't need to add parameter information, and it doesn't contradict the schema. A baseline of 4 is appropriate since no parameters exist and the schema coverage is complete.

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

Purpose4/5

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

The description clearly states the tool retrieves historical AUM (Assets Under Management) data for BTC ETFs, which is a specific verb ('GET') and resource ('historical AUM of all BTC ETFs'). It distinguishes from some siblings like 'get_etf_overview' or 'get_etf_history_eth', though not all siblings are directly comparable. However, it doesn't explicitly differentiate from all similar tools, keeping it at a 4 rather than a 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when-not scenarios, prerequisites, or compare it to siblings like 'get_etf_history_eth' (for ETH ETFs) or 'get_etf_overview' (for overview data). This lack of contextual usage information results in a low score.

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

get_etf_history_ethB

GET /etfs/historyEth

Historical AUM of all ETH ETFs.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but offers minimal behavioral insight. It mentions 'Historical AUM' but doesn't specify time ranges, data granularity, authentication needs, rate limits, or response format. The HTTP method 'GET' implies read-only, but this isn't explicitly stated.

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?

Extremely concise with three short lines: endpoint, purpose, and scope. Every sentence is essential, front-loading the key information without any wasted words or redundancy.

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

Completeness3/5

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

Given the tool has 0 parameters and an output schema exists, the description is minimally adequate. However, for a data retrieval tool with no annotations, it lacks context on data format, time periods, or usage constraints, leaving gaps in understanding how to interpret results.

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

Parameters4/5

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

The tool has 0 parameters with 100% schema description coverage, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate given the empty schema, earning a baseline score above minimum viable.

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

Purpose4/5

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

The description clearly states the tool retrieves historical AUM (Assets Under Management) data for ETH ETFs, with a specific verb ('GET') and resource ('/etfs/historyEth'). It distinguishes from sibling 'get_etf_history' by specifying 'Eth' scope, though not explicitly contrasting them.

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 like 'get_etf_history' or 'get_etf_overview_eth' is provided. The description only states what it does, not when it's appropriate or what distinguishes it from similar tools.

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

get_etf_overviewB

GET /etfs/overview

Get BTC ETFs and their metrics (aum, price, fees...).
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states this is a GET operation (implying read-only) and describes the type of data returned, but lacks critical information about rate limits, authentication requirements, response format, pagination, or error conditions. For a data retrieval tool with zero annotation coverage, this leaves significant 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.

Conciseness4/5

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

The description is efficiently structured with the HTTP method first, followed by a clear purpose statement. Both sentences earn their place - the first establishes the endpoint, the second specifies the data returned. No wasted words, though it could be slightly more polished.

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

Completeness3/5

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

Given the tool has zero parameters, 100% schema coverage, and an output schema exists, the description provides adequate basic information about what data is retrieved. However, with no annotations and multiple sibling tools in the same domain, it should provide more context about when to choose this specific ETF overview tool versus alternatives.

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

Parameters4/5

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

The tool has zero parameters with 100% schema description coverage (empty schema). The description appropriately doesn't waste space discussing non-existent parameters. A baseline of 4 is appropriate for zero-parameter tools where the schema already fully documents the absence of inputs.

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

Purpose4/5

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

The description clearly states the verb ('Get') and resource ('BTC ETFs and their metrics') with specific examples (aum, price, fees). It distinguishes from sibling 'get_etf_history' by focusing on current overview rather than historical data. However, it doesn't explicitly differentiate from 'get_etf_overview_eth' which appears to be an Ethereum-specific variant.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'get_etf_history' or 'get_etf_overview_eth'. It mentions what data is returned but gives no context about appropriate use cases, prerequisites, or limitations compared to sibling tools.

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

get_etf_overview_ethC

GET /etfs/overviewEth

Get ETH ETFs.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It only states it's a GET operation, lacking details on rate limits, authentication needs, response format, or error handling. This leaves significant behavioral gaps for an agent.

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

Conciseness3/5

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

It's brief but inefficiently structured with redundant URL-like text ('GET /etfs/overviewEth'). The core description 'Get ETH ETFs' is clear but could be more front-loaded without the extra line.

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

Completeness3/5

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

Given 0 parameters, 100% schema coverage, and an output schema exists, the description minimally covers purpose. However, without annotations and with sibling tools present, it lacks sufficient context on usage and behavior, making it incomplete for optimal agent guidance.

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 0 parameters and 100% schema coverage, the input schema fully documents no inputs. The description doesn't add parameter info, which is acceptable here as there are no parameters to explain, aligning with the baseline for zero parameters.

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

Purpose3/5

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

The description states 'Get ETH ETFs' which provides a basic verb+resource combination, but it's vague about what specific data is retrieved (e.g., overview, list, metrics). It doesn't distinguish from sibling 'get_etf_overview' which likely provides general ETF data, leaving ambiguity about the ETH-specific scope.

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 like 'get_etf_overview' or 'get_etf_history_eth'. The description merely restates the action without context about appropriate scenarios or exclusions.

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

get_fdv_performanceC

GET /fdv/performance/{period}

Get chart of narratives based on category performance (with individual coins weighted by mcap).

Parameters:
    period: One of ['7', '30', 'ytd', '365']
ParametersJSON Schema
NameRequiredDescriptionDefault
periodYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It describes a read operation ('Get chart') but doesn't disclose behavioral traits like authentication needs, rate limits, error handling, or what 'chart' entails (e.g., format, size). The mention of 'narratives' and 'weighted by mcap' adds some context, but key operational details are missing.

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 appropriately sized with three sentences: purpose, parameter explanation, and a brief note on weighting. It's front-loaded with the main action. No wasted words, though it could be slightly more structured (e.g., bullet points for parameters).

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

Completeness3/5

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

Given one parameter with good description coverage and an output schema (implied by context signals), the description is adequate for basic use. However, without annotations and with vague terms like 'narratives' and 'chart', it lacks completeness for understanding the tool's full behavior and output. Sibling tools suggest this is part of a financial data API, but the description doesn't integrate that 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?

Schema description coverage is 0%, but the description compensates by explaining the 'period' parameter with its enum values ['7', '30', 'ytd', '365']. This adds meaning beyond the schema's title 'Period', clarifying the specific time intervals. Since there's only one parameter, this is sufficient for good understanding.

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

Purpose3/5

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

The description states 'Get chart of narratives based on category performance' which provides a general purpose, but it's vague about what 'narratives' and 'category performance' specifically mean. It mentions coins weighted by market cap, but doesn't clarify the resource or output format. Compared to siblings like 'get_categories' or 'get_price_chart', the distinction is unclear.

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 is provided. The description doesn't mention any prerequisites, exclusions, or suggest other tools for related tasks. Given many sibling tools for data retrieval (e.g., 'get_categories', 'get_price_chart'), the lack of comparative context leaves usage ambiguous.

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

get_fees_summaryB

GET /api/summary/fees/{protocol}

Get summary of protocol fees and revenue with historical data.

Parameters:
    protocol: protocol slug (e.g., 'lyra')
    data_type: desired data type (default: 'dailyFees')
ParametersJSON Schema
NameRequiredDescriptionDefault
protocolYes
data_typeNodailyFees

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions historical data but doesn't specify time ranges, data freshness, rate limits, authentication requirements, or what the output contains beyond 'summary.' For a data retrieval tool with no annotation coverage, this leaves significant 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.

Conciseness4/5

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

The description is appropriately concise with three sentences: the endpoint, core purpose, and parameter explanations. Each sentence adds value, though the parameter section could be slightly more structured. It's front-loaded with the most important information first.

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

Completeness3/5

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

Given the tool has an output schema (which handles return values), 2 parameters with reasonable description coverage, and no complex behavioral annotations needed, the description is moderately complete. However, it lacks usage context and some behavioral details that would help an agent understand when and how to invoke it effectively.

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 description adds meaningful parameter context beyond the schema. While schema description coverage is 0%, the description explains that 'protocol' is a 'slug (e.g., 'lyra')' and 'data_type' has a default value with implied options ('dailyFees', 'dailyRevenue'). This compensates well for the schema's lack of descriptions, though it doesn't fully document all parameter nuances.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get summary of protocol fees and revenue with historical data.' It specifies the verb ('Get summary'), resource ('protocol fees and revenue'), and includes historical data scope. However, it doesn't explicitly differentiate from sibling tools like 'get_protocol_details' or 'get_protocol_tvl' that might also provide protocol-related data.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools, prerequisites, or contextual scenarios where this specific fee/revenue summary would be preferred over other protocol data tools in the extensive sibling list.

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

get_first_price_recordB

GET /coins/prices/first/{coins}

Get earliest timestamp price record for coins.

Parameters:
    coins: comma-separated tokens in format {chain}:{address}
ParametersJSON Schema
NameRequiredDescriptionDefault
coinsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It mentions the action ('Get') but doesn't disclose behavioral traits like whether this is a read-only operation, potential rate limits, authentication needs, error handling, or what the output looks like. For a tool with no annotation coverage, this is a significant gap.

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 appropriately sized and front-loaded, with the core purpose stated first followed by parameter details. It avoids unnecessary fluff, though the inclusion of 'GET /coins/prices/first/{coins}' (which appears to be an API endpoint) adds minor redundancy.

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

Completeness3/5

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

Given the tool's moderate complexity (one parameter, no annotations, but with an output schema), the description is minimally adequate. It covers the purpose and parameter format but lacks behavioral context. The presence of an output schema means return values are documented elsewhere, so the description doesn't need to explain them.

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 description coverage is 0%, but the description compensates by explaining the 'coins' parameter: 'comma-separated tokens in format {chain}:{address}'. This adds crucial semantic context beyond the schema's basic type information. With only one parameter, this is sufficient for a high score.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get earliest timestamp price record for coins.' It specifies the verb ('Get'), resource ('price record'), and scope ('earliest timestamp'). However, it doesn't explicitly differentiate from sibling tools like 'get_current_prices' or 'get_historical_prices', which would require a 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. With many sibling tools related to prices (e.g., 'get_current_prices', 'get_historical_prices'), there's no mention of when this specific 'first price record' tool is appropriate or what distinguishes it from other price-related tools.

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

get_forksB

GET /api/forks

Overview of all forks across all protocols.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'GET' and 'Overview', implying a read-only operation, but lacks details on rate limits, authentication needs, response format, pagination, or error handling. This is inadequate for a tool with no annotation coverage, as it leaves critical behavioral traits unspecified.

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 brief and front-loaded with the API endpoint and purpose in two sentences, with no wasted words. However, the second sentence 'Overview of all forks across all protocols.' could be more precise (e.g., specifying what data is included in the overview), slightly reducing efficiency.

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

Completeness3/5

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

Given the tool has 0 parameters, 100% schema coverage, and an output schema exists, the description's minimal content is somewhat acceptable. However, with no annotations and many sibling tools, it lacks sufficient context on behavior, usage, and differentiation, making it incomplete for effective agent operation without additional inference.

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

Parameters4/5

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

The tool has 0 parameters with 100% schema description coverage, so no parameter information is needed in the description. The description does not add any parameter semantics, but this is acceptable given the absence of parameters, warranting a baseline score of 4 as it does not detract from usability.

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

Purpose4/5

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

The description clearly states the tool retrieves an 'Overview of all forks across all protocols' with the verb 'GET' and resource '/api/forks', making the purpose specific and understandable. However, it does not explicitly differentiate this tool from its many sibling tools (e.g., get_protocols, get_protocol_details) beyond the focus on 'forks', leaving some ambiguity about its unique scope.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. With numerous sibling tools like get_protocols or get_protocol_details, there is no indication of context, prerequisites, or exclusions, leaving the agent to infer usage based solely on the tool name and minimal description.

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

get_hacksB

GET /api/hacks

Overview of all hacks on our Hacks dashboard.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It states this is a GET operation (implying read-only) and returns an overview, but lacks details on permissions, rate limits, pagination, or response format. For a tool with zero annotation coverage, this leaves significant 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.

Conciseness4/5

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

The description is brief and front-loaded with the API endpoint and purpose. Both sentences are relevant, though the first sentence 'GET /api/hacks' is somewhat redundant with the tool name. Overall, it's efficient with minimal waste.

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

Completeness3/5

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

Given the tool has 0 parameters, 100% schema coverage, and an output schema exists, the description is moderately complete. However, with no annotations and a read operation, it should ideally mention the scope (e.g., time range, data freshness) or format of the overview to better guide the agent.

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

Parameters4/5

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

The tool has 0 parameters with 100% schema description coverage, so the schema fully documents the absence of inputs. The description adds no parameter information, which is acceptable given no parameters exist. Baseline is 4 for 0 parameters, as no compensation is needed.

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

Purpose4/5

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

The description clearly states the tool retrieves an 'Overview of all hacks on our Hacks dashboard' with the verb 'GET' and resource 'hacks'. It distinguishes from siblings by specifying the 'Hacks dashboard' context, though not explicitly contrasting with other tools. The purpose is specific but lacks explicit sibling differentiation.

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. The description mentions the 'Hacks dashboard' context, but there are no explicit instructions on prerequisites, timing, or comparisons with sibling tools like 'get_forks' or 'get_raises' that might relate to security incidents.

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

get_historical_chain_tvlB

GET /api/v2/historicalChainTvl

Get historical TVL (excludes liquid staking and double counted tvl) of DeFi on all chains.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the HTTP method (GET) and data exclusions (liquid staking and double counted TVL), but lacks details on rate limits, authentication needs, response format, pagination, or error handling. For a data-fetching tool, this is a significant gap in 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?

The description is highly concise and front-loaded: it starts with the HTTP endpoint, then directly states the purpose in a single sentence. There is no wasted text, and every element (method, resource, exclusions) serves a clear purpose, making it easy to parse quickly.

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

Completeness3/5

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

Given the tool's complexity (historical data fetching), no annotations, and an output schema present, the description is minimally adequate. It covers the core purpose and exclusions but lacks behavioral context (e.g., data freshness, limitations). The output schema reduces the need to explain return values, but more guidance on usage and constraints would improve completeness.

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 input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate. However, it could have mentioned implicit parameters like date ranges or filters if applicable, but given the schema, a baseline of 4 is justified.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get historical TVL (excludes liquid staking and double counted tvl) of DeFi on all chains.' It specifies the action (GET), resource (historical TVL), and scope (all chains, with exclusions). However, it doesn't explicitly differentiate from sibling tools like 'get_historical_chain_tvl_by_chain' or 'get_protocol_tvl', which might handle similar data differently.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_historical_chain_tvl_by_chain' (which might filter by chain) or 'get_protocol_tvl' (which might focus on protocols), leaving the agent to infer usage based on names alone. 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_historical_chain_tvl_by_chainC

GET /api/v2/historicalChainTvl/{chain}

Get historical TVL (excludes liquid staking and double counted tvl) of a chain.

Parameters:
    chain: chain slug (e.g., 'Ethereum')
ParametersJSON Schema
NameRequiredDescriptionDefault
chainYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions that the TVL excludes liquid staking and double-counted TVL, which is useful context, but lacks details on permissions, rate limits, response format, or error handling. For a tool with no annotations, this leaves significant gaps in understanding its behavior.

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 appropriately sized and front-loaded, starting with the core purpose and then detailing parameters. It uses two sentences efficiently, with no wasted words, though it could be slightly more structured (e.g., separating usage notes).

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

Completeness3/5

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

Given the tool's low complexity (one parameter) and the presence of an output schema (which handles return values), the description is somewhat complete. However, with no annotations and missing usage guidelines, it falls short of providing full context for effective tool invocation, especially compared to siblings.

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 description coverage is 0%, but the description compensates by explaining the 'chain' parameter as a 'chain slug (e.g., 'Ethereum')', adding semantic meaning beyond the schema's basic type. However, with only one parameter, the baseline is high, and it doesn't fully detail format constraints or provide examples beyond one, so it meets but doesn't exceed expectations.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get historical TVL (excludes liquid staking and double counted tvl) of a chain.' It specifies the verb ('Get'), resource ('historical TVL'), and scope ('of a chain'), with important exclusions noted. However, it doesn't explicitly differentiate from sibling tools like 'get_historical_chain_tvl' (which appears to be a similar but distinct tool), keeping it from a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It mentions exclusions in the TVL calculation but doesn't compare it to other TVL-related tools in the sibling list, such as 'get_historical_chain_tvl' or 'get_protocol_tvl', leaving the agent without context for selection.

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

get_historical_liquidityC

GET /api/historicalLiquidity/{token}

Provides the available liquidity for swapping from one token to another on a specific chain.

Parameters:
    token: token slug (e.g., 'usdt')
ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the tool provides liquidity data but doesn't specify whether it's read-only, requires authentication, has rate limits, or details the response format (though an output schema exists). For a tool with no annotation coverage, this is a significant gap in describing behavioral traits.

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 appropriately sized and front-loaded, with the core purpose stated first followed by parameter details. It uses two sentences efficiently, though the parameter section could be integrated more smoothly. There's no wasted text, making it concise and well-structured.

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

Completeness3/5

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

Given the tool's moderate complexity (1 parameter, no annotations, but with an output schema), the description is partially complete. It covers the basic purpose and parameter example but lacks usage guidelines and behavioral context. The output schema mitigates some gaps, but overall, it's adequate with clear room for improvement.

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 description adds minimal semantics beyond the input schema. It explains the 'token' parameter as 'token slug (e.g., 'usdt')', which provides an example but doesn't clarify format constraints or source. With 0% schema description coverage and 1 parameter, this is adequate but not comprehensive, aligning with the baseline expectation.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Provides the available liquidity for swapping from one token to another on a specific chain.' It specifies the verb ('Provides'), resource ('available liquidity'), and scope ('swapping from one token to another on a specific chain'). However, it doesn't explicitly differentiate from sibling tools like 'get_historical_prices' or 'get_current_prices', which might also involve tokens but serve different purposes.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, exclusions, or specific contexts (e.g., historical vs. current data, swapping scenarios). With many sibling tools related to tokens and prices, this lack of differentiation leaves the agent uncertain about appropriate usage.

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

get_historical_pricesB

GET /coins/prices/historical/{timestamp}/{coins}

Get historical prices of tokens by contract address.

Parameters:
    timestamp: UNIX timestamp for historical prices
    coins: comma-separated tokens in format {chain}:{address}
    search_width: time range on either side to find price data (default: '6h')
ParametersJSON Schema
NameRequiredDescriptionDefault
timestampYes
coinsYes
search_widthNo6h

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool is a GET operation, implying read-only behavior, but doesn't cover critical aspects like rate limits, error handling, authentication needs, or response format. The mention of 'search_width' hints at time-range behavior, but overall, the disclosure is insufficient for a tool with no annotation support.

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 well-structured and appropriately sized, with a clear purpose statement followed by parameter details. It uses bullet points for parameters, making it easy to parse. There's no wasted text, and it's front-loaded with the core functionality. A minor deduction for not being maximally concise (e.g., the URL line is redundant with the tool name).

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

Completeness3/5

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

Given the tool's moderate complexity (3 parameters, no annotations, but with an output schema), the description is adequate but has gaps. It covers parameters well, and the output schema likely handles return values, so that's not needed. However, it lacks behavioral context (e.g., rate limits) and usage guidelines, making it incomplete for optimal agent operation. It meets the minimum viable standard but could be more comprehensive.

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 description adds significant value beyond the input schema, which has 0% description coverage. It explains each parameter's purpose: 'timestamp' as a UNIX timestamp, 'coins' as comma-separated tokens in a specific format, and 'search_width' with its default value and meaning ('time range on either side to find price data'). This compensates well for the schema's lack of descriptions, though it doesn't detail all possible formats or constraints.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get historical prices of tokens by contract address.' It specifies the verb ('Get'), resource ('historical prices'), and target ('tokens by contract address'), making it easy to understand. However, it doesn't explicitly differentiate from siblings like 'get_current_prices' or 'get_batch_historical_prices', which is why it doesn't reach a score of 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention siblings such as 'get_current_prices' for real-time data or 'get_batch_historical_prices' for multiple timestamps, nor does it specify prerequisites like required parameters or context. This lack of usage context leaves the agent without clear direction.

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

get_options_overviewB

GET /api/overview/options

List all options dexs along with summaries of their volumes and dataType history data.

Parameters:
    exclude_total_data_chart: true to exclude aggregated chart from response
    exclude_total_data_chart_breakdown: true to exclude broken down chart from response
    data_type: desired data type (default: 'dailyNotionalVolume')
ParametersJSON Schema
NameRequiredDescriptionDefault
exclude_total_data_chartNo
exclude_total_data_chart_breakdownNo
data_typeNodailyNotionalVolume

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool is a GET endpoint for listing data, implying it's a read-only operation, but doesn't clarify permissions, rate limits, response format, or pagination. For a tool with zero annotation coverage, this is insufficient to ensure safe and effective use.

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 appropriately sized and front-loaded, starting with the HTTP method and endpoint, followed by the core purpose, then parameter details. Each sentence adds value without redundancy. It could be slightly more structured by separating the purpose from parameters with a line break, but overall it's efficient.

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

Completeness3/5

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

Given the tool's moderate complexity (3 parameters, no annotations, but with an output schema), the description is partially complete. It covers the purpose and parameters adequately, but lacks behavioral context like error handling or response structure. The presence of an output schema mitigates some gaps, but without annotations, more guidance on usage and safety would improve completeness.

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 description adds significant value beyond the input schema, which has 0% description coverage. It explains all three parameters: 'exclude_total_data_chart' and 'exclude_total_data_chart_breakdown' control chart exclusions, and 'data_type' specifies the desired data type with its default. This compensates well for the schema's lack of descriptions, though it doesn't detail the enum values beyond the default.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'List all options dexs along with summaries of their volumes and dataType history data.' It specifies the verb ('List'), resource ('options dexs'), and scope ('summaries of their volumes and dataType history data'). However, it doesn't explicitly differentiate from sibling tools like 'get_options_overview_by_chain' or 'get_options_summary', which prevents a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_options_overview_by_chain' or 'get_options_summary', nor does it specify any prerequisites, exclusions, or contextual cues for usage. This leaves the agent without direction on tool selection.

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

get_options_overview_by_chainB

GET /api/overview/options/{chain}

List all options dexs along with summaries of their volumes and dataType history data filtering by chain.

Parameters:
    chain: chain name (e.g., 'ethereum')
    exclude_total_data_chart: true to exclude aggregated chart from response
    exclude_total_data_chart_breakdown: true to exclude broken down chart from response
    data_type: desired data type (default: 'dailyNotionalVolume')
ParametersJSON Schema
NameRequiredDescriptionDefault
chainYes
exclude_total_data_chartNo
exclude_total_data_chart_breakdownNo
data_typeNodailyNotionalVolume

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It describes a read operation ('List') but doesn't cover critical aspects like rate limits, authentication needs, error handling, or response format. While it hints at data filtering and exclusions, it lacks details on pagination, data freshness, or any side effects, leaving significant gaps for an AI agent.

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 appropriately sized and front-loaded, starting with the core purpose followed by parameter details. It uses bullet points for parameters, enhancing readability. However, the first sentence is slightly wordy ('summaries of their volumes and dataType history data'), and there's minor redundancy in parameter explanations, but overall it's efficient with zero wasted sentences.

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 complexity (4 parameters, 1 required), no annotations, and the presence of an output schema, the description does a good job. It covers the purpose and parameters thoroughly, and since an output schema exists, it doesn't need to explain return values. However, it lacks behavioral context like rate limits or error handling, which slightly reduces completeness for a tool with no annotations.

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 description adds substantial meaning beyond the input schema, which has 0% description coverage. It explains each parameter: 'chain' is described with an example ('ethereum'), 'exclude_total_data_chart' and 'exclude_total_data_chart_breakdown' clarify what they exclude from the response, and 'data_type' specifies the default value and context. This compensates fully for the schema's lack of descriptions.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'List all options dexs along with summaries of their volumes and dataType history data filtering by chain.' It specifies the verb ('List'), resource ('options dexs'), and scope ('filtering by chain'), making the action clear. However, it doesn't explicitly differentiate from sibling tools like 'get_options_overview' or 'get_options_summary', which prevents a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It mentions filtering by chain but doesn't compare to sibling tools such as 'get_options_overview' (which might not filter by chain) or 'get_options_summary' (which might provide different data). There's no mention of prerequisites, exclusions, or specific contexts for usage.

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

get_options_summaryC

GET /api/summary/options/{protocol}

Get summary of options dex volume with historical data.

Parameters:
    protocol: protocol slug (e.g., 'lyra')
    data_type: desired data type (default: 'dailyNotionalVolume')
ParametersJSON Schema
NameRequiredDescriptionDefault
protocolYes
data_typeNodailyNotionalVolume

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states it's a GET operation, implying read-only behavior, but doesn't clarify aspects like rate limits, authentication needs, error handling, or what the historical data entails (e.g., time range, format). For a tool with no annotations, this leaves significant gaps in understanding its operational traits.

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 appropriately sized and front-loaded, starting with the HTTP method and endpoint, followed by a clear purpose statement and parameter details. It avoids unnecessary fluff and is structured for quick comprehension, though it could be slightly more concise by integrating the parameter explanations more seamlessly.

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

Completeness3/5

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

Given the tool has an output schema, the description doesn't need to explain return values, which is adequate. However, with no annotations, 2 parameters (one with low schema coverage), and complexity around options data, the description is minimal. It covers the basics but lacks depth on usage context, behavioral details, and parameter nuances, making it just sufficient but with clear 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?

The description adds some meaning beyond the input schema by explaining that 'protocol' is a 'protocol slug' with an example ('lyra') and 'data_type' has a default value and specifies the data type. However, with 0% schema description coverage, it doesn't fully compensate for the lack of schema descriptions, as it doesn't detail the enum values' implications or provide further context for the parameters.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get summary of options dex volume with historical data.' It specifies the action ('Get summary'), resource ('options dex volume'), and scope ('with historical data'), which is specific and informative. However, it doesn't explicitly distinguish this tool from sibling tools like 'get_options_overview' or 'get_options_overview_by_chain', which might also relate to options data.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It mentions the parameters but doesn't explain the context for selecting this tool over other options-related tools in the sibling list, such as 'get_options_overview' or 'get_options_overview_by_chain'. There are no usage prerequisites, exclusions, or comparisons provided.

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

get_oraclesB

GET /api/oracles

Overview of all oracles across all protocols.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions it's a GET operation (implying read-only) and returns an 'overview,' but doesn't specify what 'overview' entails (e.g., list format, pagination, rate limits, authentication needs, or data freshness). For a tool with zero annotation coverage, this leaves significant gaps in understanding its 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 extremely concise and front-loaded: it states the HTTP method, endpoint, and purpose in just two short sentences. There's no wasted text, and every word contributes directly to understanding the tool's basic function. This is an example of efficient communication.

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

Completeness3/5

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

Given the tool has 0 parameters, 100% schema coverage, and an output schema exists, the description is minimally adequate. However, with no annotations and many sibling tools, it lacks context about when to use it, what the output contains, or any behavioral constraints. The description meets the bare minimum but doesn't provide enough guidance for optimal agent use in a crowded toolset.

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

Parameters4/5

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

The tool has 0 parameters, and schema description coverage is 100% (empty schema is fully described). The description doesn't need to explain parameters, and it correctly implies no inputs are required. A baseline of 4 is appropriate for a parameterless tool where the schema already covers everything.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Overview of all oracles across all protocols.' It specifies the verb ('GET') and resource ('oracles'), and the scope ('all oracles across all protocols') is explicit. However, it doesn't distinguish this tool from its many sibling 'get_' tools, which all follow a similar naming pattern for different resources.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. With 65+ sibling tools (e.g., get_protocols, get_chains, get_stablecoins), there's no indication of how this tool relates to them or when an agent should choose it over other data retrieval options. The description merely states what it does, not when it's appropriate.

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

get_price_chartB

GET /coins/chart/{coins}

Get token prices at regular time intervals.

Parameters:
    coins: comma-separated tokens in format {chain}:{address}
    start: unix timestamp of earliest data point
    end: unix timestamp of latest data point
    span: number of data points returned
    period: duration between data points (default: '24h')
    search_width: time range on either side to find price data (default: '600')
ParametersJSON Schema
NameRequiredDescriptionDefault
coinsYes
startNo
endNo
spanNo
periodNo24h
search_widthNo600

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the tool fetches price data at intervals, but lacks critical details: it doesn't specify if this is a read-only operation (implied by 'GET' but not explicit), what the output format is (though an output schema exists), rate limits, authentication needs, or error handling. For a data-fetching tool with 6 parameters, this leaves significant gaps in understanding its behavior.

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 well-structured and appropriately sized. It starts with the purpose, lists parameters with clear explanations, and uses bullet-like formatting for readability. Every sentence adds value, with no redundant information. It could be slightly more concise by integrating the purpose into the parameter list, but overall it's efficient.

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

Completeness3/5

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

Given the tool's complexity (6 parameters, no annotations), the description does a decent job but has gaps. It fully documents parameters, which is crucial with 0% schema coverage, and an output schema exists to handle return values. However, it lacks behavioral context like rate limits or error scenarios, and doesn't differentiate from sibling tools, leaving the agent to guess when to use it. This is adequate but not comprehensive.

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 description adds substantial meaning beyond the input schema, which has 0% description coverage. It explains all 6 parameters in detail: 'coins' as 'comma-separated tokens in format {chain}:{address}', 'start' and 'end' as Unix timestamps, 'span' as 'number of data points returned', and default values for 'period' and 'search_width'. This fully compensates for the schema's lack of descriptions, making parameter usage clear.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get token prices at regular time intervals.' This specifies the verb ('Get') and resource ('token prices'), and the URL path '/coins/chart/{coins}' reinforces it's about price charts for tokens. However, it doesn't explicitly differentiate from sibling tools like 'get_current_prices' or 'get_historical_prices', which might offer similar data in different formats or scopes.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_current_prices' (for real-time prices) or 'get_historical_prices' (which might serve a similar purpose), nor does it specify prerequisites or exclusions (e.g., time range constraints). The agent must infer usage from the tool name and parameters alone.

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

get_price_percentageB

GET /coins/percentage/{coins}

Get percentage change in price over time.

Parameters:
    coins: comma-separated tokens in format {chain}:{address}
    timestamp: timestamp of data point (defaults to now)
    look_forward: whether to look forward from timestamp (default: False)
    period: duration between data points (default: '24h')
ParametersJSON Schema
NameRequiredDescriptionDefault
coinsYes
timestampNo
look_forwardNo
periodNo24h

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool is a GET operation and describes parameters, but lacks critical behavioral details: it doesn't specify authentication needs, rate limits, error conditions, or what the output contains (though an output schema exists). For a tool with no annotations, this is insufficient to understand its operational behavior.

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 well-structured and appropriately sized. It starts with the endpoint and a clear purpose statement, followed by a bullet-point list of parameters with explanations. Each sentence earns its place, but it could be slightly more concise by integrating the endpoint into the purpose statement.

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 moderate complexity (4 parameters, 1 required) and the presence of an output schema, the description is reasonably complete. It covers the purpose and parameters in detail, which addresses the main gaps. However, it lacks usage guidelines and behavioral context, which are important for a tool with no annotations, preventing a perfect score.

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 description adds significant value beyond the input schema, which has 0% schema description coverage. It explains the format for 'coins' ('comma-separated tokens in format {chain}:{address}'), clarifies 'timestamp' as 'timestamp of data point (defaults to now)', defines 'look_forward' as 'whether to look forward from timestamp (default: False)', and specifies 'period' as 'duration between data points (default: '24h')'. This fully compensates for the schema's lack of descriptions.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get percentage change in price over time.' This specifies the verb ('get'), resource ('percentage change in price'), and scope ('over time'), making it distinct from sibling tools like get_current_prices or get_historical_prices. However, it doesn't explicitly differentiate from all siblings, such as get_fdv_performance, which might also involve price-related metrics.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like get_price_chart or get_historical_prices, nor does it specify use cases, prerequisites, or exclusions. This leaves the agent without context for tool selection among the many price-related options.

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

get_protocol_detailsB

GET /api/protocol/{protocol}

Get historical TVL of a protocol and breakdowns by token and chain.

Parameters:
    protocol: protocol slug (e.g., 'aave')
ParametersJSON Schema
NameRequiredDescriptionDefault
protocolYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It mentions retrieving historical data but doesn't disclose behavioral traits like rate limits, authentication needs, data freshness, or pagination. The description is minimal and lacks operational context.

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

Conciseness4/5

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

The description is front-loaded with the core purpose, followed by parameter details. It's efficient with minimal waste, though the structure is simple and could be more polished for readability.

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

Completeness3/5

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

Given 1 parameter with 0% schema coverage and an output schema, the description is adequate but incomplete. It explains the parameter but lacks behavioral context, and the output schema reduces the need to describe return values, though more operational details would help.

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 description coverage is 0%, but the description compensates by explaining the 'protocol' parameter as a slug with an example ('aave'). This adds meaningful semantics beyond the bare schema, though it's brief and could be more detailed.

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

Purpose4/5

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

The description clearly states the tool retrieves historical TVL data with breakdowns by token and chain for a specific protocol. It specifies the verb (GET/retrieve) and resource (protocol details), though it doesn't explicitly differentiate from sibling tools like 'get_protocol_tvl' or 'get_protocols'.

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. With many sibling tools like 'get_protocol_tvl' and 'get_protocols', the description lacks context about use cases, prerequisites, or comparisons, leaving the agent to infer usage.

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

get_protocol_inflowsB

GET /api/inflows/{protocol}/{timestamp}

Lists the amount of inflows and outflows for a protocol at a given date.

Parameters:
    protocol: protocol slug (e.g., 'compound-v3')
    timestamp: unix timestamp (e.g., 1700006400)
ParametersJSON Schema
NameRequiredDescriptionDefault
protocolYes
timestampYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool lists data (implying a read operation) but doesn't cover critical aspects like rate limits, authentication needs, error handling, or response format. For a tool with no annotations, this leaves significant gaps in understanding its behavior.

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 appropriately sized and front-loaded, starting with the API endpoint and a clear purpose statement. The parameter explanations are concise and directly relevant. There's no wasted text, though it could be slightly more structured (e.g., bullet points).

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

Completeness3/5

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

Given that there's an output schema (which handles return values) and the description compensates for the 0% schema coverage with parameter semantics, the description is adequate but incomplete. It lacks behavioral details (e.g., rate limits, auth) and usage guidelines, which are important for a tool with no annotations and multiple siblings.

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 description adds meaningful semantics beyond the input schema, which has 0% description coverage. It explains that 'protocol' is a 'protocol slug' with an example ('compound-v3') and 'timestamp' is a 'unix timestamp' with an example (1700006400). This clarifies the parameter formats, compensating well for the schema's lack of descriptions.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Lists the amount of inflows and outflows for a protocol at a given date.' It specifies the verb ('Lists') and resource ('inflows and outflows for a protocol'), making it easy to understand. However, it doesn't explicitly differentiate from sibling tools like 'get_protocol_details' or 'get_protocol_tvl', which might also provide protocol-related data.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, exclusions, or compare it to sibling tools such as 'get_protocol_details' or 'get_protocol_tvl', leaving the agent to infer usage context 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_protocolsB

GET /api/protocols

List all protocols on defillama along with their tvl.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the tool lists protocols with TVL but doesn't cover critical aspects like whether it's a read-only operation, potential rate limits, authentication needs, pagination behavior, or data freshness. This leaves significant gaps for a tool that likely fetches financial data.

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 efficiently structured in two sentences: the first provides the API endpoint, and the second explains the functionality. There's no wasted text, though it could be slightly more polished by combining the sentences for better flow.

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

Completeness3/5

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

Given the tool has an output schema (which handles return values) and 0 parameters with full schema coverage, the description's main job is purpose clarification. It does this adequately but lacks behavioral context (especially important with no annotations) and usage guidance relative to siblings, making it minimally complete but with clear 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?

The tool has 0 parameters with 100% schema description coverage, so the schema already fully documents the input requirements. The description appropriately doesn't add parameter information, maintaining focus on the tool's purpose. A baseline of 4 is appropriate for zero-parameter tools.

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

Purpose4/5

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

The description clearly states the tool's purpose with a specific verb ('List') and resource ('protocols on defillama'), and includes the additional output detail ('along with their tvl'). However, it doesn't explicitly differentiate from sibling tools like 'get_protocol_details' or 'get_protocol_tvl', which prevents a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_protocol_details' for specific protocol information or 'get_protocol_tvl' for TVL-focused queries, leaving the agent without usage context.

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

get_protocol_tvlB

GET /api/tvl/{protocol}

Simplified endpoint to get current TVL of a protocol.

Parameters:
    protocol: protocol slug (e.g., 'uniswap')
ParametersJSON Schema
NameRequiredDescriptionDefault
protocolYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool gets 'current TVL,' implying a read-only operation, but doesn't mention any behavioral traits like rate limits, authentication needs, data freshness, or error handling. For a tool with no annotations, this leaves significant gaps in understanding how it behaves.

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 appropriately sized and front-loaded: the first sentence states the core purpose, followed by a clear parameter explanation. There's no wasted text, and the structure is logical. It could be slightly more polished but efficiently conveys essential information.

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

Completeness3/5

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

Given the tool's low complexity (1 parameter) and the presence of an output schema (which handles return values), the description is minimally adequate. However, with no annotations and a simple purpose, it lacks context on usage guidelines and behavioral traits, making it incomplete for optimal agent 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?

The description adds meaningful semantics beyond the input schema. The schema has 0% description coverage (only a title 'Protocol'), but the description explains that the 'protocol' parameter is a 'protocol slug' and provides an example ('uniswap'). This clarifies the expected format and usage, compensating well for the low schema coverage.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Simplified endpoint to get current TVL of a protocol.' It specifies the verb ('get'), resource ('current TVL'), and target ('protocol'), making the function unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'get_historical_chain_tvl' or 'get_protocol_details', which might offer overlapping or related data.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It mentions it's a 'simplified endpoint,' but doesn't clarify what that means in practice or when to choose it over other TVL-related tools in the sibling list. There are no explicit when/when-not instructions or named alternatives.

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

get_raisesC

GET /api/raises

Overview of all raises on our Raises dashboard.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states 'GET /api/raises' which implies a read-only HTTP GET operation, but doesn't disclose any behavioral traits like rate limits, authentication requirements, pagination, data freshness, or what happens if no raises exist. The description is minimal and lacks 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.

Conciseness4/5

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

The description is brief with two sentences. The first sentence provides the API endpoint, and the second explains the purpose. No wasted words, though it could be more informative. The structure is front-loaded with the endpoint information.

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

Completeness3/5

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

Given the tool has 0 parameters, 100% schema coverage, and an output schema exists, the description is minimally adequate. However, for a data retrieval tool with no annotations, it lacks important context about what 'raises' means, the data format, or usage constraints. The output schema will handle return values, but the description should provide more operational 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?

The tool has 0 parameters with 100% schema description coverage, so no parameter documentation is needed. The description doesn't discuss parameters, which is appropriate. Baseline for 0 parameters with complete schema coverage is 4.

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

Purpose3/5

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

The description states 'Overview of all raises on our Raises dashboard' which provides a general purpose (retrieving raise data) but lacks specificity about what 'raises' means or what data is included. It distinguishes from siblings by mentioning 'raises' but doesn't clarify if this is about fundraising, price increases, or other types of raises.

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. The description mentions 'Raises dashboard' which implies a specific context, but doesn't explain when this tool is appropriate versus other data retrieval tools in the sibling list. No explicit when/when-not statements or alternative tool references.

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

get_stablecoin_chainsB

GET /stablecoins/stablecoinchains

Get current mcap sum of all stablecoins on each chain.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves data ('Get'), implying a read-only operation, but doesn't mention any behavioral traits such as rate limits, authentication needs, data freshness, or error handling. For a tool with zero annotation coverage, this is a significant gap in transparency.

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

Conciseness3/5

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

The description is concise with two sentences, but the first sentence ('GET /stablecoins/stablecoinchains') is redundant API endpoint information that doesn't add value for an AI agent. The second sentence is the core description. While efficient, the inclusion of the endpoint reduces clarity and front-loading effectiveness.

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

Completeness3/5

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

Given the tool has 0 parameters, an output schema exists, and no annotations, the description is minimally adequate. It states what the tool does but lacks context on usage, behavioral details, or output interpretation. The presence of an output schema means return values are documented elsewhere, but the description doesn't fully compensate for the missing behavioral transparency.

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

Parameters4/5

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

The tool has 0 parameters, and schema description coverage is 100% (though empty). The description doesn't need to explain parameters, and it doesn't add or contradict any parameter information. A baseline of 4 is appropriate for a parameterless tool where the schema fully covers the absence of inputs.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get current mcap sum of all stablecoins on each chain.' It specifies the verb ('Get'), resource ('mcap sum of all stablecoins'), and scope ('on each chain'). However, it doesn't explicitly differentiate from sibling tools like 'get_stablecoins' or 'get_stablecoin_charts_by_chain', which prevents a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. With many sibling tools related to stablecoins (e.g., 'get_stablecoins', 'get_stablecoin_charts_by_chain'), there is no indication of context, prerequisites, or exclusions. The agent must infer usage based on the purpose alone.

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

get_stablecoin_charts_allC

GET /stablecoins/stablecoincharts/all

Get historical mcap sum of all stablecoins.

Parameters:
    stablecoin: stablecoin ID (optional)
ParametersJSON Schema
NameRequiredDescriptionDefault
stablecoinNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool is a GET request and describes the output ('historical mcap sum'), but lacks critical details like rate limits, authentication requirements, error handling, or pagination behavior. For a data-fetching tool with no annotations, this is a significant gap in transparency.

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

Conciseness4/5

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

The description is concise and well-structured, with the endpoint path upfront followed by a clear purpose statement and parameter details. There's no wasted text, and information is presented in a logical order, making it easy to parse quickly.

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

Completeness3/5

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

Given that there's an output schema (which should cover return values), the description provides basic purpose and parameter info. However, for a tool with no annotations and incomplete parameter documentation, it lacks sufficient context on usage, behavior, and integration details. It's minimally adequate but has clear gaps in guidance and transparency.

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 description adds some parameter semantics by noting that 'stablecoin' is an 'optional' 'stablecoin ID', which clarifies its purpose beyond the schema's generic 'Stablecoin' title. However, with 0% schema description coverage and only one parameter, it doesn't fully compensate—e.g., it doesn't explain what a 'stablecoin ID' is or provide examples. The baseline is adjusted due to low coverage but limited improvement.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get historical mcap sum of all stablecoins.' It specifies the verb ('Get') and resource ('historical mcap sum of all stablecoins'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'get_stablecoin_charts_by_chain' or 'get_stablecoin_history', which might have overlapping functionality.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, context for usage, or comparisons to sibling tools such as 'get_stablecoin_charts_by_chain' or 'get_stablecoin_history'. This leaves the agent without clear direction on tool selection.

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

get_stablecoin_charts_by_chainC

GET /stablecoins/stablecoincharts/{chain}

Get historical mcap sum of all stablecoins in a chain.

Parameters:
    chain: chain slug (e.g., 'Ethereum')
    stablecoin: stablecoin ID (optional)
ParametersJSON Schema
NameRequiredDescriptionDefault
chainYes
stablecoinNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states this is a GET operation (implying read-only) and describes the output ('historical mcap sum'), but lacks critical details: it doesn't specify the time range or granularity of 'historical' data, whether results are paginated, rate limits, authentication requirements, or error conditions. For a data-fetching tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.

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 appropriately sized and front-loaded: the first line states the purpose clearly, followed by a structured parameters section. There's no wasted text, and each sentence adds value (e.g., the parameters list clarifies usage). However, it could be slightly more concise by integrating the parameter details into a single flowing sentence, and the URL path duplication is minor redundancy.

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

Completeness3/5

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

Given the tool's moderate complexity (2 parameters, historical data fetching), the description is minimally adequate. It explains the purpose and parameters but lacks behavioral context (e.g., time ranges, pagination). The presence of an output schema (not shown) means the description doesn't need to detail return values, but without annotations, it should cover more operational aspects like data freshness or constraints. It's complete enough for basic use but leaves gaps for robust agent invocation.

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 0%, so the schema provides no parameter descriptions. The description adds value by explaining 'chain' as a 'chain slug (e.g., 'Ethereum')' and 'stablecoin' as an 'optional' 'stablecoin ID', giving basic semantics. However, it doesn't clarify where to find valid chain slugs or stablecoin IDs, the format of the ID (integer vs. string), or how the optional parameter affects results (e.g., filtering vs. aggregation). With 2 parameters and low schema coverage, this partial compensation earns a baseline 3.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get historical mcap sum of all stablecoins in a chain.' This specifies the verb ('Get'), resource ('historical mcap sum'), and scope ('all stablecoins in a chain'). It distinguishes from siblings like 'get_stablecoin_charts_all' (which lacks chain filtering) and 'get_stablecoin_history' (which focuses on individual stablecoin history rather than aggregate mcap). However, it doesn't explicitly contrast with all relevant siblings (e.g., 'get_stablecoin_chains'), keeping it at 4 rather than 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It mentions an optional 'stablecoin' parameter but doesn't explain when to include it (e.g., to filter to a specific stablecoin vs. get all). There's no mention of prerequisites, data freshness, or comparison to siblings like 'get_stablecoin_charts_all' (for all chains) or 'get_stablecoin_history' (for individual stablecoin details).

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

get_stablecoin_dominanceC

GET /stablecoins/stablecoindominance/{chain}

Get stablecoin dominance per chain along with the info about the largest coin in a chain.

Parameters:
    chain: chain slug (e.g., 'Ethereum')
    stablecoin: stablecoin ID (optional)
ParametersJSON Schema
NameRequiredDescriptionDefault
chainYes
stablecoinNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states it's a GET operation, implying read-only behavior, but lacks details on authentication needs, rate limits, error handling, or output format. The mention of 'largest coin in a chain' adds some context, but overall behavioral traits are insufficiently covered.

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 concise and front-loaded, starting with the core purpose. It uses two sentences effectively, with no wasted words. However, the inclusion of 'GET /stablecoins/stablecoindominance/{chain}' is somewhat redundant with the tool name, slightly reducing efficiency.

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

Completeness3/5

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

Given 2 parameters with 0% schema coverage and an output schema present, the description provides basic purpose and parameter info but lacks usage guidelines and detailed behavioral context. It is minimally adequate for a read-only tool with output schema, but could be more complete by explaining when to use it and clarifying parameter details.

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 0%, so the description must compensate. It explains 'chain' as 'chain slug (e.g., 'Ethereum')' and 'stablecoin' as 'stablecoin ID (optional)', adding basic semantics. However, it does not clarify what 'stablecoin dominance' means or provide examples for 'stablecoin ID', leaving gaps in parameter understanding.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get stablecoin dominance per chain along with the info about the largest coin in a chain.' It specifies the verb ('Get'), resource ('stablecoin dominance'), and scope ('per chain'), but does not explicitly differentiate from sibling tools like 'get_stablecoin_charts_by_chain' or 'get_stablecoins', which might offer overlapping functionality.

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. The description lists parameters but does not mention use cases, prerequisites, or comparisons to sibling tools such as 'get_stablecoin_charts_by_chain' or 'get_stablecoins', leaving the agent without context for selection.

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

get_stablecoin_historyC

GET /stablecoins/stablecoin/{asset}

Get historical mcap and historical chain distribution of a stablecoin.

Parameters:
    asset: stablecoin ID
ParametersJSON Schema
NameRequiredDescriptionDefault
assetYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states it's a GET operation (implying read-only) and mentions retrieving historical data, but lacks details on authentication needs, rate limits, error handling, data freshness, or output format. For a tool with no annotations, this leaves significant gaps in understanding its behavior and constraints.

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 concise and front-loaded, starting with the HTTP method and endpoint, followed by the core purpose and a parameter list. It avoids unnecessary fluff, with every sentence contributing directly to the tool's definition. However, the structure could be slightly improved by integrating the parameter explanation more seamlessly, but it remains efficient overall.

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

Completeness3/5

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

Given the tool's moderate complexity (historical data retrieval), no annotations, and an output schema present, the description is partially complete. It covers the basic purpose and parameter, but lacks behavioral context (e.g., data scope, limitations) that annotations would typically provide. The output schema mitigates the need to explain return values, but overall, the description feels minimal for a tool with potential nuances in historical data access.

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 description adds minimal semantics: it lists 'asset: stablecoin ID' as a parameter, which matches the input schema's single required parameter 'asset' of type integer. However, schema description coverage is 0%, so the schema provides no additional details. The description doesn't clarify what a 'stablecoin ID' entails (e.g., numeric codes, naming conventions), offering only basic context without compensating for the low schema coverage.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get historical mcap and historical chain distribution of a stablecoin.' It specifies the verb ('Get') and resource ('historical mcap and historical chain distribution'), making it distinct from sibling tools like 'get_stablecoins' (list) or 'get_stablecoin_prices' (current prices). However, it doesn't explicitly differentiate from 'get_stablecoin_charts_all' or 'get_stablecoin_charts_by_chain', which might also involve historical data, leaving some ambiguity.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_stablecoin_charts_all' or 'get_stablecoin_charts_by_chain', which could be related for historical data, nor does it specify prerequisites or exclusions (e.g., asset ID format, time ranges). Usage is implied only by the tool name and description, with no explicit context for selection.

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

get_stablecoin_pricesB

GET /stablecoins/stablecoinprices

Get historical prices of all stablecoins.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It states the tool retrieves historical prices but doesn't disclose behavioral traits such as rate limits, authentication requirements, data freshness, pagination, error handling, or response format. This is a significant gap for a tool with no annotation coverage.

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

Conciseness3/5

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

The description is concise with two sentences, but the first sentence ('GET /stablecoins/stablecoinprices') is redundant API endpoint information that doesn't add value for an AI agent. The second sentence is clear but could be more front-loaded with essential context.

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

Completeness3/5

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

Given the tool has 0 parameters, 100% schema coverage, and an output schema exists, the description is minimally adequate. However, with no annotations and siblings offering similar functionality, it lacks completeness in distinguishing use cases and behavioral context, which could confuse an agent.

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

Parameters4/5

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

The tool has 0 parameters, and schema description coverage is 100%. The description doesn't need to add parameter semantics, as there are none to document. It appropriately focuses on the tool's purpose without unnecessary parameter details.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get historical prices of all stablecoins.' It specifies the verb ('Get'), resource ('historical prices'), and scope ('all stablecoins'). However, it doesn't differentiate from sibling tools like 'get_stablecoin_history' or 'get_current_prices', which might offer similar data with different timeframes or scopes.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. With siblings like 'get_stablecoin_history' and 'get_current_prices' available, there's no indication of whether this tool is for bulk historical data, real-time prices, or specific time ranges. Usage context is implied but not explicit.

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

get_stablecoinsB

GET /stablecoins/stablecoins

List all stablecoins along with their circulating amounts.

Parameters:
    include_prices: whether to include current stablecoin prices (default: True)
ParametersJSON Schema
NameRequiredDescriptionDefault
include_pricesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the tool lists stablecoins with circulating amounts and includes an optional price parameter, but doesn't describe critical behaviors like whether this is a read-only operation, potential rate limits, authentication requirements, response format, or pagination. For a tool with no annotation coverage, this leaves significant gaps in understanding how it behaves.

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 appropriately concise with three sentences: the endpoint, core functionality, and parameter explanation. It's front-loaded with the main purpose, and every sentence adds value without redundancy. The structure is clear, though it could be slightly more polished by integrating the parameter explanation more seamlessly.

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

Completeness3/5

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

Given that there's an output schema (which handles return values), no annotations, and only one parameter with good description coverage, the description is minimally adequate. However, it lacks behavioral context (e.g., read-only nature, potential limitations) that would be important for a tool fetching financial data. It's complete enough for basic use but misses operational details.

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 description adds meaningful context for the single parameter: 'include_prices: whether to include current stablecoin prices (default: True)'. This explains the parameter's purpose and default value, which is valuable since schema description coverage is 0% (the schema only provides a title and type). The description fully compensates for the lack of schema documentation for this parameter.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'List all stablecoins along with their circulating amounts.' This specifies the verb ('List'), resource ('stablecoins'), and key output information ('circulating amounts'). It distinguishes from siblings like 'get_stablecoin_prices' by focusing on comprehensive listing rather than price-specific queries, though it doesn't explicitly contrast with all stablecoin-related siblings.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention siblings like 'get_stablecoin_prices' (which might fetch only prices) or 'get_stablecoin_charts_all' (which might provide chart data), leaving the agent to infer usage from tool names alone. 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_token_protocolsB

GET /api/tokenProtocols/{symbol}

Lists the amount of a certain token within all protocols.

Parameters:
    symbol: token slug (e.g., 'usdt')
ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the action ('lists') but doesn't describe key traits like whether this is a read-only operation, potential rate limits, authentication needs, error handling, or the format of returned data. While it implies a safe read operation, the absence of detailed behavioral context is a significant gap.

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 appropriately sized and front-loaded, starting with the core purpose followed by parameter details. It uses two sentences with no wasted words, making it efficient. However, the structure could be slightly improved by integrating the parameter explanation more seamlessly, but it remains clear and concise.

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

Completeness3/5

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

Given the tool's low complexity (1 parameter) and the presence of an output schema, the description is moderately complete. It covers the purpose and parameter semantics adequately, but lacks behavioral details and usage guidelines. With no annotations and minimal context, it meets basic needs but leaves gaps in operational 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?

The description adds meaningful semantics beyond the input schema, which has 0% coverage. It explains that the 'symbol' parameter is a 'token slug' and provides an example ('usdt'), clarifying the expected format. Since there's only one parameter and the schema lacks descriptions, this compensation is effective, though it could be more detailed (e.g., explaining slug conventions).

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Lists the amount of a certain token within all protocols.' It specifies the verb ('lists'), resource ('amount of a certain token'), and scope ('within all protocols'), providing a concrete action. However, it doesn't explicitly differentiate from sibling tools like 'get_stablecoins' or 'get_chain_assets', which might also involve token data, so it falls short of a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, exclusions, or comparisons to sibling tools (e.g., 'get_protocols' or 'get_stablecoin_charts_all'), leaving the agent to infer usage based on the name and description alone. This lack of explicit context reduces its effectiveness.

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

get_treasuriesB

GET /api/treasuries

List all protocols on our Treasuries dashboard.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool lists protocols but does not describe any behavioral traits such as rate limits, authentication needs, pagination, or response format. This leaves significant gaps in understanding how the tool operates beyond its basic purpose.

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 concise and front-loaded, consisting of two sentences that directly state the tool's purpose. There is no wasted text, and it efficiently communicates the essential information. However, the inclusion of the API endpoint ('GET /api/treasuries') is slightly redundant but not detrimental to clarity.

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

Completeness3/5

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

Given that the tool has no parameters, an output schema exists, and no annotations are provided, the description is minimally adequate. It explains what the tool does but lacks details on behavioral aspects and usage context. With the output schema handling return values, the description is complete enough for basic understanding but could be more informative.

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 input schema has 0 parameters with 100% coverage, meaning no parameters are documented. The description does not add parameter information, which is acceptable since there are no parameters to explain. It meets the baseline for tools with zero parameters, though it doesn't compensate for any gaps (as there are none).

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

Purpose4/5

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

The description clearly states the tool's purpose: 'List all protocols on our Treasuries dashboard.' It specifies the verb ('List') and resource ('protocols on our Treasuries dashboard'), making it easy to understand what the tool does. However, it does not explicitly differentiate from sibling tools (e.g., 'get_protocols'), which keeps it from a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention any context, prerequisites, or exclusions, nor does it reference sibling tools like 'get_protocols' or 'get_protocol_details' that might serve similar purposes. This lack of usage instructions limits its effectiveness for an AI agent.

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

get_user_dataC

GET /api/userData/{type}/{protocolId}

Get user data by type and protocol.

Parameters:
    type: data type (e.g., 'activeUsers')
    protocol_id: protocol ID
ParametersJSON Schema
NameRequiredDescriptionDefault
typeYes
protocol_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It mentions it's a GET operation but doesn't disclose behavioral traits like authentication needs, rate limits, error handling, or what the output contains. The description is minimal and lacks critical operational context.

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 concise and front-loaded with the core purpose, followed by parameter details. It avoids unnecessary verbosity, though the structure could be improved by integrating the HTTP endpoint more naturally into the description.

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

Completeness3/5

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

Given 2 parameters with 0% schema coverage and an output schema present, the description is incomplete. It lacks details on parameter semantics and behavioral context, but the output schema mitigates some gaps by presumably defining return values. This results in a minimally adequate but insufficient description.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It lists parameters with brief examples ('e.g., 'activeUsers'') but doesn't explain valid values, constraints, or the relationship between type and protocol_id. This adds minimal meaning beyond the bare schema.

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

Purpose3/5

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

The description states 'Get user data by type and protocol' which provides a basic purpose, but it's vague about what 'user data' entails and doesn't distinguish from sibling tools like 'get_active_users'. The HTTP method 'GET' is mentioned but doesn't clarify the action beyond retrieving data.

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. With siblings like 'get_active_users' that might overlap, the description offers no context on differentiation, prerequisites, or appropriate use cases.

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

get_yield_chartB

GET /yields/chart/{pool}

Get historical APY and TVL of a pool.

Parameters:
    pool: pool id (can be retrieved from /pools)
ParametersJSON Schema
NameRequiredDescriptionDefault
poolYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions retrieving historical data (APY and TVL), which suggests a read-only operation, but doesn't clarify aspects like rate limits, authentication needs, data freshness, or error handling. For a tool with no annotation coverage, this leaves significant gaps in understanding its behavior.

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 concise and well-structured: it starts with the HTTP method and endpoint, states the purpose in a clear sentence, and lists parameters with brief explanations. There's no wasted text, and the information is front-loaded, making it easy to scan. It could be slightly more polished but is efficient overall.

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 complexity (simple retrieval with one parameter), the description covers the essential purpose and parameter semantics adequately. The presence of an output schema means the description doesn't need to explain return values, and the lack of annotations is partially offset by the clear read-only implication. However, more behavioral details would enhance completeness for a tool with no annotations.

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 description adds meaningful context for the single parameter 'pool', explaining it's a 'pool id (can be retrieved from /pools)'. This clarifies the parameter's purpose and source, which is valuable since the schema description coverage is 0% (the schema only provides a title 'Pool' without explanation). The description compensates well for the schema's lack of detail.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get historical APY and TVL of a pool.' It specifies the verb ('Get') and resources ('historical APY and TVL of a pool'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'get_yield_chart_lend_borrow' or 'get_yield_pools', which might have overlapping functionality.

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 provides some usage context by mentioning that the pool ID 'can be retrieved from /pools', which implies a prerequisite. However, it doesn't explicitly state when to use this tool versus alternatives like 'get_yield_chart_lend_borrow' or 'get_yield_pools', nor does it specify any exclusions or conditions for use. The guidance is implied but not comprehensive.

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

get_yield_chart_lend_borrowB

GET /yields/chartLendBorrow/{pool}

Historical borrow cost APY from a pool on a lending market.

Parameters:
    pool: pool id (can be retrieved from /poolsBorrow)
ParametersJSON Schema
NameRequiredDescriptionDefault
poolYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It states it's a GET operation for historical data, implying read-only behavior, but doesn't disclose other traits like rate limits, authentication needs, error handling, or what 'historical' entails (e.g., time range, granularity). The description is minimal and lacks behavioral details beyond the basic operation.

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

Conciseness4/5

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

The description is appropriately sized and front-loaded, starting with the endpoint and core purpose. The two sentences are efficient, with no wasted words. However, the structure could be slightly improved by integrating the parameter note more seamlessly, but it remains clear and concise overall.

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

Completeness3/5

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

Given the tool has an output schema (which reduces the need to describe return values) and no annotations, the description is moderately complete. It covers the purpose and parameter semantics adequately but lacks behavioral transparency and usage guidelines relative to siblings. For a tool with historical data retrieval, more context on data scope and limitations would enhance completeness.

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 description coverage is 0%, so the description must compensate. It adds meaningful context for the single parameter 'pool', explaining it's a pool ID and can be retrieved from '/poolsBorrow'. This clarifies the parameter's purpose and source, though it doesn't detail format constraints (e.g., string pattern) or provide examples.

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

Purpose4/5

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

The description clearly states the tool's purpose: retrieving historical borrow cost APY from a specific pool on a lending market. It specifies the verb ('GET'), resource ('/yields/chartLendBorrow/{pool}'), and scope ('historical borrow cost APY'). However, it doesn't explicitly differentiate from sibling tools like 'get_yield_chart' or 'get_yield_pools_borrow', which appear related but have different focuses.

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 context by mentioning that the pool parameter can be retrieved from '/poolsBorrow', which suggests a prerequisite. However, it doesn't provide explicit guidance on when to use this tool versus alternatives (e.g., 'get_yield_chart' or 'get_yield_pools_borrow'), nor does it specify exclusions or ideal scenarios for its use.

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

get_yield_lsd_ratesB

GET /yields/lsdRates

APY rates of multiple LSDs.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states it's a GET operation, implying read-only, but doesn't specify rate limits, authentication needs, response format, or data freshness. The description adds minimal behavioral context beyond the HTTP method.

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

Conciseness3/5

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

The description is very brief with two sentences, but the first sentence is just the endpoint path, which adds little value beyond the tool name. The second sentence states the purpose efficiently. It's front-loaded with the endpoint, but could be more informative by integrating the purpose first.

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

Completeness3/5

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

Given the tool has 0 parameters, 100% schema coverage, and an output schema exists, the description is minimally complete. However, for a data retrieval tool with no annotations, it lacks details on data scope (e.g., time period, LSD types), response structure, or error handling, leaving gaps in 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?

The tool has 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate here, but it could mention if any implicit parameters (like time range) are assumed. Baseline is 4 for zero-parameter tools.

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

Purpose4/5

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

The description clearly states the tool retrieves APY rates of multiple LSDs (Liquid Staking Derivatives), which is a specific verb ('GET') and resource ('yields/lsdRates'). It distinguishes from siblings by focusing on LSD yield rates rather than other yield-related tools like get_yield_chart or get_yield_pools. However, it doesn't explicitly contrast with all siblings, just implies a specific data type.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any context, prerequisites, or exclusions, nor does it refer to sibling tools like get_yield_pools or get_yield_chart that might offer related data. Usage is implied only by the endpoint path.

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

get_yield_perpsB

GET /yields/perps

Funding rates and Open Interest of perps across exchanges, including both Decentralized and Centralized.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It states the tool performs a GET operation (implying read-only) and specifies the data returned, but lacks details on behavioral traits like rate limits, authentication needs, pagination, error handling, or data freshness. For a tool with zero annotation coverage, this is a significant gap in transparency.

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

Conciseness4/5

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

The description is concise and front-loaded, consisting of two sentences that directly state the tool's purpose and scope. There's no wasted text, though it could be slightly more structured by explicitly separating the HTTP method from the data description.

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

Completeness3/5

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

Given the tool has 0 parameters, 100% schema coverage, and an output schema exists, the description is minimally adequate. However, as a read operation with no annotations, it lacks completeness in areas like behavioral context (e.g., rate limits, data sources) and doesn't leverage the output schema to hint at return structure, leaving room for improvement.

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 input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter semantics, but that's appropriate given the schema completeness. A baseline of 4 is assigned as the description doesn't need to compensate for any parameter gaps.

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

Purpose4/5

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

The description clearly states the tool retrieves 'Funding rates and Open Interest of perps across exchanges, including both Decentralized and Centralized.' It specifies the resource (perps) and data types (funding rates, open interest) with scope (across exchanges). However, it doesn't explicitly differentiate from sibling tools like get_derivatives_overview or get_derivatives_summary, which might cover similar data.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, exclusions, or comparisons to sibling tools such as get_derivatives_overview or get_yield_chart, leaving the agent to infer usage context solely 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.

get_yield_poolsB

GET /yields/pools

Retrieve the latest data for all pools, including enriched information such as predictions.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions retrieving 'latest data' and 'enriched information such as predictions,' which hints at read-only behavior and data freshness, but doesn't explicitly state whether this is a read operation, if it requires authentication, rate limits, or what the response format entails. For a tool with zero annotation coverage, this is insufficient.

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 extremely concise and front-loaded, consisting of just two sentences that efficiently convey the purpose and scope. Every word earns its place, with no redundant or unnecessary information, making it easy for an agent to parse quickly.

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 has 0 parameters, 100% schema coverage, and an output schema exists, the description is reasonably complete. It specifies the resource (pools), data recency (latest), and enrichment (predictions), which provides good context. However, with no annotations, it could better address behavioral aspects like read-only nature or response format, though the output schema mitigates some of this.

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

Parameters4/5

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

The tool has 0 parameters with 100% schema description coverage, so the schema fully documents the lack of inputs. The description doesn't need to add parameter details, and it correctly implies no filtering or arguments are required by stating it retrieves data for 'all pools.' This aligns well with the schema, earning a baseline 4 for zero-parameter tools.

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

Purpose4/5

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

The description clearly states the tool retrieves latest data for all pools with enriched information like predictions. It specifies the verb (retrieve), resource (pools), and scope (all pools with enriched data). However, it doesn't explicitly differentiate from sibling tools like get_yield_pools_borrow or get_yield_pools_old, which would require a 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like get_yield_pools_borrow or get_yield_pools_old, nor does it specify any context or prerequisites for usage. This leaves the agent without direction on tool selection.

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

get_yield_pools_borrowB

GET /yields/poolsBorrow

Borrow costs APY of assets from lending markets.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior2/5

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

With no annotations, the description carries full burden but provides minimal behavioral insight. It mentions the action (GET) and data type (borrow costs APY), but fails to disclose critical traits like rate limits, authentication needs, error handling, or response format, which are essential for safe and effective use.

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

Conciseness3/5

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

The description is concise with three lines, but it includes redundant information (the endpoint 'GET /yields/poolsBorrow') that may not add value beyond the tool name. The core purpose is stated clearly, but the structure could be more streamlined by focusing solely on the functional description.

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

Completeness3/5

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

Given the tool's simplicity (0 parameters, output schema exists), the description is minimally adequate. However, it lacks details on behavioral aspects like data freshness, scope (e.g., all assets or filtered), or integration context, which would enhance completeness for effective agent 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?

The tool has 0 parameters with 100% schema description coverage, so no parameter information is needed. The description doesn't add param details, but this is acceptable given the lack of parameters, aligning with the baseline for zero parameters.

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

Purpose4/5

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

The description clearly states the tool's purpose: retrieving borrow costs APY of assets from lending markets. It specifies the resource (borrow costs APY) and action (GET), though it doesn't explicitly differentiate from sibling tools like 'get_yield_pools' or 'get_yield_pools_old', which prevents a perfect score.

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. The description lacks context about use cases, prerequisites, or comparisons to sibling tools such as 'get_yield_pools' or 'get_yield_chart_lend_borrow', leaving the agent without direction.

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

get_yield_pools_oldC

GET /yields/poolsOld

Same as /pools but it also includes a new parameter `pool_old` which usually contains pool address.
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It mentions a parameter 'pool_old' but doesn't disclose behavioral traits like whether this is a read-only operation, what data format is returned, or any constraints. The description is insufficient for understanding how the tool behaves beyond a vague parameter mention.

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

Conciseness3/5

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

The description is brief but poorly structured. It starts with 'GET /yields/poolsOld' which is redundant with the tool name, and the second sentence adds minimal context. While concise, it lacks front-loaded clarity and wastes space on tautological elements.

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

Completeness3/5

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

Given 0 parameters and an output schema exists, the description doesn't need to explain return values. However, with no annotations and a vague purpose, it fails to provide complete context for tool selection. It's minimally adequate but has clear gaps in explaining what this tool does compared to siblings.

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 input schema has 0 parameters with 100% coverage, so no parameters need documentation. The description mentions a parameter 'pool_old' which might be confusing since the schema shows none, but this doesn't negatively impact the score as the baseline for 0 parameters is 4. No additional parameter semantics are needed.

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

Purpose2/5

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

The description states 'Same as /pools' which is tautological with the tool name 'get_yield_pools_old' and doesn't clearly articulate what the tool does. It mentions a parameter 'pool_old' but doesn't explain what resource or data this tool retrieves. The purpose remains vague and circular.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'get_yield_pools' or 'get_yield_pools_borrow' from the sibling list. It only mentions a parameter difference without context on use cases or exclusions, leaving the agent with no usage direction.

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. Dates show when Glama detected each change.

  1. 61 tool updatesv1.0.0
    • Changedget_active_users1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_active_usersOutput",
        +  "type": "object"
        +}
    • Changedget_batch_historical_prices1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_batch_historical_pricesOutput",
        +  "type": "object"
        +}
    • Changedget_bridge_day_stats1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_bridge_day_statsOutput",
        +  "type": "object"
        +}
    • Changedget_bridge_details1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_bridge_detailsOutput",
        +  "type": "object"
        +}
    • Changedget_bridge_transactions1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_bridge_transactionsOutput",
        +  "type": "object"
        +}
    • Changedget_bridge_volume1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_bridge_volumeOutput",
        +  "type": "object"
        +}
    • Changedget_bridges1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_bridgesOutput",
        +  "type": "object"
        +}
    • Changedget_categories1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_categoriesOutput",
        +  "type": "object"
        +}
    • Changedget_chain_assets1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_chain_assetsOutput",
        +  "type": "object"
        +}
    • Changedget_chains1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_chainsOutput",
        +  "type": "object"
        +}
    • Changedget_closest_block1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_closest_blockOutput",
        +  "type": "object"
        +}
    • Changedget_current_prices1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_current_pricesOutput",
        +  "type": "object"
        +}
    • Changedget_derivatives_overview1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_derivatives_overviewOutput",
        +  "type": "object"
        +}
    • Changedget_derivatives_summary1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_derivatives_summaryOutput",
        +  "type": "object"
        +}
    • Changedget_dex_overview1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_dex_overviewOutput",
        +  "type": "object"
        +}
    • Changedget_dex_overview_by_chain1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_dex_overview_by_chainOutput",
        +  "type": "object"
        +}
    • Changedget_dex_summary1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_dex_summaryOutput",
        +  "type": "object"
        +}
    • Changedget_emission_data1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_emission_dataOutput",
        +  "type": "object"
        +}
    • Changedget_emissions1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_emissionsOutput",
        +  "type": "object"
        +}
    • Changedget_entities1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_entitiesOutput",
        +  "type": "object"
        +}
    • Changedget_etf_history1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_etf_historyOutput",
        +  "type": "object"
        +}
    • Changedget_etf_history_eth1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_etf_history_ethOutput",
        +  "type": "object"
        +}
    • Changedget_etf_overview1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_etf_overviewOutput",
        +  "type": "object"
        +}
    • Changedget_etf_overview_eth1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_etf_overview_ethOutput",
        +  "type": "object"
        +}
    • Changedget_fdv_performance1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_fdv_performanceOutput",
        +  "type": "object"
        +}
    • Changedget_fees_summary1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_fees_summaryOutput",
        +  "type": "object"
        +}
    • Changedget_first_price_record1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_first_price_recordOutput",
        +  "type": "object"
        +}
    • Changedget_forks1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_forksOutput",
        +  "type": "object"
        +}
    • Changedget_hacks1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_hacksOutput",
        +  "type": "object"
        +}
    • Changedget_historical_chain_tvl1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_historical_chain_tvlOutput",
        +  "type": "object"
        +}
    • Changedget_historical_chain_tvl_by_chain1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_historical_chain_tvl_by_chainOutput",
        +  "type": "object"
        +}
    • Changedget_historical_liquidity1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_historical_liquidityOutput",
        +  "type": "object"
        +}
    • Changedget_historical_prices1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_historical_pricesOutput",
        +  "type": "object"
        +}
    • Changedget_options_overview1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_options_overviewOutput",
        +  "type": "object"
        +}
    • Changedget_options_overview_by_chain1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_options_overview_by_chainOutput",
        +  "type": "object"
        +}
    • Changedget_options_summary1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_options_summaryOutput",
        +  "type": "object"
        +}
    • Changedget_oracles1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_oraclesOutput",
        +  "type": "object"
        +}
    • Changedget_price_chart1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_price_chartOutput",
        +  "type": "object"
        +}
    • Changedget_price_percentage1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_price_percentageOutput",
        +  "type": "object"
        +}
    • Changedget_protocol_details1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_protocol_detailsOutput",
        +  "type": "object"
        +}
    • Changedget_protocol_inflows1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_protocol_inflowsOutput",
        +  "type": "object"
        +}
    • Changedget_protocol_tvl1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_protocol_tvlOutput",
        +  "type": "object"
        +}
    • Changedget_protocols1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_protocolsOutput",
        +  "type": "object"
        +}
    • Changedget_raises1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_raisesOutput",
        +  "type": "object"
        +}
    • Changedget_stablecoin_chains1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_stablecoin_chainsOutput",
        +  "type": "object"
        +}
    • Changedget_stablecoin_charts_all1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_stablecoin_charts_allOutput",
        +  "type": "object"
        +}
    • Changedget_stablecoin_charts_by_chain1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_stablecoin_charts_by_chainOutput",
        +  "type": "object"
        +}
    • Changedget_stablecoin_dominance1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_stablecoin_dominanceOutput",
        +  "type": "object"
        +}
    • Changedget_stablecoin_history1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_stablecoin_historyOutput",
        +  "type": "object"
        +}
    • Changedget_stablecoin_prices1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_stablecoin_pricesOutput",
        +  "type": "object"
        +}
    • Changedget_stablecoins1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_stablecoinsOutput",
        +  "type": "object"
        +}
    • Changedget_token_protocols1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_token_protocolsOutput",
        +  "type": "object"
        +}
    • Changedget_treasuries1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_treasuriesOutput",
        +  "type": "object"
        +}
    • Changedget_user_data1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_user_dataOutput",
        +  "type": "object"
        +}
    • Changedget_yield_chart1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_yield_chartOutput",
        +  "type": "object"
        +}
    • Changedget_yield_chart_lend_borrow1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_yield_chart_lend_borrowOutput",
        +  "type": "object"
        +}
    • Changedget_yield_lsd_rates1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_yield_lsd_ratesOutput",
        +  "type": "object"
        +}
    • Changedget_yield_perps1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_yield_perpsOutput",
        +  "type": "object"
        +}
    • Changedget_yield_pools1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_yield_poolsOutput",
        +  "type": "object"
        +}
    • Changedget_yield_pools_borrow1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_yield_pools_borrowOutput",
        +  "type": "object"
        +}
    • Changedget_yield_pools_old1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "result": {
        +      "title": "Result",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "result"
        +  ],
        +  "title": "get_yield_pools_oldOutput",
        +  "type": "object"
        +}
  2. 61 tool updates
    • First observedget_active_users
    • First observedget_batch_historical_prices
    • First observedget_bridge_day_stats
    • First observedget_bridge_details
    • First observedget_bridge_transactions
    • First observedget_bridge_volume
    • First observedget_bridges
    • First observedget_categories
    • First observedget_chain_assets
    • First observedget_chains
    • First observedget_closest_block
    • First observedget_current_prices
    • First observedget_derivatives_overview
    • First observedget_derivatives_summary
    • First observedget_dex_overview
    • First observedget_dex_overview_by_chain
    • First observedget_dex_summary
    • First observedget_emission_data
    • First observedget_emissions
    • First observedget_entities
    • First observedget_etf_history
    • First observedget_etf_history_eth
    • First observedget_etf_overview
    • First observedget_etf_overview_eth
    • First observedget_fdv_performance
    • First observedget_fees_summary
    • First observedget_first_price_record
    • First observedget_forks
    • First observedget_hacks
    • First observedget_historical_chain_tvl
    • First observedget_historical_chain_tvl_by_chain
    • First observedget_historical_liquidity
    • First observedget_historical_prices
    • First observedget_options_overview
    • First observedget_options_overview_by_chain
    • First observedget_options_summary
    • First observedget_oracles
    • First observedget_price_chart
    • First observedget_price_percentage
    • First observedget_protocol_details
    • First observedget_protocol_inflows
    • First observedget_protocol_tvl
    • First observedget_protocols
    • First observedget_raises
    • First observedget_stablecoin_chains
    • First observedget_stablecoin_charts_all
    • First observedget_stablecoin_charts_by_chain
    • First observedget_stablecoin_dominance
    • First observedget_stablecoin_history
    • First observedget_stablecoin_prices
    • First observedget_stablecoins
    • First observedget_token_protocols
    • First observedget_treasuries
    • First observedget_user_data
    • First observedget_yield_chart
    • First observedget_yield_chart_lend_borrow
    • First observedget_yield_lsd_rates
    • First observedget_yield_perps
    • First observedget_yield_pools
    • First observedget_yield_pools_borrow
    • First observedget_yield_pools_old

TDQS

B3.1/5.0
Disambiguation3/5

Tools are generally distinct by resource type (e.g., bridges, prices, protocols), but there is notable overlap in some areas. For example, multiple price-related tools (get_current_prices, get_historical_prices, get_price_chart, get_price_percentage) could cause confusion about which to use for specific price queries. Similarly, overview and summary tools for derivatives, dexs, and options have overlapping purposes that might require careful reading of descriptions to differentiate.

Naming Consistency5/5

Tool names follow a highly consistent verb_noun pattern throughout, all starting with 'get_' followed by a descriptive noun phrase (e.g., get_bridge_details, get_historical_prices). There are no deviations in naming style, making it easy to predict tool names and understand their general purpose at a glance.

Tool Count2/5

With 61 tools, the count is excessive for a single server, making it overwhelming and difficult for an agent to navigate efficiently. While the server covers a broad crypto domain (prices, bridges, protocols, yields, etc.), the toolset feels bloated and could benefit from consolidation or modularization into more focused servers.

Completeness4/5

The toolset provides extensive coverage across multiple crypto domains (e.g., prices, bridges, protocols, yields, stablecoins), with CRUD-like operations for many resources. However, there are minor gaps, such as limited update or delete operations (typical for read-heavy APIs) and some areas like user data or emissions lacking full lifecycle coverage, though agents can likely work around these given the breadth of read operations.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables interaction with the CoinGecko Pro API to access cryptocurrency data including price history and market metrics through both MCP and OpenAI function calling.
    9
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    MCP server for pay-per-call DeFi and crypto data via x402 micropayments on Base. 8 endpoints: token prices, TVL, funding rates, token security, gas tracker, whale monitoring, wallet profiling, and yield scanning.
    8
    51
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Provides cryptographically verifiable RWA trust attestations and multi-chain DeFi data (TVL, top protocols, positioning scorecards) via MCP tools for AI assistants.
    11
    1
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/0xReisearch/crypto-mcp-beta'

If you have feedback or need assistance with the MCP directory API, please join our Discord server