Skip to Content
MCP ServersCommunityXRPL MCP Service

XRPL MCP Service

View original on GitHub 

smithery badge

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 details
  • xrpl_account_balances - XRP and token balances (human-readable)
  • xrpl_account_lines - Trust lines
  • xrpl_account_offers - Active trading offers
  • xrpl_account_nfts - NFT holdings
  • xrpl_account_tx - Transaction history

Decentralized Exchange

  • xrpl_order_book - View order book for currency pairs
  • xrpl_market_price - Get current market prices
  • xrpl_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 lines
  • xrpl_remove_trust_line - Remove existing trust lines
  • xrpl_payment_channels - Payment channel information
  • xrpl_find_path - Payment path finding
  • xrpl_deposit_auth - Check payment authorization

System

  • xrpl_server_info - Node status and information
  • xrpl_submit_tx - Submit signed transactions

Setup

  1. Create a .env file:
XRPL_NODE_URL=https://xrplcluster.com
  1. Install dependencies:
pip install xrpl-py fastapi uvicorn python-dotenv
  1. 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

  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

Last updated on