An MCP server implementation for interacting with the XRP Ledger blockchain
Documentation
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
1. Create a .env file:
XRPL_NODE_URL=https://xrplcluster.com2. Install dependencies:
pip install xrpl-py fastapi uvicorn python-dotenv3. Run the server:
uvicorn main:app --host 0.0.0.0 --port 8000 --reloadAPI 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 implementationsKey Components
1. xrpl_tools.py
- Core XRPL interaction functions
- Async implementation with event loop handling
- Error handling and response formatting
2. register_tools.py
- MCP tool registration
- Endpoint mapping and configuration
Future Enhancements
1. AMM (Liquidity Pool) Operations
- Create pools
- Add/remove liquidity
- Vote on pool parameters
2. Advanced Trading
- Create/cancel offers
- Automated trading functions
- Price alerts
3. NFT Operations
- Mint NFTs
- Create/accept offers
- Collection management
Common Issues
1. Async Event Loop: If you see "asyncio.run() cannot be called from a running event loop", check the async implementation in xrpl_tools.py
2. Rate Limiting: Consider implementing rate limiting for production use
Contributing
1. Fork the repository
2. Create a feature branch
3. Implement your changes
4. 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
Similar MCP
Based on tags & features
Trending MCP
Most active this week