Xrpl MCP Server
XRP Ledger MCP Server
Installation
npx xrpl-mcp-serverAsk AI about Xrpl MCP Server
Powered by Claude · Grounded in docs
I know everything about Xrpl MCP Server. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
XRPL MCP Server
An MCP server that gives AI assistants structured access to XRP Ledger data and network actions.
Requirements
- Python 3.10 or newer
Features
- Get account balances and sequence numbers
- Query trust lines and issued currencies
- View NFTs owned by an account
- Retrieve account transaction history
- Fetch individual transaction details
- Inspect DEX order book offers
- Retrieve XRPL server status
- Submit signed transactions
Package Chooser
Pick the install target that matches how you plan to use the server.
Quickstart
The quickstart below is the source-checkout path for local development and MCP registration. If you only need the published package, use the PyPI install command above.
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e ".[dev]"
mcp install src/xrpl_mcp_server/server.py:mcp --with-editable .
First prompt to try:
What is the XRP balance and sequence number for account rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe?
Installation
From source
git clone https://github.com/lgcarrier/xrpl-mcp-server.git
cd xrpl-mcp-server
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e ".[dev]"
This installs the package in editable mode and includes the mcp CLI used for local development and Claude Desktop integration.
From PyPI
The published package name is different from the GitHub repository name.
python -m pip install iflow-mcp_lgcarrier-xrpl-mcp-server
Configuration
The server uses the following environment variable:
XRPL_NODE_URL: XRP Ledger JSON-RPC endpoint. Default:https://s1.ripple.com:51234/
Safety Note
By default, the server connects to Ripple's public mainnet endpoint. That means:
- read-only tools query live mainnet data
submit_transactionsubmits a signed transaction to the live XRP Ledger network
Only use submit_transaction when you intend to broadcast a real signed transaction.
For testing, point the server to testnet before launching it:
export XRPL_NODE_URL="https://s.altnet.rippletest.net:51234/"
python -m xrpl_mcp_server
You can also install the Claude Desktop entry with the environment variable set:
mcp install src/xrpl_mcp_server/server.py:mcp --with-editable . \
--env-var XRPL_NODE_URL=https://s.altnet.rippletest.net:51234/
Usage
Run directly from source
python -m xrpl_mcp_server
Run as an installed package
xrpl-mcp-server
Inspect locally with the MCP Inspector
mcp dev src/xrpl_mcp_server/server.py:mcp --with-editable .
Install into Claude Desktop
mcp install src/xrpl_mcp_server/server.py:mcp --with-editable .
If you prefer uv, the equivalent commands are uv run mcp dev ... and uv run mcp install ....
Available Tools
All tools keep their existing names and arguments. Successful calls return structured MCP outputs instead of plain text or JSON-encoded strings.
get_account_info
Parameters:
address(string): XRP Ledger account address
Returns a structured object with:
accountbalance_dropsbalance_xrpsequence
get_account_lines
Parameters:
address(string): XRP Ledger account addresspeer(string, optional): Counterparty account filterlimit(integer, optional): Maximum number of trust lines
Returns the XRPL account_lines result object.
get_account_nfts
Parameters:
address(string): XRP Ledger account addresslimit(integer, optional): Maximum number of NFTs
Returns the XRPL account_nfts result object.
get_account_transactions
Parameters:
address(string): XRP Ledger account addresslimit(integer, optional): Maximum number of transactionsbinary(boolean, optional): Return transactions in binary formforward(boolean, optional): Search forward through ledger history
Returns the XRPL account_tx result object.
get_server_info
Returns the XRPL server_info result object.
submit_transaction
Parameters:
tx_blob(string): Signed transaction blob in hex format
Returns the XRPL submit result object.
get_transaction_info
Parameters:
transaction_hash(string): Transaction hash
Returns the XRPL tx result object.
get_book_offers
Parameters:
taker_gets(object): Currency/issuer object the taker wants to receivetaker_pays(object): Currency/issuer object the taker wants to paylimit(integer, optional): Maximum number of offers
Returns the XRPL book_offers result object.
Errors
Tool failures are returned as MCP tool errors rather than success payloads. Common cases include:
- account lookups for missing addresses, such as
actNotFound - transaction lookups for unknown hashes, such as
txnNotFound - upstream XRPL request failures, including submission errors and transport exceptions
Example not-found error:
Account rMissingExampleAddress not found on the ledger.
Example submission error:
Submitting transaction failed: tefFAILURE: submission rejected
Examples
get_account_info
Prompt:
What is the balance of the XRP account rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe?
Structured result:
{
"account": "rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe",
"balance_drops": "25500000",
"balance_xrp": "25.5",
"sequence": 123456
}
get_account_transactions
Prompt:
Show me the two most recent transactions for rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe.
Representative result shape:
{
"account": "rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe",
"ledger_index_max": 98765432,
"ledger_index_min": 98765400,
"transactions": [
{
"tx": {
"hash": "ABC123...",
"TransactionType": "Payment"
},
"validated": true
},
{
"tx": {
"hash": "DEF456...",
"TransactionType": "TrustSet"
},
"validated": true
}
]
}
get_book_offers
Prompt:
Show me the first three book offers for XRP/USD on the XRPL DEX.
Representative result shape:
{
"ledger_current_index": 98765432,
"offers": [
{
"Account": "rOfferMaker1",
"Sequence": 100,
"quality": "0.5"
},
{
"Account": "rOfferMaker2",
"Sequence": 101,
"quality": "0.51"
}
]
}
Development
Run the test suite:
pytest
License
MIT License
