XRPL MCP Service
A Model Context Protocol (MCP) server providing comprehensive access to the XRP Ledger (XRPL). This service enables AI models to interact with XRPL through standardized endpoints.
Features
Account Information
xrpl_account_info
- Basic account detailsxrpl_account_balances
- XRP and token balances (human-readable)xrpl_account_lines
- Trust linesxrpl_account_offers
- Active trading offersxrpl_account_nfts
- NFT holdingsxrpl_account_tx
- Transaction history
Decentralized Exchange
xrpl_order_book
- View order book for currency pairsxrpl_market_price
- Get current market pricesxrpl_amm_info
- Automated Market Maker information
NFT Operations
xrpl_nft_offers
- View NFT buy/sell offers
Trust Lines & Payments
xrpl_set_trust_line
- Establish new trust linesxrpl_remove_trust_line
- Remove existing trust linesxrpl_payment_channels
- Payment channel informationxrpl_find_path
- Payment path findingxrpl_deposit_auth
- Check payment authorization
System
xrpl_server_info
- Node status and informationxrpl_submit_tx
- Submit signed transactions
Setup
- Create a
.env
file:
XRPL_NODE_URL=https://xrplcluster.com
- Install dependencies:
pip install xrpl-py fastapi uvicorn python-dotenv
- Run the server:
uvicorn main:app --host 0.0.0.0 --port 8000 --reload
API Usage Examples
Get Account Info
POST /call-tool/xrpl_account_info
{
"account": "rsuUjfWxrACCAwGQDsNeZUhpzXf1n1NK5Z"
}
Get Account Balances
POST /call-tool/xrpl_account_balances
{
"account": "rsuUjfWxrACCAwGQDsNeZUhpzXf1n1NK5Z"
}
Set Trust Line
POST /call-tool/xrpl_set_trust_line
{
"wallet_seed": "sXXXXXXXXXXXXXXXXXXXX",
"currency": "USD",
"issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",
"limit": "1000"
}
Get AMM Info
POST /call-tool/xrpl_amm_info
{
"asset": {
"currency": "XRP"
},
"asset2": {
"currency": "USD",
"issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B"
}
}
Get Market Price
POST /call-tool/xrpl_market_price
{
"base_currency": {
"currency": "XRP"
},
"quote_currency": {
"currency": "USD",
"issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B"
}
}
Project Structure
βββ main.py # FastAPI application entry point
βββ tools/
β βββ __init__.py
β βββ register_tools.py # Tool registration
β βββ xrpl_tools.py # XRPL endpoint implementations
Key Components
-
xrpl_tools.py
- Core XRPL interaction functions
- Async implementation with event loop handling
- Error handling and response formatting
-
register_tools.py
- MCP tool registration
- Endpoint mapping and configuration
Future Enhancements
-
AMM (Liquidity Pool) Operations
- Create pools
- Add/remove liquidity
- Vote on pool parameters
-
Advanced Trading
- Create/cancel offers
- Automated trading functions
- Price alerts
-
NFT Operations
- Mint NFTs
- Create/accept offers
- Collection management
Common Issues
-
Async Event Loop: If you see βasyncio.run() cannot be called from a running event loopβ, check the async implementation in xrpl_tools.py
-
Rate Limiting: Consider implementing rate limiting for production use
Contributing
- Fork the repository
- Create a feature branch
- Implement your changes
- Submit a pull request
Important Notes
- Always use βvalidatedβ ledger for production
- Secure wallet seeds and private keys
- Monitor transaction fees
- Test thoroughly on testnet first
Resources
License
MIT
Last updated on