XRPL Data MCP

XRPL Data MCP

Integrates multiple XRPL data sources including LOS, Validator History Service, XRPL JSON-RPC, and XRPLMeta to provide comprehensive querying of XRPL network data, accounts, transactions, tokens, validators, and more via MCP tools.

Category
Visit Server

README

XRPL MCP Server

MCP server for:

  • LOS (https://los.prod.ripplex.io)
  • Validator History Service (https://data.xrpl.org)
  • XRPL JSON-RPC (https://s1.ripple.com:51234)
  • XRPLMeta (https://s1.xrplmeta.org)

Setup

npm install
npm start

npm start runs the server over Streamable HTTP at http://127.0.0.1:3000/mcp by default. For stdio mode (used by some local MCP clients and the all-tools harness), run:

npm run start:stdio

Environment Variables

  • LOS_BASE_URL (default: https://los.prod.ripplex.io)
  • DATA_XRPL_BASE_URL (default: https://data.xrpl.org)
  • XRPL_RPC_URL (default: https://s1.ripple.com:51234)
  • XRPLMETA_BASE_URL (default: https://s1.xrplmeta.org)
  • MCP_TRANSPORT (default: http, options: http or stdio)
  • MCP_HTTP_HOST (default: 0.0.0.0)
  • MCP_HTTP_PORT (default: 3000)
  • MCP_HTTP_PATH (default: /mcp)

MCP Client Config (http, default)

{
  "mcpServers": {
    "xrpl-data": {
      "transport": {
        "type": "http",
        "url": "http://127.0.0.1:3000/mcp"
      }
    }
  }
}

MCP Client Config (stdio, optional)

{
  "mcpServers": {
    "xrpl-data": {
      "command": "node",
      "args": ["/Users/ashraychowdhry/Documents/xrpl-data-mcp/src/server.js"],
      "env": {
        "LOS_BASE_URL": "https://los.prod.ripplex.io",
        "DATA_XRPL_BASE_URL": "https://data.xrpl.org",
        "XRPL_RPC_URL": "https://s1.ripple.com:51234",
        "XRPLMETA_BASE_URL": "https://s1.xrplmeta.org"
      }
    }
  }
}

Response Formats

1) Low-level passthrough tools

Most low-level tools (los_*, vh_*, xrpl_*, validator_history_get, xrpl_public_api_call) return the upstream JSON payload in MCP text content.

Typical shapes:

  • XRPL RPC tools: { "result": { ... }, "status": "success", "warnings"?: [...] }
  • VHS/LOS GET tools: service-native object/array response

2) Agent-first composite tools

These return a normalized envelope:

{
  "data": {},
  "sources": [{ "system": "LOS|VHS|rippled|XRPLMeta", "method": "...", "at": "..." }],
  "freshness": { "asOfLedger": 0, "asOfTime": "..." },
  "warnings": []
}

3) Error format

On upstream/API/runtime failure, tools return MCP error content with isError: true and human-readable text (often including upstream HTTP status/body).

How To Use Tools

Call MCP tools with:

  • name: tool id
  • arguments: JSON object matching the tool input schema below

Example:

{
  "name": "xrpl_account_info",
  "arguments": {
    "account": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh",
    "ledger_index": "validated"
  }
}

How To Use This Server (Step-by-step)

  1. Install dependencies.
    npm install
    
  2. Start the server locally.
    npm start
    
  3. Add the MCP server config to your MCP client (use the http config above by default).
  4. In your MCP client, run tools/list to discover all available tools.
  5. Start with a simple connectivity check:
    • xrpl_server_info
    • network_overview
  6. For entity-specific lookups, use resolve_entities first, then call suggested tools.
  7. For topology-specific calls:
    • call vh_topology_nodes first
    • take a pubkey from that response
    • call vh_topology_node with that pubkey
  8. For token/NFT-specific calls, discover live IDs first:
    • token: los_get_trusted_tokens
    • nft: xrpl_nft_info / xrpl_nft_history after discovering an nft_id
  9. Run the full validation suite to verify end-to-end health:
    node scripts/test-all-tools.mjs > /tmp/xrpl-mcp-test-results.json
    
  10. Manually call a single tool over HTTP:
    node scripts/test-http-tool.mjs http://127.0.0.1:3000/mcp xrpl_server_info '{}'
    

Full Tool Catalog (49)

Agent-first composite tools (12)

Tool Description Required arguments Expected response format
network_overview Network identity, health summary, LOS freshness none Envelope: data includes server/network/health metrics
ledger_summary Canonical ledger facts + LOS hints none (ledger_index/ledger_hash optional) Envelope: data.ledger, ledger metadata, optional LOS artifacts
tx_explain Normalized transaction explanation/classification tx_hash Envelope: tx details, classification, token/entity hints
account_overview Account state/activity summary account Envelope: balances, trustlines, activity histogram, risk indicators
token_overview Consolidated issued-token view issuer, currency Envelope: token metadata, holders/trustlines, liquidity/activity
market_snapshot Orderbook + AMM + recent LOS trades base, quote Envelope: orderbook summary, AMM state, trade sample/VWAP
amm_overview AMM state and swap activity none (amm_id or assetA+assetB recommended) Envelope: AMM state, swap sample, aggregate volume
validator_set_overview Validator set composition summary none (options.group optional) Envelope: validator count, operator concentration, set sample
validator_health Validator reliability metrics pubkey_or_node Envelope: validator profile + signed/missed/uptime-like metrics
amendment_status Amendment enablement + context none (network optional) Envelope: enabled amendments, vote context, network context
search_transactions Filtered LOS transaction search + aggregates filters Envelope: results, cursor, aggregate stats
resolve_entities Pattern-based XRPL entity resolver input Envelope: resolved entity type + suggested next tools

LOS tools (4)

Tool Description Required arguments Expected response format
los_get_token Fetch one LOS token by tokenID (currencyHex.issuer) tokenID LOS token object
los_batch_get_tokens Batch fetch LOS tokens tokenIds (array) LOS batch token response
los_get_trusted_tokens List trusted/KYC tokens none LOS trusted token list (count, tokens)
los_get_transactions Query LOS transactions with paging/sort none (token strongly recommended) LOS transaction query response (results/cursor fields)

Validator history tools (15)

Tool Description Required arguments Expected response format
vh_list_networks List tracked networks none VHS networks payload (result, networks)
vh_topology_nodes Topology nodes for all/specific network none (network optional) VHS topology nodes payload
vh_topology_node Topology for a specific node pubkey pubkey VHS topology node payload
vh_list_validators List validators (optionally by group) none (group optional) VHS validators payload
vh_get_validator Validator detail pubkey VHS validator profile
vh_get_validator_manifests Validator manifest history pubkey VHS manifest history payload
vh_get_validator_reports Validator reports pubkey VHS validator reports payload
vh_get_daily_validator_reports Daily validator reports collection none VHS daily report payload
vh_get_amendments_info Amendment metadata none VHS amendments info payload
vh_get_amendment_info Amendment info by name/id amendment VHS amendment detail payload
vh_get_amendments_vote Amendment votes for a network network VHS amendment votes payload
vh_get_amendment_vote Single amendment vote status network, identifier VHS amendment vote detail payload
vh_health VHS health summary none VHS health payload
vh_metrics VHS Prometheus metrics none Metrics text/structured payload returned as text
validator_history_get Generic VHS GET passthrough path Raw VHS response for requested path

XRPL JSON-RPC tools (17)

Tool Description Required arguments Expected response format
xrpl_account_info Account root info account XRPL RPC result object
xrpl_account_objects Objects owned by account account XRPL RPC result object
xrpl_account_lines Trust lines account XRPL RPC result object
xrpl_account_tx Account tx history account XRPL RPC result object
xrpl_ledger Ledger by hash/index none XRPL RPC result object
xrpl_ledger_data Raw ledger state pages none XRPL RPC result object
xrpl_ledger_entry Single ledger entry none (one locator required by XRPL) XRPL RPC result object
xrpl_tx Transaction by hash transaction XRPL RPC result object
xrpl_book_offers Orderbook offers taker_gets, taker_pays XRPL RPC result object
xrpl_amm_info AMM pool info asset, asset2 XRPL RPC result object
xrpl_nft_info NFToken state/metadata nft_id XRPL RPC result object
xrpl_nft_history NFToken ownership/transfer history nft_id XRPL RPC result object
xrpl_nfts_by_issuer NFTs by issuer issuer XRPL RPC result object
xrpl_server_info Server status/validated range none XRPL RPC result object
xrpl_fee Fee metrics none XRPL RPC result object
xrpl_public_api_call Generic JSON-RPC method call method XRPL RPC result object
xrpl_list_recommended_methods Curated method list exposed by dedicated tools none { "methods": [...] }

XRPLMeta tools (1)

Tool Description Required arguments Expected response format
xrplmeta_get Generic XRPLMeta GET passthrough path Envelope: data contains XRPLMeta response

Input Discovery Notes (for reliable testing)

Some tools need live identifiers. The test harness discovers them first:

  • vh_topology_node.pubkey: taken from vh_topology_nodes output
  • vh_get_validator* / validator_health: taken from vh_list_validators
  • tx_explain / xrpl_tx: tx hash from xrpl_account_tx
  • xrpl_nft_info / xrpl_nft_history: NFT id from recent NFT transactions
  • los_get_token / token-dependent tools: token from los_get_trusted_tokens

Test Results

Latest end-to-end live run (2026-02-20):

  • Tools tested: 49
  • Passed: 49
  • Failed: 0

Run command:

node scripts/test-all-tools.mjs > /tmp/xrpl-mcp-test-results.json

Detailed output:

  • /tmp/xrpl-mcp-test-results.json
  • /Users/ashraychowdhry/Documents/xrpl-data-mcp/docs/TEST_RESULTS.md

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured