XRPL MCP Server logo

XRPL MCP Server

esonica/mcp_xrpl
0 starsUpdated 2026-01-08Community

Is this your server?

Add your score badge to your README and get your server in front of 45k+ builders a month.

Works with

Claude CodeClaude DesktopCursorVS CodeClineCodex CLIOpenClaw+ any MCP client

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

Provides read-only access to the XRP Ledger for querying accounts, transactions, NFTs, DEX order books, and more.

README.md

XRPL MCP Server

A Model Context Protocol (MCP) server that provides read-only access to the XRP Ledger. Query accounts, transactions, NFTs, DEX order books, and more.

Features

  • Account Operations: Get account info, balances, trust lines, transaction history
  • Transaction Lookup: Retrieve detailed transaction information by hash
  • Ledger Data: Query ledger state and server information
  • NFT Support: List account NFTs and get NFT details
  • DEX Integration: View account offers and order books
  • Multi-Network: Supports Mainnet, Testnet, and Devnet

Installation

git clone https://github.com/esonica/mcp_xrpl.git
cd mcp_xrpl
npm install
npm run build

Configuration

Claude Desktop

Add to your Claude Desktop configuration file:

Windows: %APPDATA%\Claude\claude_desktop_config.json macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "xrpl": {
      "command": "node",
      "args": ["C:/path/to/mcp_xrpl/build/index.js"]
    }
  }
}

Claude Code

Add to your Claude Code MCP settings (.claude/settings.json):

{
  "mcpServers": {
    "xrpl": {
      "command": "node",
      "args": ["C:/path/to/mcp_xrpl/build/index.js"]
    }
  }
}

Network Selection

All tools accept an optional network parameter:

| Network | Description | WebSocket URL | |---------|-------------|---------------| | mainnet | Production XRP Ledger (default) | wss://xrplcluster.com | | testnet | Test network with test XRP | wss://s.altnet.rippletest.net:51233 | | devnet | Development network | wss://s.devnet.rippletest.net:51233 |

---

Tools Reference

Account Tools

get_account_info

Get detailed information about an XRPL account including balance, sequence number, and flags.

| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | account | string | Yes | The XRPL account address (starts with r) | | network | string | No | Network to query: mainnet, testnet, or devnet |

Example: ``json { "account": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "network": "mainnet" } ``

Returns: Account balance (in drops), sequence number, flags, owner count, and other account settings.

---

get_account_lines

Get trust lines (token balances) for an XRPL account. Shows all issued currencies the account holds.

| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | account | string | Yes | The XRPL account address (starts with r) | | peer | string | No | Filter to trust lines with this specific issuer | | limit | number | No | Maximum number of trust lines to return (default: 200) | | network | string | No | Network to query: mainnet, testnet, or devnet |

Example: ``json { "account": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "limit": 50 } ``

Returns: Array of trust lines with currency code, balance, limit, and issuer for each.

---

get_account_currencies

Get a list of currencies an account can send or receive.

| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | account | string | Yes | The XRPL account address (starts with r) | | network | string | No | Network to query: mainnet, testnet, or devnet |

Example: ``json { "account": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh" } ``

Returns: Lists of send_currencies and receive_currencies.

---

get_account_transactions

Get transaction history for an XRPL account.

| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | account | string | Yes | The XRPL account address (starts with r) | | limit | number | No | Maximum transactions to return (default: 20) | | forward | boolean | No | If true, return oldest first (default: false, newest first) | | network | string | No | Network to query: mainnet, testnet, or devnet |

Example: ``json { "account": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "limit": 10, "forward": false } ``

Returns: Array of transactions with full transaction details and metadata.

---

Transaction Tools

get_transaction

Get detailed information about a specific transaction by its hash.

| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | transaction_hash | string | Yes | The transaction hash (64 character hex string) | | binary | boolean | No | If true, return as binary blob (default: false) | | network | string | No | Network to query: mainnet, testnet, or devnet |

Example: ``json { "transaction_hash": "E08D6E9754025BA2534A78707605E0601F03ACE063687A0CA1BCCABD0B9C4226" } ``

Returns: Full transaction details including type, accounts involved, amounts, and result.

---

Ledger Tools

get_ledger

Get information about a specific ledger or the latest validated ledger.

| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | ledger_index | string | No | Ledger index or validated, closed, current (default: validated) | | transactions | boolean | No | Include transaction hashes (default: false) | | expand | boolean | No | Include full transaction details (default: false) | | network | string | No | Network to query: mainnet, testnet, or devnet |

Example: ``json { "ledger_index": "validated", "transactions": true } ``

Returns: Ledger header info including hash, close time, transaction count, and state hash.

---

get_server_info

Get information about the XRPL server/node including its current state and sync status.

| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | network | string | No | Network to query: mainnet, testnet, or devnet |

Example: ``json { "network": "testnet" } ``

Returns: Server version, uptime, validated ledger range, peer count, and sync state.

---

ping

Ping the XRPL server to check connectivity and measure response time.

| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | network | string | No | Network to ping: mainnet, testnet, or devnet |

Example: ``json { "network": "mainnet" } ``

Returns: Connection status, response time in milliseconds, and network info.

---

NFT Tools

get_account_nfts

Get all NFTs (Non-Fungible Tokens) owned by an XRPL account.

| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | account | string | Yes | The XRPL account address (starts with r) | | limit | number | No | Maximum NFTs to return (default: 100) | | network | string | No | Network to query: mainnet, testnet, or devnet |

Example: ``json { "account": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh", "limit": 50 } ``

Returns: Array of NFTs with NFT ID, issuer, serial number, URI, and flags.

---

get_nft_info

Get detailed information about a specific NFT by its NFT ID.

| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | nft_id | string | Yes | The NFT ID (64 character hex string) | | network | string | No | Network to query: mainnet, testnet, or devnet |

Example: ``json { "nft_id": "00081388DC1AB4937C899037B2FDFC3CB20F6F64E73120BB5F8AA66A00000228" } ``

Returns: NFT details including owner, issuer, taxon, serial, URI, and flags.

---

DEX Tools

get_account_offers

Get all open DEX (Decentralized Exchange) offers for an XRPL account.

| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | account | string | Yes | The XRPL account address (starts with r) | | limit | number | No | Maximum offers to return (default: 200) | | network | string | No | Network to query: mainnet, testnet, or devnet |

Example: ``json { "account": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh" } ``

Returns: Array of open offers with taker_gets, taker_pays, sequence, and quality.

---

get_order_book

Get the order book for a currency pair on the XRPL DEX.

| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | base_currency | string | Yes | Base currency code (e.g., "XRP", "USD") | | base_issuer | string | No | Issuer for base currency (not needed for XRP) | | quote_currency | string | Yes | Quote currency code (e.g., "XRP", "USD") | | quote_issuer | string | No | Issuer for quote currency (not needed for XRP) | | limit | number | No | Maximum offers per side (default: 20) | | network | string | No | Network to query: mainnet, testnet, or devnet |

Example - XRP/USD order book: ``json { "base_currency": "XRP", "quote_currency": "USD", "quote_issuer": "rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq", "limit": 10 } ``

Example - USD/EUR order book: ``json { "base_currency": "USD", "base_issuer": "rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq", "quote_currency": "EUR", "quote_issuer": "rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq" } ``

Returns: Object with asks and bids arrays containing order book offers.

---

Common Issuers

Here are some well-known token issuers on XRPL mainnet:

| Issuer | Address | Tokens | |--------|---------|--------| | Bitstamp | rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B | USD, BTC, EUR | | GateHub | rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq | USD, EUR, GBP |

---

Development

# Install dependencies
npm install

# Build
npm run build

# Watch mode (rebuild on changes)
npm run dev

License

MIT

See related servers & alternatives →

Related MCP servers

Browse all →

Related guides

Hand-picked reading to help you choose and use Other servers.