XRPL MCP Server
A Model Context Protocol (MCP) server that provides AI models with access to XRP Ledger data and functionality.
Overview
XRPL MCP Server acts as a bridge between large language models (LLMs) like Claude and GPT and the XRP Ledger. It enables AI models to retrieve account information from the XRP Ledger through a standardized API interface.
Features
- Get account information (balance, sequence number)
- Query trust lines and issued currencies
- View NFTs owned by accounts
- Retrieve transaction history
- Access order book data from the DEX
- Submit signed transactions to the network
- Get server status information
- Reliable XRP Ledger data access through MCP
- Easy integration with MCP-compatible AI applications
Installation
From Source
-
Clone this repository:
git clone https://github.com/lgcarrier/xrpl-mcp-server.git cd xrpl-mcp-server -
Create and activate a virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate -
Install dependencies:
pip install -r requirements.txt
Using pip
pip install xrpl-mcp-server
Configuration
The server uses the following environment variables:
XRPL_NODE_URL- XRP Ledger node URL (defaults to "https://s1.ripple.com:51234/")
Usage
Run from Source
Launch the server:
python -m xrpl_mcp_server
Run as Installed Package
xrpl-mcp-server
Using with Claude or Other MCP-Compatible AI Assistants
-
Install the MCP:
mcp install xrpl-mcp-server -
The XRPL tools will be available to Claude, allowing you to ask for XRP Ledger account information.
Available Tools
get_account_info
Retrieves information about an XRP Ledger account.
Parameters:
address(string): The XRP Ledger account address (starts with "r")
Returns:
- Account balance in XRP
- Account sequence number
get_account_lines
Retrieves trust lines for an XRP Ledger account.
Parameters:
address(string): The XRP Ledger account address (starts with "r")peer(string, optional): Address of a counterparty account to filter resultslimit(integer, optional): Limit for the number of trust lines returned
Returns:
- JSON-formatted information about the account's trust lines
get_account_nfts
Retrieves NFTs owned by an XRP Ledger account.
Parameters:
address(string): The XRP Ledger account address (starts with "r")limit(integer, optional): Limit for the number of NFTs returned
Returns:
- JSON-formatted information about the account's NFTs
get_account_transactions
Retrieves transaction history for an XRP Ledger account.
Parameters:
address(string): The XRP Ledger account address (starts with "r")limit(integer, optional): Limit for the number of transactions returnedbinary(boolean, optional): Flag to return transactions in binary format (default False)forward(boolean, optional): Flag to search forward in ledger history (default False)
Returns:
- JSON-formatted information about the account's transaction history
get_server_info
Retrieves information about the connected XRP Ledger server.
Parameters:
- None
Returns:
- JSON-formatted information about the XRP Ledger server
submit_transaction
Submits a signed transaction blob to the XRP Ledger.
Parameters:
tx_blob(string): The signed transaction blob in hexadecimal format
Returns:
- JSON-formatted submission result
get_transaction_info
Retrieves information about a specific transaction.
Parameters:
transaction_hash(string): The hash of the transaction
Returns:
- JSON-formatted transaction details
get_book_offers
Retrieves order book offers for a currency pair on the DEX.
Parameters:
taker_gets(object): Currency the taker wants to receive, e.g.,{"currency": "XRP"}or{"currency": "USD", "issuer": "r..."}taker_pays(object): Currency the taker wants to pay, e.g.,{"currency": "EUR", "issuer": "r..."}or{"currency": "XRP"}limit(integer, optional): Limit for the number of offers returned
Returns:
- JSON-formatted order book offers
Examples
Ask Claude:
What is the balance of the XRP account rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe?
Claude can then use the get_account_info tool to fetch this information directly from the XRP Ledger.
Example response:
Account: rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe
XRP Balance: 25.5
Sequence: 123456
Here's another example:
What NFTs does account rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe own?
Claude can use the get_account_nfts tool to retrieve this information.
Development
See the memory-bank directory for detailed documentation about architecture, coding rules, and implementation plans.
To set up the development environment:
pip install -e ".[dev]"
License
MIT License
Metadata
Release files for iflow-mcp_lgcarrier-xrpl-mcp-server 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| iflow_mcp_lgcarrier_xrpl_mcp_server-0.1.0.tar.gz | 5.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| iflow_mcp_lgcarrier_xrpl_mcp_server-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 11.5 kB
Release files / iflow_mcp_lgcarrier_xrpl_mcp_server-0.1.0.tar.gz
| Download URL | iflow_mcp_lgcarrier_xrpl_mcp_server-0.1.0.tar.gz |
|---|---|
| Size | 5.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9684e2c1d256df67ac141b2ccf99e7bf94ac3ab0481ff403405c0faec902b226
|
|
BLAKE2b-256 checksum How to use checksums |
5438ca28d66dc784ca18f9c28750f0f9e4bf6e5fb6d30f95c487ec3d753c2258
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.7.8
|
Release files / iflow_mcp_lgcarrier_xrpl_mcp_server-0.1.0-py3-none-any.whl
| Download URL | iflow_mcp_lgcarrier_xrpl_mcp_server-0.1.0-py3-none-any.whl |
|---|---|
| Size | 6.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9ac1a38858d49913ac1a8ebf9866763a0693484d4ee89b05dbee38f558b7ef28
|
|
BLAKE2b-256 checksum How to use checksums |
8812d423d93b23f54014a8aa44114e42e2800a4eea2be2dc72966b926b858a8a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.7.8
|