rwa-attest
Click on "Install 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-attestscore protocol positioning for Ondo USDY"
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-attest
Cryptographically verifiable RWA (Real-World Asset) trust attestation + multi-chain DeFi data + a free protocol positioning scorecard. Exposed via Model Context Protocol so any MCP-capable AI assistant (Claude Desktop, Cursor, Cline, etc.) can call it.
8 signed RWA attestations live with real-fetched proofs: BlackRock BUIDL, Ondo OUSG, Ondo USDY, Maple Finance, Centrifuge Protocol, Hashnote USYC, Superstate, Spiko. Bytecode + SHA256 from Ethereum RPC, ERC20 metadata via eth_call, live USD prices via CoinGecko, audit URL liveness via HTTPS HEAD/GET. Every signature independently verifiable from the embedded ed25519 public keys + canonical JSON.
Built by Tashoma Vilini — DeFi PMM, Liqwid Finance ($81M TVL peak on Cardano).
What it does
Ten tools, all read-only:
Tool | Returns |
| Total TVL, top 5 protocols, native token for any chain. Default: Ethereum. |
| TVL + 1d/7d/30d changes for any DefiLlama-listed protocol. |
| Ranked list of top DeFi protocols on a chain (default: Ethereum top 10). |
| RWA category overview: total TVL, segments (tokenized treasuries / private credit / other), top issuers per segment, chain distribution. |
| Ranked list of top RWA protocols across all chains — BUIDL, Ondo, Maple, Centrifuge, USYC, etc. |
| Deep view of one RWA protocol: TVL, momentum, chain spread, segment, attestation availability. |
| FREE 5-dimension positioning scorecard — messaging clarity, niche specificity, TVL momentum, category fit, cross-chain reach. The GTM hook. |
| Every RWA protocol this server has a signed trust attestation for (BUIDL, Ondo OUSG/USDY, Maple, Centrifuge, Hashnote USYC, Superstate, Spiko, …). |
| Signed RWA trust attestation summary view for a specific protocol (default: most recent). |
| Full signed attestation with every proof_element + signature for independent cryptographic verification. |
Data source for chain/protocol tools: DefiLlama public API. No paid keys required for the data tools.
Related MCP server: Aegis-ZK
Why use it
Built for where RWAs actually live. Most RWA TVL ($15B+) is on Ethereum — BlackRock BUIDL, Ondo OUSG/USDY, Maple, Centrifuge, Hashnote USYC, Superstate, Spiko. This server is RWA-first and Ethereum-default.
Cardano-aware lens. Author was a Cardano DeFi operator (Liqwid). Cardano's $130M DeFi ecosystem gets equal treatment — including the small but growing RWA presence (KAIO, Mehen).
Free positioning scorecard. Tell it a protocol name; get a 5-dimension teardown. If the surface-level diagnosis is useful, the upsell path is a paid full teardown — DM
@defibabylonon X.Verifiable attestations, not vibes. The RWA attestation tool returns ed25519-signed trust evidence with reproducible canonical JSON. Most DeFi "trust scores" are opaque dashboards. Ours are cryptographically verifiable from the public keys + the policy + the inputs.
Security model
Built defense-in-depth, by construction, not by convention. Every tool routes through:
Layer | What it enforces |
Tool allowlist | Exactly 10 tools. All read-only. No shell execution. No arbitrary file reads. No write operations. No code execution from inputs. |
HTTP host allowlist | Outbound HTTP locked to: |
File-read allowlist | Tools can only read 11 hard-coded files (the policy YAML + 2 chain-head attestations + 8 per-protocol attestations + manifest). Tool inputs are NEVER concatenated into paths. |
Chain-name allowlist | The |
Protocol-name validation | Strict regex: alphanumeric + dash/dot/underscore/space, max 64 chars. Path traversal ( |
Secrets scanner on every response | Patterns checked: PEM private keys, OpenAI / Anthropic / Replicate / Composio / HuggingFace / xAI / Slack API key formats, dotenv lines, sensitive filesystem paths ( |
LLM context isolation | The scorecard tool calls an LLM with a hermetic system prompt — no operator-personal context, no vault references, no instructions about other systems. The LLM sees only the public protocol metadata fetched from DefiLlama. |
Rate limiting | Per-client request budget: 30/minute, 1000/day. In-memory defense-in-depth. |
Privacy-preserving audit log | Server-side logs record THAT a tool was called with SOME args (hashed), but never the literal arg values or response content. |
What this server CANNOT do, by design
Cannot execute arbitrary code
Cannot read your filesystem beyond the 11 hard-coded files above
Cannot make HTTP requests to any host outside the 5-entry allowlist
Cannot write any file
Cannot start any subprocess
Cannot exfiltrate environment variables, .env contents, or API keys
Cannot leak filesystem paths under
/root/.hermes/keys/,/root/Obsidian Vault/,/root/CVs/,/root/.claude/projects/-root/memory/, or any operator-personal location
If the server detects a non-allowlisted host, a non-allowlisted file read, or a response that would contain secret-shaped data, it refuses with a generic error and logs the violation server-side. No exception messages, file paths, or stack traces are surfaced to the caller.
Install (Claude Desktop)
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (or platform equivalent):
{
"mcpServers": {
"rwa-attest": {
"command": "python",
"args": ["-m", "rwa_attest.server"],
"env": {
"ANTHROPIC_API_KEY_FOR_MCP": "<your-anthropic-key-for-scorecard-tool>"
}
}
}
}The ANTHROPIC_API_KEY_FOR_MCP env var is optional — only needed if you want the score_protocol_positioning tool to actually score (it falls back to returning raw protocol metadata otherwise). The other 9 tools work without any API key.
Install (Smithery)
npx @smithery/cli install rwa-attest --client claude(once published — see smithery.yaml)
Run locally
python -m rwa_attest.serverSpeaks MCP via stdio. Compatible with any MCP client.
Example queries
Once installed, ask your AI assistant things like:
"What's the total RWA TVL right now and which chain dominates?"
"List the top 5 Ethereum RWA protocols by TVL."
"Compare BlackRock BUIDL and Ondo Yield Assets — which has stronger 7d momentum?"
"Score Aave V3's positioning on the 5 dimensions."
"Show me the most recent signed RWA trust attestation."
"Give me Cardano's DeFi status." — Cardano is here too, just not the default.
Architecture
rwa_attest/
├── security.py # Allowlists, validators, secrets scanner, rate limiter
├── server.py # MCP entry point, tool registry, dispatch
└── tools/
├── chain.py # Multi-chain DeFi data (DefiLlama) — Ethereum default
├── rwa.py # RWA landscape + top protocols + protocol detail
├── positioning.py # FREE 5-dimension scorecard (sandboxed LLM)
└── attestation.py # Wraps the signed RWA attestation engine outputEvery tool routes through:
validate_*(arg)for inputssafe_get(url)for outbound HTTP (host allowlist)safe_read(path)for file reads (path allowlist)safe_response(payload)for outbound responses (secrets scanner)
This is enforced at the function level. There is no fall-through path that bypasses the security layer.
License
MIT.
Author
Tashoma Vilini — DeFi PMM, Liqwid Finance ($81M TVL peak on Cardano).
For a full DeFi positioning teardown, GTM sprint, or custom RWA trust attestation: DM @defibabylon on X.
Available Tools
11 toolsget_chain_defi_statusA
High-level DeFi stats for any major chain (default: Ethereum). Returns total TVL, native token, top 5 protocols by TVL. Supports Ethereum, Cardano, Solana, Arbitrum, Optimism, Base, Polygon, etc.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain name (canonical DefiLlama casing, e.g. 'Ethereum', 'Cardano') | Ethereum |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. It describes a read-only operation returning TVL, native token, and top 5 protocols, with no destructive side effects. Could be more transparent about limitations (e.g., 'only top 5 protocols, data may be delayed') but current disclosure is adequate for a simple query.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler. Front-loaded with purpose and default, then specific returns and supported chains. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one optional parameter, no output schema), the description is sufficiently complete: it explains what it does, what it returns, and which chains it supports. An agent can confidently select and invoke the tool based on this description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter 'chain' having a description of casing and examples. Description adds explicit list of supported chains (Ethereum, Cardano, Solana, etc.) beyond schema examples, giving agents concrete options to use. This adds value over the schema alone.
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?
Description clearly states the tool provides high-level DeFi stats for major chains, specifying return values: total TVL, native token, top 5 protocols. Distinguishes from sibling tools like get_protocol_tvl (protocol-level) or list_top_protocols (cross-chain) by focusing on chain-level aggregated data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use versus alternatives. Implies usage for major chains by listing supported ones, but does not state when not to use or suggest other tools. A statement like 'Use for chain overview; for specific protocol details, see get_protocol_tvl' would improve the score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_onchain_anchorA
On-chain anchor for a signed RWA attestation. Returns the Base tx hash + block + Basescan explorer URL so any caller can independently fetch the tx, decode the calldata, and verify the attestation's content hash matches what's permanently anchored on-chain. Returns anchored: false if the attestation hasn't been anchored yet (the off-chain ed25519 signatures remain fully valid either way).
| Name | Required | Description | Default |
|---|---|---|---|
| protocol_slug | No | Optional. See list_signed_rwa_attestations for available slugs. Defaults to most recent. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full burden. It discloses return structure, the anchored=false scenario, and that off-chain signatures remain valid. No contradictions. Missing details on rate limits or authorization, but for a simple read tool, this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no wasted words. Purpose, verification rationale, and edge case are each addressed efficiently. Front-loaded with key 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?
The description effectively explains return values and behavior despite the absence of an output schema. Covers the primary use case and exception case completely for a read tool with one optional parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one optional parameter (protocol_slug) with schema description referencing list_signed_rwa_attestations. The tool description adds that it defaults to most recent, which is value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the on-chain anchor (Base tx hash, block, explorer URL) for a signed RWA attestation, distinguishing it from sibling tools that return the attestation itself.
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?
Explanation includes why to use it (independent verification of content hash anchorage) and the edge case where anchored=false. Does not explicitly state when not to use or list alternatives, but sibling context fills that gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_protocol_tvlA
TVL + 1d/7d/30d changes for any DefiLlama-listed protocol. Optional chain filter narrows to protocols deployed on that chain.
| Name | Required | Description | Default |
|---|---|---|---|
| protocol_name | Yes | DefiLlama protocol name (e.g. 'Aave V3', 'Liqwid', 'Maple') | |
| chain | No | Optional chain filter (e.g. 'Ethereum') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the output includes TVL and time-based changes, but does not specify whether the TVL is current or historical, or detail any read-only nature. It adds some behavioral context but has 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 a single, front-loaded sentence that efficiently conveys the tool's purpose and optional parameter usage with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (2 parameters, no output schema, no annotations), the description adequately covers the essential information: what the tool returns and how to filter. It slightly lacks detail on output format, but remains sufficient for selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description is not required to add much. However, it explains that the optional chain filter narrows results to protocols deployed on that chain, adding meaningful context beyond the schema's description.
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 returns TVL plus 1d/7d/30d changes for any DefiLlama-listed protocol, with an optional chain filter. It uses specific verbs and resources, distinguishing it from sibling tools like list_top_protocols or get_chain_defi_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use the optional chain filter, implying context-based usage. While it doesn't explicitly name alternatives, the sibling tools are sufficiently different, so the guidance is clear enough for selecting this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_rwa_landscapeA
Overview of the RWA (Real-World Assets) category: total TVL, split by sub-segment (tokenized treasuries / private credit / other), top issuers per segment, chain distribution. Most RWA TVL is on Ethereum.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses what data is returned (TVL, sub-segments, issuers, chains) but not behavioral traits like data freshness, caching, or access permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with key output, no wasted words. Encourages scan 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 no parameters or output schema, description is fairly complete. Could mention data source or update frequency, but not critical for this simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so schema covers everything vacuously. Description adds value by explaining output fields, which is helpful for a tool with no inputs.
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 it provides an overview of RWA category including TVL, sub-segments, top issuers, and chain distribution. It distinguishes from siblings like get_rwa_protocol_detail by being high-level, but does not explicitly compare.
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 usage guidance or when-not-to-use. Implied for high-level overview, but lacks differentiation from list_top_rwa_protocols or score_protocol_positioning.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_rwa_protocol_detailA
Detailed view of a specific RWA protocol: TVL, momentum, chain spread, segment classification, and whether a signed trust attestation is available for it on this server.
| Name | Required | Description | Default |
|---|---|---|---|
| protocol_name | Yes | RWA protocol name (e.g. 'BlackRock BUIDL', 'Ondo OUSG', 'Maple', 'Centrifuge') |
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 that the tool returns specific data fields and implies it is a read operation (consistent with get verb). However, it does not mention potential error conditions or required permissions.
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 conveys the purpose and content. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no output schema, the description lists the key fields returned, providing sufficient completeness. It could mention that the output is an object, but the current level is adequate.
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% coverage with a clear description and examples for protocol_name. The tool description does not need to add more, but the schema itself is informative. The baseline is 3, elevated due to good examples.
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 retrieves a detailed view of a specific RWA protocol, listing the information it provides (TVL, momentum, chain spread, segment classification, attestation availability). It is distinct from siblings like get_rwa_landscape and get_signed_rwa_attestation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives. While the sibling list and context imply it is for single-protocol detail, there is no explicit guidance on usage context or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_signed_rwa_attestationA
Signed RWA trust attestation (summary view) for a specific protocol or the most recent if no protocol_slug is given. Includes ed25519 verification metadata (canonical JSON, sub-agent + orchestrator signatures, supersedes-chain hash).
| Name | Required | Description | Default |
|---|---|---|---|
| protocol_slug | No | Optional. e.g. 'blackrock-buidl', 'ondo-ousg', 'maple', 'centrifuge', 'hashnote-usyc', 'superstate', 'spiko'. Defaults to most recent. |
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 discloses the return contents (ed25519 verification metadata) but does not mention read-only nature, idempotency, or other behavioral traits like caching or external calls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, no fluff. Every word serves a clear 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?
The description partially describes the output (verification metadata) but does not fully characterize the 'summary view' or what is excluded compared to the full version. With no output schema, the description 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?
Schema description coverage is 100% and the tool description only reaffirms the default behavior ('Defaults to most recent') without adding new meaning beyond what the schema already provides (e.g., examples).
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 returns a 'summary view' of a signed RWA trust attestation, with the verb 'get' and the resource identified. It distinguishes from sibling tools like 'get_signed_rwa_attestation_full' by specifying summary and listing the included verification metadata.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use it: for a specific protocol or the most recent if no slug is given. However, it does not explicitly guide when not to use it or compare with alternatives like the 'full' version or the listing tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_signed_rwa_attestation_fullA
Full signed RWA attestation document for a specific protocol — every proof_element, agent_signature, and orchestrator_signature. Use this when you want to independently verify the chain cryptographically.
| Name | Required | Description | Default |
|---|---|---|---|
| protocol_slug | No | Optional. See list_signed_rwa_attestations for available slugs. Defaults to most recent. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses the tool returns a full document with specific elements, implying a read operation. However, it lacks details on authentication, rate limits, or potential size of the response, which could affect agent behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-load the purpose and usage. No wasted words; every sentence is informative.
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 output schema, the description hints at the return value by listing components. It also references a sibling for parameter details. For a simple tool with one optional parameter, this is adequately complete, though a note about output format would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the description adds value by explaining the default behavior and referencing a sibling for available slugs. This goes beyond the schema's description, making parameter usage clear.
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 it gets the full signed RWA attestation document with every proof_element, agent_signature, and orchestrator_signature. It distinguishes from the sibling 'get_signed_rwa_attestation' by specifying 'full' and enumerating all components.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use this when you want to independently verify the chain cryptographically,' providing a clear use case. It does not explicitly mention when not to use or alternatives, but the guidance is sufficient for an agent to select it for full verification.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_signed_rwa_attestationsA
List every RWA protocol this server has a signed trust attestation for. Returns the manifest: 8+ protocols (BlackRock BUIDL, Ondo OUSG/USDY, Maple, Centrifuge, Hashnote USYC, Superstate, Spiko, …) with attestation IDs, timestamps, policy version, and proof_provenance.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the burden. It describes the output but does not disclose edge cases (e.g., empty list), rate limits, or authentication needs. It is adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys purpose, examples, and return fields without wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and no output schema, the description is largely self-sufficient. It covers the key information but could mention ordering or empty result handling.
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?
No parameters exist; baseline is 4. The description adds value by explaining what the tool returns, fulfilling the need for parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: listing every RWA protocol with signed trust attestations. It includes specific examples and enumerates the return fields, making it distinct from sibling tools that retrieve single attestations.
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 use for getting an overview but does not explicitly contrast with sibling tools (e.g., get_signed_rwa_attestation) or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_top_protocolsA
Top DeFi protocols by TVL on a given chain. Default: Ethereum top 10. Use this for discovery before calling get_protocol_tvl.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Chain to rank within (default: Ethereum) | Ethereum |
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so description carries full burden. It confirms a read-only listing but does not disclose any potential limitations, rate limits, or exact sorting behavior (e.g., descending by TVL). Additional behavioral traits like pagination or result format are omitted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no unnecessary words. First sentence states the core function, second provides a concrete usage guideline. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool is low complexity with two optional parameters and no output schema. The description covers basic intent and usage hint, but lacks specification of output structure (e.g., whether protocols include TVL values) and ordering. Adequate but leaves minor ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 50% of parameters with descriptions (chain has description, limit does not). Description adds default values (Ethereum, top 10) but does not explain limit semantics beyond default. Baseline 3 is appropriate given partial schema coverage and minor additive 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?
Clearly states 'Top DeFi protocols by TVL on a given chain' with default Ethereum top 10. Verb 'list' is implied by tool name and description, resource is well-defined, and distinguishes from sibling 'list_top_rwa_protocols' by specifying DeFi versus RWA.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises 'Use this for discovery before calling get_protocol_tvl', providing a clear usage context. Does not enumerate when-not to use, but the specific recommendation compensates.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_top_rwa_protocolsB
Top RWA protocols by TVL — ranked across all chains. Annotates each with its segment (tokenized_treasury / private_credit / other) and primary chain. Returns BUIDL, OUSG, Ondo, Maple, Centrifuge, etc.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavior. It mentions returning annotations and gives examples, but does not state data freshness, ordering (descending TVL?), error handling, or pagination for limit parameter. Partial disclosure only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, clear and direct. Last sentence listing examples is slightly redundant but not harmful. Could be more concise by removing examples or integrating them. Overall 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?
No output schema; description mentions return includes annotations but does not specify the return structure (e.g., list of objects with fields). Also lacks details on ranking order. Incomplete for a tool with no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has one parameter (limit) with 0% description coverage. Description does not mention limit or its effect. Agent must infer from schema alone. Missed opportunity to clarify that limit controls number of protocols 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?
Description clearly states purpose: list top RWA protocols by TVL, ranked across all chains, with annotations for segment and primary chain. Examples given. Distinguishes from siblings like list_top_protocols (likely general) and list_signed_rwa_attestations.
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?
Implies usage for getting ranked list of top RWA protocols by TVL. No explicit when-to-use or when-not-to-use compared to siblings like get_rwa_protocol_detail or score_protocol_positioning. Contextual but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
score_protocol_positioningA
FREE positioning teardown — scores a DeFi protocol on 5 dimensions (messaging clarity, niche specificity, TVL momentum, category fit, cross-chain reach). Returns a structured scorecard + recommended next action. This is the free tier; for a full teardown ask the upsell CTA in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| protocol_name | Yes | DefiLlama protocol name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full burden. It discloses that this is a free (read-only) teardown and returns a scorecard with next action. However, it does not specify authentication needs, behavior on invalid input, or whether it is purely observational. The 'free' label hints at non-destructive action but lacks explicit safety guarantees.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. It front-loads key information ('FREE positioning teardown') and succinctly covers what the tool does and what it returns, including the upsell note.
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 (1 required param, no output schema), the description adequately covers purpose, output structure (scorecard + next action), and free tier limitation. It lacks explicit mention of the five dimensions but is still mostly complete for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'protocol_name' is already described in the schema as 'DefiLlama protocol name.' The description adds that it scores a DeFi protocol on 5 dimensions, but no additional parameter-level detail (e.g., format, case-sensitivity, or domain) beyond what the schema provides. With 100% schema description coverage, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs a 'FREE positioning teardown' that 'scores a DeFi protocol on 5 dimensions' and returns a 'structured scorecard + recommended next action.' The verb 'scores' and resource 'DeFi protocol' are specific, and the tool is distinct from siblings like get_protocol_tvl or list_top_protocols.
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 scoring protocol positioning but does not explicitly state when to use or not use this tool versus siblings. It mentions 'free tier' and an upsell CTA, but no direct guidance on exclusion criteria or when a different tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
11 tool updates
v0.2.0- First observed
get_chain_defi_status - First observed
get_onchain_anchor - First observed
get_protocol_tvl - First observed
get_rwa_landscape - First observed
get_rwa_protocol_detail - First observed
get_signed_rwa_attestation - First observed
get_signed_rwa_attestation_full - First observed
list_signed_rwa_attestations - First observed
list_top_protocols - First observed
list_top_rwa_protocols - First observed
score_protocol_positioning
TDQS
Each tool has a clearly distinct purpose: chain stats, protocol TVL, RWA overview, attestation retrieval (summary vs full), listing, and scoring. The only potential overlap (get_signed_rwa_attestation vs _full) is explicitly differentiated by detail level.
All tools follow a consistent verb_noun pattern using snake_case (e.g., get_chain_defi_status, list_top_protocols). No mixing of conventions, making the set predictable for an agent.
11 tools is well-scoped for a specialized RWA attestation server. Each tool serves a clear function without bloat, covering data retrieval, listing, and analysis.
The tool surface covers core read operations: chain stats, protocol TVL, RWA landscape, attestations (summary/full), listings, and scoring. Missing a tool to create or anchor attestations, but the server's purpose appears read-only, so minor gap.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server giving AI agents one-connection access to crypto & DeFi data: DeFi protocol TVL, stableco
Pay-per-call DeFi and macro intel for AI agents. x402 USDC tools via streamable HTTP /api/mcp.
DeFi Yield Intelligence MCP — 8 tools: 19K+ pools, risk-adjusted APY, RWA yields.
Compliance MCP for AI agents: sanctions & KYT screening on 50+ chains, stablecoin-freeze, oracle.
Related MCP Servers
- FlicenseAqualityCmaintenanceConnects AI agents to Real World Asset (RWA) data, enabling queries about tokenized assets, market trends, TVL analytics, token holders, and portfolio tracking across multiple blockchains.181-
- FlicenseNot gradedqualityDmaintenanceOn-chain trust verification for AI agent tools. Agents query skill attestations, audit levels, and risk scores before running third-party MCP servers, so you know what's safe before you execute.1-
- AlicenseNot gradedqualityCmaintenanceEnables AI-powered chat and DeFi operations (swap, transfer) via MCP-compliant tools, integrating with LLMs for onchain actions.20MIT

Syeniteofficial
FlicenseNot gradedqualityDmaintenanceA DeFi MCP server enabling AI agents to query lending rates, execute swaps/bridges, monitor positions, and access prediction markets across 30+ chains with a trust layer for calldata verification.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/defibabylon/rwa-attest'
If you have feedback or need assistance with the MCP directory API, please join our Discord server