RWA Pipe MCP Server
The RWA Pipe MCP Server gives AI agents structured access to Real World Asset (RWA) token data for discovery, analysis, and monitoring of tokenized assets across 22+ blockchains.
Token Discovery & Details
get_rwa_tokens— Filter tokens by category (e.g., us-treasury, private-credit, real-estate, stablecoin), chain, KYC/audit status, TVL, APY, and 10+ other filtersget_token_details— Retrieve supply, APY, and metadata for a specific tokenget_token_history— Access historical TVL and supply data (up to 365 days)
Holder & Transfer Data
get_token_transfers— View recent transfer activity for a tokenget_token_holders— List top holders sorted by balanceget_holder_balance— Check a specific wallet's balance for a given tokenget_wallet_portfolio— See all RWA holdings for a wallet across all supported chains
Market Overview & Statistics
get_rwa_market— Full market overview with total TVL and token statisticsget_market_stats— Total TVL, token count, average APY, and 24h/7d changesget_market_trends— TVL trend breakdowns by category and chainget_market_movers— Top gainers and losers by 24h TVL change
TVL Analysis
get_tvl_history— Historical market TVL, optionally filtered by chain (up to 365 days)get_tvl_by_chain— Current TVL breakdown per blockchain with change percentages
Issuers, Categories & Chains
get_issuers/get_issuer_details— List all issuers or deep-dive into a specific one, with aggregated TVL, token counts, and APYget_categories/get_category_details— Browse asset categories with TVL summaries or list all tokens within a categoryget_chains— View all supported blockchains with TVL and token counts
Provides access to Real World Asset (RWA) data on the Algorand blockchain, including tokenized treasuries, stablecoins, and RWA tokens with TVL tracking and portfolio management capabilities.
Provides access to Real World Asset (RWA) data on the Ethereum blockchain, including tokenized treasuries, stablecoins, and RWA tokens with TVL tracking, token transfers, holder analysis, and portfolio management capabilities.
Provides access to Real World Asset (RWA) data on the Hedera blockchain, including tokenized treasuries, stablecoins, and RWA tokens with TVL tracking and portfolio management capabilities.
Provides access to Real World Asset (RWA) data on the NEAR blockchain, including tokenized treasuries, stablecoins, and RWA tokens with TVL tracking and portfolio management capabilities.
Provides access to Real World Asset (RWA) data on the Optimism blockchain, including tokenized treasuries, stablecoins, and RWA tokens with TVL tracking and portfolio management capabilities.
Provides access to Real World Asset (RWA) data on the Plume blockchain, including tokenized treasuries, stablecoins, and RWA tokens with TVL tracking and portfolio management capabilities.
Provides access to Real World Asset (RWA) data on the Polygon blockchain, including tokenized treasuries, stablecoins, and RWA tokens with TVL tracking and portfolio management capabilities.
Provides access to Real World Asset (RWA) data on the Solana blockchain, including tokenized treasuries, stablecoins, and RWA tokens with TVL tracking and portfolio management capabilities.
Provides access to Real World Asset (RWA) data on the Stellar blockchain, including tokenized treasuries, stablecoins, and RWA tokens with TVL tracking and portfolio management capabilities.
Provides access to Real World Asset (RWA) data on the Sui blockchain, including tokenized treasuries, stablecoins, and RWA tokens with TVL tracking and portfolio management capabilities.
Provides access to Real World Asset (RWA) data on the TON blockchain, including tokenized treasuries, stablecoins, and RWA tokens with TVL tracking and portfolio management capabilities.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@RWA Pipe MCP Servershow me the top 5 RWA tokens by TVL"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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" |
|
Filter UI on a website |
|
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-mcpClaude 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 |
| "Can I hold this without onboarding?" |
| "Has anyone independently verified the contract / collateral?" |
| "Can I exit / can I move it on-chain?" |
| "Does this match our regulatory mandate?" |
| "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 |
| 5–15 min | TVL drift, mint/burn anomaly classification, whale-activity flag |
| 5 min | Individual large transfers |
| 15 min | Bulk mint/burn breakdown |
| 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:
Calls
get_rwa_tokens({chain: "base", category: "us-treasury", kycRequired: false, transferable: true, audited: true, minTvl: 50_000_000, hasApy: true, sortBy: "apy"})For each candidate, calls
get_token_risk_signals(chain, address)to check anomaliesFilters out tokens with
flagsmatchingno_attestation_urlorwhale_outflow_spike_24hfor added safetyReturns 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 |
| Constraint-driven token discovery (14 filters) |
| One-call structured risk dashboard for a token |
| Whale-flow stream for monitoring/subscription |
Tokens
Tool | Description |
| Get token info: supply, APY, holders, issuer |
| Recent transfers for a token |
| Top holders sorted by balance |
| Historical TVL/supply data |
| Balance of specific holder for a token |
| All RWA holdings for a wallet across all chains |
Market
Tool | Description |
| Market overview with all token stats |
| Total TVL, token count, average APY |
| 24h/7d changes by category and chain |
| Top gainers and losers |
| Holder concentration across all tokens |
TVL
Tool | Description |
| Historical TVL data (up to 365 days) |
| Current TVL by blockchain |
| TVL by asset category |
| TVL by issuer |
| Cross-chain TVL for a token |
Issuers, Categories, Chains
Tool | Description |
| All token issuers with aggregated TVL |
| Issuer details and their tokens |
| Token categories with TVL stats |
| Category details and tokens |
| Supported blockchains with TVL |
Mint/Burn
Tool | Description |
| Recent mint or burn events |
| Daily mint/burn aggregates |
Risk & Whales
Tool | Description |
| Token risk score with sub-scores |
| Concentration metrics for one token |
| Recent whale transfers for a token |
| Whale-sized transfers with filters |
| Net inflow/outflow for an address |
| Whale-transfer size histogram (5 USD buckets) |
| Side-by-side treasury comparison |
Due diligence & discovery
Tool | Description |
| Complete DAO-grade due-diligence dossier for one token |
| What changed in a token's dossier since a baseline date (quarterly re-review) |
| Up to 12 tokens as compact diligence rows side-by-side |
| 2-6 tokens compared on live metrics (any category) |
| Fuzzy-match a name/symbol/issuer to (chain, address) candidates |
| Recently-launched RWA tokens within a time window |
Yields, Webhooks, Contracts
Tool | Description |
| APY data for yield-bearing tokens |
| Subscribe to mint/burn/whale events |
| Contract intelligence for an address |
| Contract activity events |
| Discovered contract relationships |
| Trigger a fresh contract scan |
| 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 |
| BUIDL, USDY, OUSG, USDM |
| USDT, USDC, USD0, PYUSD |
| Money market funds |
| PAXG, XAUT |
| bIB01, BackedERNX |
| bHIGH, bIBTA |
| Corporate bond tokens |
| Maple, Centrifuge pools |
| Structured tranches |
| RealT, Lofty |
Environment variables
Variable | Default | Description |
| required | API key. Get free at https://rwapipe.com/register |
|
| API endpoint |
|
| Transport mode: |
|
| Port for SSE mode |
SSE mode (hosted)
For multi-tenant agent platforms, run as SSE server:
MCP_MODE=sse MCP_PORT=3001 npm startEndpoints: 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
Links
Website & API: https://rwapipe.com
API docs: https://rwapipe.com/docs/api
MCP docs: https://rwapipe.com/docs/mcp
GitHub: https://github.com/rwapipe/mcp
License
MIT
Available Tools
18 toolsget_categoriesA
Get list of all RWA token categories (us-treasury, stablecoin, money-market, etc.) with TVL and stats
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Category type |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| token_address | Yes | Token contract address | |
| holder_address | Yes | Holder wallet address |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Issuer name (e.g., BlackRock, Ondo Finance, Circle) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of tokens to return in each category (default: 5, max: 20) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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_market_trendsB
Get market trends including TVL changes over 24h and 7d, breakdown by category and chain
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 what data is returned (TVL changes, breakdowns) but doesn't cover critical aspects like whether this is a read-only operation, potential rate limits, authentication needs, or response format. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the key information ('Get market trends') and specifies the included data. There's no wasted text, and it's appropriately sized for a simple tool. A perfect 5 would require exceptional structure, such as bullet points or explicit contrasts, which aren't needed here.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (simple data retrieval with no parameters) and lack of annotations or output schema, the description is minimally complete. It states what data is returned but doesn't explain the return format or behavioral traits. For a tool with no structured support, it should do more to compensate, but it's adequate for basic understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The 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 meets the baseline for tools with no parameters, as it doesn't add unnecessary detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('market trends'), specifying what data is included (TVL changes over 24h and 7d, breakdown by category and chain). It distinguishes from siblings like 'get_market_stats' or 'get_tvl_by_chain' by focusing on trends rather than static stats or isolated TVL data. However, it doesn't explicitly contrast with all siblings, so it's not a perfect 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, exclusions, or compare to siblings like 'get_market_stats' or 'get_tvl_history', leaving the agent to infer usage from the name alone. This lack of explicit context reduces its effectiveness for tool selection.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Filter by blockchain | |
| type | No | Filter by asset category |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Token contract address (e.g., 0x7712c34205737192402172409a8f7ccef8aa2aec for BUIDL) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| chain | Yes | Blockchain name (e.g., ethereum, base) | |
| address | Yes | Token contract address | |
| days | No | Number of days of history (default: 30, max: 365) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Token contract address | |
| limit | No | Maximum number of holders to return (default: 20, max: 100) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Token contract address | |
| limit | No | Maximum number of transfers to return (default: 20, max: 100) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Number of days of history to return (default: 30, max: 365) | |
| chain | No | Filter by specific chain (optional) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| wallet | Yes | Wallet address to check (e.g., 0x...) |
TDQS
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.
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.
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.
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.
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.
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.
18 tool updates
v1.0.0- First observed
get_categories - First observed
get_category_details - First observed
get_chains - First observed
get_holder_balance - First observed
get_issuer_details - First observed
get_issuers - First observed
get_market_movers - First observed
get_market_stats - First observed
get_market_trends - First observed
get_rwa_market - First observed
get_rwa_tokens - First observed
get_token_details - First observed
get_token_history - First observed
get_token_holders - First observed
get_token_transfers - First observed
get_tvl_by_chain - First observed
get_tvl_history - First observed
get_wallet_portfolio
TDQS
Scored across 18 tools
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.
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.
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.
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
Related MCP Connectors
Agent-native scoring, search and routing for tokenized real-world assets across multi-chain.
Connects AI agents to live, verified financial data from 18,000+ institutions — ready to reason from
Hosted on-chain data for AI agents: DEX trades, OHLCV, top traders, fund tracing, address labels.
Blockchain analytics API for AI agents. Smart Money signals, wallet profiling, token analytics.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables 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.85 npm3MIT
- AlicenseAqualityCmaintenanceEnables 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.77 npm7MIT
- AlicenseAqualityDmaintenanceProvides cryptographically verifiable RWA trust attestations and multi-chain DeFi data (TVL, top protocols, positioning scorecards) via MCP tools for AI assistants.111MIT

Fabrica MCP Serverofficial
AlicenseNot gradedqualityCmaintenanceGives AI agents access to tokenized real property data on the Fabrica protocol, enabling property search, lending market analysis, and portfolio exploration.MIT