{"serverId":"mcp-registry/com.xrpldashboard/xrpldashboard-mcp","tools":[{"name":"get_amendment_status","fixed":{"name":"get_amendment_status","description":"Return the current amendments state (enabled / in-flight /\n        superseded / unrecognized-enabled) with `cross_check_status`\n        derived from the responding node's feature-RPC vs Amendments\n        ledger-object concurrence. Wrapped in the proof envelope.","inputSchema":{"type":"object","title":"get_amendment_statusArguments","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":112,"tokensAfter":112},{"name":"get_amendments","fixed":{"name":"get_amendments","description":"Return the amendments block with per-amendment vote tallies.\n        Mirrors /amendments.json. Distinct from get_amendment_status\n        (state-only) — this tool adds live vote counts vs UNL-threshold\n        per amendment. Not third-party-naming. Wrapped in the proof\n        envelope.","inputSchema":{"type":"object","title":"get_amendmentsArguments","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":116,"tokensAfter":116},{"name":"get_amm_pool","fixed":{"name":"get_amm_pool","description":"Return the single ranked-pool row for one AMM account from the\n        amm_ranked_pools snapshot. Raises when the account is absent\n        (unranked, below thresholds, or newer than the last snapshot).\n        Wrapped in the proof envelope.","inputSchema":{"type":"object","title":"get_amm_poolArguments","required":["amm_account"],"properties":{"amm_account":{"type":"string","title":"Amm Account"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":124,"tokensAfter":124},{"name":"get_amm_top_by_tvl","fixed":{"name":"get_amm_top_by_tvl","description":"Return the top-N ranked AMM pools by tvl_usd from the same\n        snapshot /pools reads. NULL-tvl rows sort last. Wrapped in the\n        proof envelope.","inputSchema":{"type":"object","title":"get_amm_top_by_tvlArguments","properties":{"limit":{"type":"integer","title":"Limit","default":10}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":95,"tokensAfter":95},{"name":"get_ledger_stats","fixed":{"name":"get_ledger_stats","description":"Return the last-validated ledger stats (index, close time,\n        server state, load factor, complete range, build). Wrapped in\n        the xrpldashboard proof envelope; envelope source is derived from\n        the actual URL host (`local_rippled` for loopback / private LAN,\n        `remote_rippled:<host>` otherwise) — never hardcoded.","inputSchema":{"type":"object","title":"get_ledger_statsArguments","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":131,"tokensAfter":131},{"name":"get_mpt_snapshot","fixed":{"name":"get_mpt_snapshot","description":"Return the MPT snapshot dict (issuances / by_class / total).\n        Not third-party-naming — no dispute_contact_url. Wrapped in the\n        proof envelope.","inputSchema":{"type":"object","title":"get_mpt_snapshotArguments","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":80,"tokensAfter":80},{"name":"get_pools","fixed":{"name":"get_pools","description":"Return AMM pools ranked by TVL, broader list contract than\n        get_amm_top_by_tvl (default limit=50 vs 10). Mirrors /pools.json.\n        Same source snapshot (amm_ranked_pools). Third-party-naming —\n        data payload includes `dispute_contact_url`. Wrapped in the proof\n        envelope.","inputSchema":{"type":"object","title":"get_poolsArguments","properties":{"limit":{"type":"integer","title":"Limit","default":50}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":130,"tokensAfter":130},{"name":"get_rlusd_flow_24h","fixed":{"name":"get_rlusd_flow_24h","description":"Return the last finalized 24h XRPL net-change from\n        rlusd_supply_history. freshness_contract='finalized_only' is\n        the machine-readable form of the R1/R2 finalized-window rule.\n        cross_check_status derived from stored vs supply-diff pair.\n        Wrapped in the proof envelope.","inputSchema":{"type":"object","title":"get_rlusd_flow_24hArguments","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":120,"tokensAfter":120},{"name":"get_rlusd_supply","fixed":{"name":"get_rlusd_supply","description":"Return the current cross-chain RLUSD supply (Ethereum + XRPL)\n        from the same PG mirror /rlusd reads. Honest-partial when either\n        chain errored. Wrapped in the proof envelope.","inputSchema":{"type":"object","title":"get_rlusd_supplyArguments","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":89,"tokensAfter":89},{"name":"get_rwa_families","fixed":{"name":"get_rwa_families","description":"Return every rwa_family row with attributed pool count. Data\n        payload includes `dispute_contact_url`. Wrapped in the proof\n        envelope.","inputSchema":{"type":"object","title":"get_rwa_familiesArguments","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":77,"tokensAfter":77},{"name":"get_rwa_pools","fixed":{"name":"get_rwa_pools","description":"Return every attributed RWA pool with provenance + TVL. Data\n        payload includes `dispute_contact_url`. Wrapped in the proof\n        envelope.","inputSchema":{"type":"object","title":"get_rwa_poolsArguments","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":76,"tokensAfter":76},{"name":"get_signed_snapshot","fixed":{"name":"get_signed_snapshot","description":"Return the Ed25519-signed daily snapshot for `date_str`\n        (ISO YYYY-MM-DD) wrapped in the proof envelope. Absence raises —\n        the walker has not produced this date yet, or the date predates\n        the chain start.","inputSchema":{"type":"object","title":"get_signed_snapshotArguments","required":["date_str"],"properties":{"date_str":{"type":"string","title":"Date Str"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":121,"tokensAfter":121},{"name":"get_token_attestation","fixed":{"name":"get_token_attestation","description":"Return the attestation tier (verified / self-described / null)\n        for one (currency, issuer) pair. Data payload includes\n        `dispute_contact_url` — first tool to name a third party. Wrapped\n        in the proof envelope.","inputSchema":{"type":"object","title":"get_token_attestationArguments","required":["currency","issuer"],"properties":{"issuer":{"type":"string","title":"Issuer"},"currency":{"type":"string","title":"Currency"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":138,"tokensAfter":138},{"name":"get_tokens","fixed":{"name":"get_tokens","description":"Return the top-N tokens by trades_30d, joined against\n        attestation tier + warning flags. Mirrors /tokens.json's data\n        path (token_category_current JOIN token_facts). Third-party-\n        naming — data payload includes `dispute_contact_url`. Wrapped\n        in the proof envelope.","inputSchema":{"type":"object","title":"get_tokensArguments","properties":{"limit":{"type":"integer","title":"Limit","default":100}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":131,"tokensAfter":131},{"name":"get_unl_status","fixed":{"name":"get_unl_status","description":"Return the current UNL composition (both published lists,\n        overlap, expiry-days). Honest-partial when a list fetch fails.\n        Wrapped in the proof envelope.","inputSchema":{"type":"object","title":"get_unl_statusArguments","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":82,"tokensAfter":82},{"name":"get_whale_events","fixed":{"name":"get_whale_events","description":"Return the last N XRP-denominated whale events + tagged-watchlist\n        events (trustset excluded). Same feed the homepage globe pulse\n        reads. Wrapped in the proof envelope.","inputSchema":{"type":"object","title":"get_whale_eventsArguments","properties":{"limit":{"type":"integer","title":"Limit","default":25}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":102,"tokensAfter":102},{"name":"get_whale_watchlist","fixed":{"name":"get_whale_watchlist","description":"Return the last N tagged-watchlist events (type='tagged'),\n        floored at TAGGED_XRP_FLOOR_DROPS for XRP-denominated rows.\n        Wrapped in the proof envelope.","inputSchema":{"type":"object","title":"get_whale_watchlistArguments","properties":{"limit":{"type":"integer","title":"Limit","default":25}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":99,"tokensAfter":99},{"name":"get_whales","fixed":{"name":"get_whales","description":"Return the whales_summary rollup cells (per-tier × per-filter\n        body metadata). Mirrors /whales.json. Live stream on\n        wss://wss.xrpldashboard.com — this tool returns generation stats\n        + body length, not the live payload. Third-party-naming — data\n        payload includes `dispute_contact_url`. Wrapped in the proof\n        envelope.","inputSchema":{"type":"object","title":"get_whalesArguments","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":132,"tokensAfter":132}],"toolsChanged":18,"tokensSaved":0,"todo":[{"tool":"get_amm_pool","params":["amm_account"]},{"tool":"get_amm_top_by_tvl","params":["limit"]},{"tool":"get_pools","params":["limit"]},{"tool":"get_signed_snapshot","params":["date_str"]},{"tool":"get_token_attestation","params":["issuer","currency"]},{"tool":"get_tokens","params":["limit"]},{"tool":"get_whale_events","params":["limit"]},{"tool":"get_whale_watchlist","params":["limit"]},{"tool":"verify_snapshot_signature","params":["envelope"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}