Skip to main content
Glama
rwapipe
by rwapipe

RWA Pipe MCP — RWA Data for AI Agents

The first MCP server purpose-built for AI agents that need to query, route, or hold tokenized real-world assets. ~$30B in distributed asset value across treasuries, private credit, real estate, gold, and equities — exposed as 47 tools any Claude / Cursor / Continue / custom agent can call.

Designed for the AI-treasury-management story: agents holding idle USDC need yield destinations they can evaluate and allocate to under explicit compliance constraints. RWA Pipe gives them the data layer to do that.


Why AI agents specifically?

What humans use

What agents need

Dashboard charts (rwa.xyz, DeFi Llama)

Structured JSON they can branch on

"Show me concentration over time"

get_token_risk_signals returning anomaly classifications + flat flags[]

Filter UI on a website

get_rwa_tokens({kycRequired: false, jurisdiction: 'US', minTvl: 50000000})

PDF audit reports

(coming) LLM-readable attestation summaries

Subscription paywalls

(coming) x402 micropayments — agent pays per call in USDC

Nobody else does this for RWA. Coinbase / BitGo / CoinGecko have crypto MCPs. The Graph is generic. rwa.xyz sells dashboards to humans for $500/seat. We are the only canonical RWA MCP — and we shipped it before the category exists.


Related MCP server: CryptoQuant MCP Server

Quick Start

npx rwapipe-mcp

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "rwapipe": {
      "command": "npx",
      "args": ["rwapipe-mcp"],
      "env": {
        "RWAPIPE_API_KEY": "rwa_free_your_key_here"
      }
    }
  }
}

Get a free key at https://rwapipe.com/register. Free tier = 100 req/min, no credit card.

Cursor / Continue

Same MCP-server config block under your editor's MCP settings. The server speaks both stdio and SSE.


Flagship tools for agent use cases

get_rwa_tokens — constraint-driven token discovery

The whole point: agents specify what they need in plain JSON and get a list of matching tokens.

get_rwa_tokens({
  category: "us-treasury",
  kycRequired: false,         // permissionless only
  audited: true,
  redeemable: true,           // must have on-chain exit
  minTvl: 50_000_000,         // institutional-grade
  hasApy: true,
  sortBy: "tvl",
  limit: 10
})

14 constraint filters map directly to the questions a treasury allocator agent has to answer:

Filter

What it answers

kycRequired, accreditedOnly

"Can I hold this without onboarding?"

audited, hasAttestation

"Has anyone independently verified the contract / collateral?"

redeemable, transferable

"Can I exit / can I move it on-chain?"

jurisdiction, custodianType, fundDomicile

"Does this match our regulatory mandate?"

minTvl, maxManagementFee, maxMinInvestment

"Is the size and economics OK?"

Plus the basics: chain, category, issuer, search, hasApy, excludeStablecoins, distributionType, platform, eligibleInvestors.

get_token_risk_signals — single-call risk dashboard

Returns the structured signals an agent needs to decide "is it safe to hold this right now":

{
  "token": {"chain":"ethereum","symbol":"BUIDL","issuer":"BlackRock"},
  "signals": {
    "tvl": {"current_usd": 147652591, "change_24h_pct": 0.01, "anomaly": "stable"},
    "mint_burn_24h": {"net_qty": 0, "anomaly": "quiet"},
    "whale_activity_24h": {"large_transfers_count": 0, "anomaly": "quiet"},
    "attestation": {"url": null, "status": "missing"},
    "compliance": {
      "kyc_required": true, "accredited_only": true,
      "jurisdiction": "US", "transferable": false,
      "audited": true, "custodian_type": "qualified"
    }
  },
  "flags": ["no_attestation_url", "kyc_required", "accredited_only"]
}

Anomaly classifications (stable/rising/falling/volatile for TVL; quiet/expansion/contraction for mints; quiet/active/outflow_spike for whales) replace the agent having to threshold raw numbers itself. The flat flags[] array is designed to be matchable against an agent's allow/deny rules.

get_whale_alerts — real-time whale-flow stream

Real-time mint/burn/transfer events >$50K USD with 1h delay on free tier. Agent subscribes to its own filter (chain, category, symbol).

Polling pattern for "subscribe to changes"

MCP servers don't push — agents poll. Recommended cadence for a treasury-monitoring agent:

Tool

Suggested interval

What changes

get_token_risk_signals

5–15 min

TVL drift, mint/burn anomaly classification, whale-activity flag

get_whale_alerts({symbol, chain, timeWindow: '1h'})

5 min

Individual large transfers

get_mint_burn_events({chain, days: 1})

15 min

Bulk mint/burn breakdown

get_rwa_tokens({...constraints})

60 min

Cohort membership changes (a token entered/left the agent's allow-list)

Compare against the agent's last-seen state, alert on diffs. Free tier (100 req/min) is plenty for this pattern across dozens of tokens.


Reference use case: "treasury allocator agent"

Prompt to Claude with this MCP loaded:

"I have $10M idle USDC on Base. Find the best yield-bearing tokenized treasury exposure with these constraints: no KYC, transferable on-chain, contract audited, minimum $50M TVL, redeemable within T+2. Rank by APY and current risk signals. Show your reasoning."

What the agent does:

  1. Calls get_rwa_tokens({chain: "base", category: "us-treasury", kycRequired: false, transferable: true, audited: true, minTvl: 50_000_000, hasApy: true, sortBy: "apy"})

  2. For each candidate, calls get_token_risk_signals(chain, address) to check anomalies

  3. Filters out tokens with flags matching no_attestation_url or whale_outflow_spike_24h for added safety

  4. Returns ranked list with explicit risk reasoning

This whole loop is one user prompt and three MCP calls — no website scraping, no PDF reading, no broker. That's the AI-RWA opportunity.


All 47 tools

AI-agent decision-making (new, flagship)

Tool

Use case

get_rwa_tokens

Constraint-driven token discovery (14 filters)

get_token_risk_signals

One-call structured risk dashboard for a token

get_whale_alerts

Whale-flow stream for monitoring/subscription

Tokens

Tool

Description

get_token_details

Get token info: supply, APY, holders, issuer

get_token_transfers

Recent transfers for a token

get_token_holders

Top holders sorted by balance

get_token_history

Historical TVL/supply data

get_holder_balance

Balance of specific holder for a token

get_wallet_portfolio

All RWA holdings for a wallet across all chains

Market

Tool

Description

get_rwa_market

Market overview with all token stats

get_market_stats

Total TVL, token count, average APY

get_market_trends

24h/7d changes by category and chain

get_market_movers

Top gainers and losers

get_market_concentration

Holder concentration across all tokens

TVL

Tool

Description

get_tvl_history

Historical TVL data (up to 365 days)

get_tvl_by_chain

Current TVL by blockchain

get_tvl_by_category

TVL by asset category

get_tvl_by_issuer

TVL by issuer

get_cross_chain_tvl

Cross-chain TVL for a token

Issuers, Categories, Chains

Tool

Description

get_issuers

All token issuers with aggregated TVL

get_issuer_details

Issuer details and their tokens

get_categories

Token categories with TVL stats

get_category_details

Category details and tokens

get_chains

Supported blockchains with TVL

Mint/Burn

Tool

Description

get_mint_burn_events

Recent mint or burn events

get_mint_burn_summary

Daily mint/burn aggregates

Risk & Whales

Tool

Description

get_risk_score

Token risk score with sub-scores

get_holder_concentration

Concentration metrics for one token

get_large_transfers

Recent whale transfers for a token

get_whale_alerts

Whale-sized transfers with filters

get_whale_net_flow

Net inflow/outflow for an address

get_transfer_size_distribution

Whale-transfer size histogram (5 USD buckets)

compare_treasuries

Side-by-side treasury comparison

Due diligence & discovery

Tool

Description

get_dossier

Complete DAO-grade due-diligence dossier for one token

get_dossier_diff

What changed in a token's dossier since a baseline date (quarterly re-review)

compare_dossiers

Up to 12 tokens as compact diligence rows side-by-side

compare_tokens

2-6 tokens compared on live metrics (any category)

resolve_token

Fuzzy-match a name/symbol/issuer to (chain, address) candidates

get_new_issues

Recently-launched RWA tokens within a time window

Yields, Webhooks, Contracts

Tool

Description

get_token_yields

APY data for yield-bearing tokens

manage_webhooks

Subscribe to mint/burn/whale events

get_contract_profile

Contract intelligence for an address

list_contract_events

Contract activity events

list_contract_relations

Discovered contract relationships

run_contract_scan

Trigger a fresh contract scan

list_contract_profiles

Browse all known contracts


Supported blockchains (22 active)

EVM

ethereum, arbitrum, avalanche, base, bsc, celo, gnosis, linea, mantle, optimism, polygon, zksync, fraxtal, ink, plume, scroll, fantom, sei

Non-EVM

solana, stellar, hedera, sui, ton, xrpl, near

(algorand / tron deprecated 2026-04-30 due to indexer freshness — chain handlers retained for future re-add.)


Asset categories

Category

Examples

us-treasury

BUIDL, USDY, OUSG, USDM

stablecoin

USDT, USDC, USD0, PYUSD

money-market

Money market funds

commodity / gold

PAXG, XAUT

equity

bIB01, BackedERNX

non-us-debt

bHIGH, bIBTA

corporate-bond

Corporate bond tokens

private-credit

Maple, Centrifuge pools

structured-credit

Structured tranches

real-estate

RealT, Lofty


Environment variables

Variable

Default

Description

RWAPIPE_API_KEY

required

API key. Get free at https://rwapipe.com/register

RWAPIPE_API_URL

https://rwapipe.com/api

API endpoint

MCP_MODE

stdio

Transport mode: stdio or sse

MCP_PORT

3001

Port for SSE mode


SSE mode (hosted)

For multi-tenant agent platforms, run as SSE server:

MCP_MODE=sse MCP_PORT=3001 npm start

Endpoints: GET /sse (connection), POST /message (RPC), GET /health, GET / (info).

A hosted SSE server is also available at https://rwapipe.com/mcp for low-volume experiments.


Roadmap (pre-1.0)

  • ✅ 47 tools, 28 chains, 392 curated tokens (2026-07-20; registry pruned of 599 phantom entries 2026-07)

  • ✅ AI-agent constraint filters + risk-signals composite

  • 🚧 LLM-parsed attestation summaries (get_diligence_summary)

  • 🚧 Token taxonomy: regulatory_class, programmability, risk_class

  • 🚧 Agent-subscription stream (subscribe_anomaly)

  • 🚧 x402 metering — pay-per-call in USDC


License

MIT

Available Tools

18 tools
get_categoriesA

Get list of all RWA token categories (us-treasury, stablecoin, money-market, etc.) with TVL and stats

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/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 tool retrieves a list with TVL and stats, but does not disclose behavioral traits such as whether it's read-only, requires authentication, has rate limits, or how data is formatted/returned. The description is minimal and lacks critical operational details.

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

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the purpose with no wasted words. It directly states what the tool does, includes examples, and specifies the output data, making it appropriately sized and 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 simplicity (0 parameters, no output schema, no annotations), the description is adequate but has gaps. It explains the purpose and output (TVL and stats), but without annotations or output schema, it lacks details on behavior, return format, or error handling. It meets minimum viability but could be more complete.

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

Parameters4/5

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

The tool has 0 parameters with 100% schema description coverage, so no parameter documentation is needed. The description does not add parameter semantics beyond the schema, but this is acceptable given the lack of parameters. Baseline is 4 as per rules for 0 parameters.

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

Purpose5/5

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

The description clearly states the specific verb ('Get') and resource ('list of all RWA token categories'), including examples of categories (us-treasury, stablecoin, money-market) and the data returned (TVL and stats). It distinguishes from siblings like get_category_details (which presumably gets details for a specific category) by emphasizing 'all' categories.

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

Usage Guidelines3/5

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

The description implies usage for retrieving a comprehensive list of categories with TVL and stats, but does not explicitly state when to use this tool versus alternatives like get_category_details or get_rwa_tokens. No exclusions or prerequisites are mentioned, leaving usage context inferred rather than explicit.

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

get_category_detailsC

Get detailed information about a specific category including all tokens in that category

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYesCategory type

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 implies a read-only operation ('Get') but does not specify permissions, rate limits, error handling, or response format. For a tool with zero annotation coverage, this lacks critical behavioral details.

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

Conciseness5/5

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

The description is a single, efficient sentence that directly states the tool's function without unnecessary words. It is front-loaded and wastes no space, making it highly concise and well-structured.

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

Completeness2/5

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

Given no annotations and no output schema, the description is incomplete. It does not explain what 'detailed information' includes, how tokens are listed, or the response structure. For a tool that likely returns complex data (category details with tokens), more context is needed to guide the agent effectively.

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

Parameters3/5

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

Schema description coverage is 100%, with the single parameter 'type' fully documented in the schema (including enum values). The description adds no additional parameter semantics beyond what the schema provides, so it meets the baseline for high schema coverage without compensating 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 verb ('Get') and resource ('detailed information about a specific category including all tokens in that category'), making the purpose evident. However, it does not explicitly differentiate from sibling tools like 'get_categories' (which likely lists categories) or 'get_token_details' (which focuses on individual tokens), missing full 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?

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, exclusions, or comparisons to siblings such as 'get_categories' for broader category lists or 'get_token_details' for token-specific data, 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_chainsA

Get list of all supported blockchains with TVL, token counts, and categories per chain

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/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 describes the data returned (TVL, token counts, categories), which adds behavioral context beyond the empty input schema. However, it lacks details on rate limits, pagination, or error conditions, leaving gaps in behavioral understanding 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.

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the core purpose ('Get list of all supported blockchains') and specifies key data points. There is no wasted text, making it highly concise and well-structured for quick understanding.

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 read operation with no parameters) and lack of annotations/output schema, the description is reasonably complete. It explains what data is returned, but could improve by mentioning data freshness or format. For a zero-parameter tool, it provides sufficient context for basic 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 appropriately does not discuss parameters, focusing on the tool's purpose instead. This meets the baseline for tools with no parameters, as it avoids unnecessary details.

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

Purpose5/5

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

The description clearly states the verb 'Get' and the resource 'list of all supported blockchains', specifying the data returned (TVL, token counts, categories per chain). It distinguishes from siblings like 'get_tvl_by_chain' (which focuses on TVL only) and 'get_categories' (which lists categories without chain details).

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

Usage Guidelines3/5

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

The description implies usage for retrieving comprehensive blockchain data, but does not explicitly state when to use this tool versus alternatives like 'get_tvl_by_chain' (for TVL-only data) or 'get_categories' (for category lists). No exclusions or prerequisites are mentioned, leaving usage context inferred rather than guided.

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

get_holder_balanceC

Get the balance of a specific holder for an RWA token

ParametersJSON Schema
NameRequiredDescriptionDefault
token_addressYesToken contract address
holder_addressYesHolder wallet address

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's purpose but does not reveal any behavioral traits, such as whether it's a read-only operation, requires authentication, has rate limits, or what happens with invalid inputs. This leaves significant gaps for an agent to understand how to use it safely and effectively.

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

Conciseness5/5

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

The description is a single, direct sentence that efficiently conveys the core purpose without any unnecessary words. It is front-loaded with the main action and target, making it easy to parse and understand quickly.

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

Completeness2/5

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

Given the lack of annotations and output schema, the description is incomplete. It does not address behavioral aspects like safety or performance, nor does it hint at the return format (e.g., balance value, units, or error handling). For a tool with no structured metadata, more context is needed to guide an agent effectively.

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

Parameters3/5

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

The input schema has 100% description coverage, with clear parameter descriptions ('Token contract address' and 'Holder wallet address'). The description adds no additional semantic context beyond what the schema provides, such as format examples or validation rules, so it meets the baseline for high schema coverage without compensating further.

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 action ('Get the balance') and target ('of a specific holder for an RWA token'), which is specific and unambiguous. However, it does not explicitly differentiate from sibling tools like 'get_token_holders' or 'get_wallet_portfolio', which might provide related but different information.

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 prerequisites, such as needing valid token and holder addresses, or compare it to siblings like 'get_token_holders' for broader holder data or 'get_wallet_portfolio' for comprehensive wallet insights.

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

get_issuer_detailsC

Get detailed information about a specific issuer including all their tokens

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesIssuer name (e.g., BlackRock, Ondo Finance, Circle)

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 retrieves 'detailed information' and 'all their tokens,' but doesn't specify what details are included (e.g., issuer metadata, token lists), whether it's a read-only operation, error handling, or performance aspects like rate limits. 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.

Conciseness5/5

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

The description is a single, efficient sentence: 'Get detailed information about a specific issuer including all their tokens.' It is front-loaded with the core purpose and includes no redundant or unnecessary information, making it highly concise and well-structured.

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

Completeness2/5

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

Given the tool's complexity (retrieving issuer details and tokens), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what 'detailed information' entails, the format of returned data (e.g., structured object with fields), or how tokens are included (e.g., as a list). This leaves the agent with insufficient context for effective use.

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

Parameters3/5

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

The input schema has 100% description coverage, with the 'name' parameter documented as 'Issuer name (e.g., BlackRock, Ondo Finance, Circle).' The description adds no additional parameter semantics beyond what the schema provides, such as format constraints or examples. With high schema coverage, the baseline score is 3, as the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Get detailed information about a specific issuer including all their tokens.' It specifies the verb ('Get'), resource ('issuer'), and scope ('including all their tokens'), which distinguishes it from siblings like 'get_issuers' (likely a list) and 'get_token_details' (token-specific). However, it doesn't explicitly differentiate from all siblings, such as 'get_category_details' or 'get_holder_balance', which might have overlapping contexts.

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 (e.g., needing an issuer name), exclusions (e.g., what happens if the issuer isn't found), or comparisons to siblings like 'get_issuers' (for listing issuers) or 'get_token_details' (for individual tokens). The agent must infer usage from the name and description alone.

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

get_issuersA

Get list of all RWA token issuers with aggregated TVL, token counts, and average APY. Sorted by TVL.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/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 only states what data is returned (TVL, token counts, APY) and sorting behavior. It lacks critical behavioral details like whether this is a real-time or cached query, rate limits, authentication requirements, or pagination handling for potentially large issuer lists.

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

Conciseness5/5

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

The description is a single, well-structured sentence that efficiently communicates purpose, scope, key metrics, and sorting behavior without any redundant information. Every element serves a clear purpose in helping the agent understand the tool's function.

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?

For a zero-parameter read-only tool, the description provides adequate information about what data is returned and how it's organized. However, without annotations or output schema, it lacks details about response format, error conditions, or performance characteristics that would help the agent use 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 tool has 0 parameters with 100% schema description coverage, so no parameter documentation is needed. The description appropriately focuses on output semantics rather than inputs, establishing baseline expectations for what data will be returned.

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

Purpose5/5

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

The description clearly states the specific action ('Get list'), resource ('all RWA token issuers'), and key attributes ('aggregated TVL, token counts, and average APY') with explicit sorting ('Sorted by TVL'). It distinguishes from siblings like 'get_issuer_details' by focusing on aggregated list rather than individual issuer details.

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 through the mention of aggregated metrics and sorting, suggesting it's for overview/analysis rather than detailed inspection. However, it doesn't explicitly state when to use this vs. alternatives like 'get_issuer_details' for specific issuer data or 'get_rwa_market' for broader market context.

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

get_market_moversC

Get top gainers and losers by 24h TVL change. Shows tokens with biggest increases and decreases.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of tokens to return in each category (default: 5, max: 20)

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 what the tool does but lacks critical details: it doesn't specify data freshness (e.g., real-time vs. cached), rate limits, error handling, or output format (e.g., JSON structure). For a data-fetching tool with zero 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.

Conciseness5/5

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

The description is highly concise and front-loaded, consisting of two efficient sentences that directly convey the core functionality without any wasted words. Every sentence earns its place by clarifying the tool's purpose and scope.

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

Completeness2/5

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

Given the complexity of market data and the lack of annotations and output schema, the description is incomplete. It doesn't explain what data is returned (e.g., token names, TVL changes, percentages), how results are structured (e.g., separate lists for gainers and losers), or any limitations (e.g., time zones, data sources). This leaves gaps for an AI agent to use the tool effectively.

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 no parameter-specific information beyond what's in the input schema, which has 100% coverage for the single parameter 'limit'. The schema description adequately explains the parameter's purpose, default, and max value, so the baseline score of 3 is appropriate as the description doesn't compensate but also doesn't detract.

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 top gainers and losers by 24h TVL change' specifies the verb (get) and resource (market movers), and 'Shows tokens with biggest increases and decreases' elaborates on the scope. However, it doesn't explicitly differentiate from siblings like 'get_market_stats' or 'get_market_trends', which might overlap in market analysis.

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 to sibling tools such as 'get_market_stats' or 'get_token_history', leaving the agent to infer usage context from the name alone.

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

get_market_statsB

Get comprehensive market statistics including total TVL, token count, average APY, and 24h/7d changes

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 states the tool retrieves data ('Get'), implying a read-only operation, but doesn't specify aspects like rate limits, authentication needs, data freshness, or error handling. This is a significant gap for a tool with zero 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.

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the purpose and lists key metrics without unnecessary details. Every word contributes to understanding the tool's scope, making it appropriately sized 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 complexity (simple read operation with no parameters) and lack of annotations and output schema, the description is minimally complete. It covers what data is retrieved but misses behavioral context like response format or limitations. It's adequate but has clear gaps in 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%, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate, earning a baseline score of 4 for adequately handling the lack of 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 action ('Get') and the resource ('comprehensive market statistics'), listing specific metrics like total TVL, token count, average APY, and 24h/7d changes. It distinguishes itself from siblings like get_market_movers or get_market_trends by focusing on overall statistics rather than specific trends or movers, though it doesn't explicitly name alternatives.

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

Usage Guidelines2/5

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

No explicit guidance is provided on when to use this tool versus alternatives. While it implies usage for broad market overviews, it lacks context on prerequisites, exclusions, or comparisons to siblings like get_tvl_by_chain or get_rwa_market, 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_rwa_marketB

Get market overview with total TVL, average APY, and all token statistics

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 it 'gets' data, implying a read-only operation, but doesn't mention any constraints like rate limits, authentication needs, or what happens on errors. 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 a single, efficient sentence that front-loads the key action ('Get market overview') and lists the specific data points retrieved. Every word earns its place, with no wasted verbiage or structural issues, making it highly 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 has no parameters, no output schema, and no annotations, the description provides a basic understanding of what data it returns. However, it lacks details on output format, error handling, or how it fits with sibling tools, making it adequate but incomplete for an agent to use confidently without additional 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 there's no need for parameter details in the description. The baseline for this scenario is 4, as the description appropriately avoids redundant information and focuses on the tool's purpose without 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 with specific verbs ('Get market overview') and resources ('total TVL, average APY, and all token statistics'), making it easy to understand what data it retrieves. However, it doesn't explicitly differentiate from sibling tools like 'get_market_stats' or 'get_market_trends', which might have overlapping or related 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. With siblings like 'get_market_stats' and 'get_market_trends', there's no indication of how this tool's 'market overview' differs in scope or context, leaving the agent to guess based on tool names alone.

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

get_rwa_tokensB

Get list of all tracked RWA (Real World Asset) tokens. Can filter by chain or type.

ParametersJSON Schema
NameRequiredDescriptionDefault
chainNoFilter by blockchain
typeNoFilter by asset category

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. It mentions filtering capabilities but doesn't disclose behavioral traits such as whether this is a read-only operation, potential rate limits, authentication needs, or what the output format looks like (e.g., list structure, pagination). This is inadequate 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.

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the main purpose ('Get list of all tracked RWA tokens') and adds filtering details concisely. There's no wasted text, making it appropriately sized and well-structured.

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

Completeness2/5

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

Given no annotations and no output schema, the description is incomplete. It doesn't explain return values, behavioral aspects like safety or performance, or how it fits with sibling tools. For a tool in a server with many related tools, more context is needed to guide effective usage.

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

Parameters3/5

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

Schema description coverage is 100%, with both parameters well-documented in the schema (including enums and descriptions). The description adds minimal value by mentioning 'filter by chain or type', which is already clear from the schema. Baseline 3 is appropriate as the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the verb ('Get') and resource ('list of all tracked RWA tokens'), making the purpose specific. However, it doesn't explicitly differentiate from siblings like 'get_token_details' or 'get_token_history', which might also involve RWA tokens, so it doesn't fully distinguish from alternatives.

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

Usage Guidelines3/5

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

The description implies usage for filtering by chain or type, but doesn't specify when to use this tool versus siblings like 'get_token_details' (for specific token info) or 'get_rwa_market' (for market data). No explicit when-not or alternative guidance is provided, leaving some ambiguity.

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

get_token_detailsC

Get detailed information about a specific RWA token including total supply and APY

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesToken contract address (e.g., 0x7712c34205737192402172409a8f7ccef8aa2aec for BUIDL)

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 implies a read-only operation ('Get'), but doesn't specify whether it requires authentication, has rate limits, returns real-time or cached data, or what happens on errors. For a tool with no 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.

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. Every part earns its place by specifying the action, resource, and key details, making it highly concise and well-structured for quick understanding.

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

Completeness2/5

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

Given the complexity of fetching token details (which may involve financial data like APY), no annotations, and no output schema, the description is incomplete. It doesn't cover behavioral aspects like data freshness, error handling, or return format, leaving gaps that could hinder an AI agent's ability to use the tool effectively.

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

Parameters3/5

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

The input schema has 100% description coverage, with the 'address' parameter well-documented in the schema itself. The description adds no additional parameter semantics beyond what the schema provides, such as format examples or constraints. According to the rules, with high schema coverage, the baseline is 3, which is appropriate here.

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

Purpose4/5

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

The description clearly states the tool's purpose with a specific verb ('Get') and resource ('detailed information about a specific RWA token'), including key data points like 'total supply and APY'. However, it doesn't explicitly differentiate from sibling tools like 'get_token_history' or 'get_token_holders', which might also provide token-related information, 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. It doesn't mention prerequisites, context, or exclusions, such as how it differs from 'get_rwa_tokens' (which likely lists tokens) or 'get_token_details' (which provides detailed info for a specific token). This lack of comparative usage information 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_token_historyC

Get historical TVL and supply data for a specific token

ParametersJSON Schema
NameRequiredDescriptionDefault
chainYesBlockchain name (e.g., ethereum, base)
addressYesToken contract address
daysNoNumber of days of history (default: 30, max: 365)

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 retrieving 'historical TVL and supply data' but doesn't specify the format of the returned data, whether it's paginated, if there are rate limits, or any authentication requirements. This leaves significant gaps for an agent to understand how the tool behaves.

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

Conciseness5/5

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

The description is a single, direct sentence that efficiently conveys the core functionality without any unnecessary words. It's front-loaded with the main 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.

Completeness2/5

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

Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what the returned data looks like (e.g., time-series format, units), potential limitations (e.g., data availability for older tokens), or error conditions. For a tool with three parameters and no structured output information, this leaves too much undefined.

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

Parameters3/5

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

The input schema has 100% description coverage, so parameters are well-documented there. The description adds no additional semantic context beyond what the schema provides, such as explaining relationships between parameters or usage nuances. This meets the baseline for high schema coverage but doesn't enhance 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 action ('Get historical TVL and supply data') and the resource ('for a specific token'), making the purpose immediately understandable. However, it doesn't explicitly differentiate this tool from sibling tools like 'get_tvl_history' or 'get_token_details', 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 like 'get_tvl_history' or 'get_token_details'. It lacks context about prerequisites, such as needing a valid token address, and doesn't mention any exclusions or specific use cases.

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

get_token_holdersC

Get top holders of a specific RWA token sorted by balance

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesToken contract address
limitNoMaximum number of holders to return (default: 20, max: 100)

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 full burden for behavioral disclosure. It mentions sorting by balance but doesn't cover important aspects like whether this is a read-only operation, potential rate limits, authentication requirements, or what the return format looks like (e.g., list structure, pagination).

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

Conciseness5/5

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

The description is a single, efficient sentence that gets straight to the point with zero wasted words. It's appropriately sized for this tool's functionality and front-loads the essential information.

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

Completeness2/5

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

For a tool with no annotations and no output schema, the description is insufficient. It doesn't explain what the return value looks like (e.g., array of holders with balances), doesn't mention error conditions, and provides minimal behavioral context despite the lack of structured metadata.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already fully documents both parameters. The description doesn't add any parameter semantics beyond what's in the schema - it doesn't explain token address format, clarify what 'top holders' means in practice, or provide additional context about the limit 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 action ('Get top holders') and resource ('specific RWA token'), and specifies sorting ('sorted by balance'). However, it doesn't explicitly differentiate from sibling tools like 'get_holder_balance' (which appears to get balance for a specific holder rather than top holders).

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 doesn't mention sibling tools like 'get_holder_balance' or 'get_token_details', nor does it specify prerequisites or appropriate contexts for use.

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

get_token_transfersC

Get recent transfers for a specific RWA token

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesToken contract address
limitNoMaximum number of transfers to return (default: 20, max: 100)

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 full burden but offers minimal behavioral insight. It implies a read-only operation ('Get') but doesn't disclose rate limits, authentication needs, data freshness, or pagination behavior. For a tool with zero annotation coverage, this is inadequate.

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

Conciseness5/5

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

The description is a single, efficient sentence with zero waste. It's front-loaded with the core purpose and appropriately sized for a simple tool.

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

Completeness2/5

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

Given no annotations and no output schema, the description is incomplete. It doesn't explain what 'recent' means, the return format, or error conditions. For a tool with 2 parameters and behavioral unknowns, more context is needed.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents both parameters. The description adds no additional meaning beyond implying 'recent' transfers, which isn't parameter-specific. Baseline 3 is appropriate as the schema handles the heavy lifting.

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

Purpose4/5

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

The description clearly states the verb 'Get' and the resource 'recent transfers for a specific RWA token', making the purpose explicit. It distinguishes from siblings like 'get_token_details' or 'get_token_history' by focusing on transfers. However, it doesn't specify what 'recent' means (e.g., time frame), 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 when to prefer this over 'get_token_history' (which might include transfers) or 'get_token_holders' (which could involve transfer data), and lacks context about prerequisites or exclusions.

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

get_tvl_by_chainB

Get current TVL breakdown by blockchain with 24h and 7d change percentages

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 full burden. It discloses the tool fetches current data with change percentages, but lacks behavioral details like rate limits, authentication needs, data freshness, or error handling. For a read operation 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.

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the core purpose ('Get current TVL breakdown by blockchain') and adds specific metrics. Every word earns its place with no redundancy or waste, making it highly 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 no annotations, no output schema, and 0 parameters, the description is minimally adequate. It explains what the tool does but lacks context on return format (e.g., structure of breakdown), data sources, or limitations. For a simple read tool, it meets basic needs but leaves gaps in 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 tool has 0 parameters with 100% schema coverage, so no parameter documentation is needed. The description appropriately doesn't discuss parameters, focusing on the tool's function. Baseline is 4 for zero-parameter tools, as it avoids unnecessary 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 action ('Get current TVL breakdown') and resource ('by blockchain') with specific metrics ('24h and 7d change percentages'). It distinguishes from siblings like 'get_tvl_history' (historical vs current) and 'get_chains' (list vs TVL breakdown), though not explicitly named. 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. It doesn't mention prerequisites, exclusions, or compare to siblings like 'get_tvl_history' for historical data or 'get_market_stats' for broader metrics. The description implies usage for current TVL analysis but offers no explicit context.

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

get_tvl_historyB

Get historical TVL (Total Value Locked) data. Can filter by chain and specify time period.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoNumber of days of history to return (default: 30, max: 365)
chainNoFilter by specific chain (optional)

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 filtering capabilities but lacks details on rate limits, authentication needs, data freshness, pagination, error handling, or response format. 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.

Conciseness5/5

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

The description is extremely concise with just two sentences that directly state the tool's purpose and capabilities. Every word earns its place with zero redundancy or unnecessary elaboration.

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

Completeness2/5

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

For a data retrieval tool with no annotations and no output schema, the description is incomplete. It doesn't explain what the return data looks like (time series format, units, structure), doesn't mention rate limits or authentication requirements, and provides minimal behavioral context despite the tool's potential complexity.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already fully documents both parameters. The description adds marginal value by mentioning chain filtering and time period specification, but doesn't provide additional semantic context beyond what's in the schema (e.g., default values, enum meanings, or data granularity).

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 retrieving historical TVL data with filtering capabilities ('Get historical TVL data'). It specifies the resource (TVL data) and action (get), though it doesn't explicitly differentiate from sibling tools like 'get_tvl_by_chain' or 'get_token_history' beyond mentioning chain filtering.

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 filtering options ('Can filter by chain and specify time period'), but it doesn't provide explicit guidance on when to use this tool versus alternatives like 'get_tvl_by_chain' or 'get_token_history'. 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_wallet_portfolioB

Get all RWA holdings for a wallet address across all supported chains

ParametersJSON Schema
NameRequiredDescriptionDefault
walletYesWallet address to check (e.g., 0x...)

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. While it implies a read operation ('Get'), it doesn't specify whether this requires authentication, rate limits, pagination, error handling, or what the return format looks like (e.g., list of holdings with details). For a tool with no 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.

Conciseness5/5

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

The description is a single, efficient sentence with zero waste—it directly states the tool's purpose without redundancy or unnecessary elaboration, making it easy to parse and understand quickly.

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

Completeness2/5

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

Given the complexity of querying holdings across multiple chains and the lack of annotations and output schema, the description is incomplete. It doesn't address behavioral aspects like response structure, error cases, or operational constraints, which are critical for an agent to use the tool effectively in this context.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents the single 'wallet' parameter with an example format. The description adds no additional parameter semantics beyond what the schema provides, such as validation rules or supported address formats across chains, meeting the baseline for high schema coverage.

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

Purpose5/5

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

The description clearly states the specific action ('Get all RWA holdings') and resource ('for a wallet address across all supported chains'), distinguishing it from sibling tools like get_holder_balance (which might focus on specific tokens) or get_token_holders (which focuses on token-level data rather than wallet-level holdings).

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_holder_balance or get_token_details. It lacks any mention of prerequisites, exclusions, or comparative context with sibling tools, leaving the agent to infer usage scenarios.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 18 tool updatesv1.0.0
    • First observedget_categories
    • First observedget_category_details
    • First observedget_chains
    • First observedget_holder_balance
    • First observedget_issuer_details
    • First observedget_issuers
    • First observedget_market_movers
    • First observedget_market_stats
    • First observedget_market_trends
    • First observedget_rwa_market
    • First observedget_rwa_tokens
    • First observedget_token_details
    • First observedget_token_history
    • First observedget_token_holders
    • First observedget_token_transfers
    • First observedget_tvl_by_chain
    • First observedget_tvl_history
    • First observedget_wallet_portfolio

TDQS

A3.5/5.0

Scored across 18 tools

Disambiguation4/5

Most tools have clearly distinct purposes targeting specific resources like categories, chains, issuers, tokens, or market data, with minimal overlap. However, get_market_stats, get_market_trends, and get_rwa_market could be slightly confusing as they all provide market-level overviews, though their descriptions help differentiate them.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using 'get_' prefix, with clear and descriptive nouns (e.g., get_categories, get_token_details). There are no deviations in naming conventions, making the set highly predictable and readable.

Tool Count4/5

With 18 tools, the count is slightly high but reasonable for the comprehensive RWA market data domain, covering categories, chains, issuers, tokens, market stats, and wallet data. It feels thorough rather than excessive, though some consolidation might improve focus.

Completeness5/5

The tool set provides complete coverage for querying RWA market data, including CRUD-like operations for all key entities (categories, chains, issuers, tokens) and extensive analytical capabilities (market stats, trends, history, holders, transfers). No obvious gaps exist for the stated purpose of tracking and analyzing RWA tokens.

Maintenance

ActivityStale
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables AI agents to retrieve real-time data on wallet DeFi positions, token balances, and NFT holdings across multiple blockchains. It supports hundreds of protocols and provides specialized tools for chain-specific or protocol-specific portfolio analysis.
    8
    5 npm
    3
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI assistants to access real-time on-chain crypto analytics, whale tracking, and market metrics through natural language queries. It provides access to over 245 endpoints for comprehensive data analysis of assets like Bitcoin, Ethereum, and stablecoins.
    7
    7 npm
    7
    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