Skip to main content
Glama
tedlikeskix

xrpl-mcp-service

by tedlikeskix

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 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

Related MCP server: @lex-tools/codebase-context-dumper

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

-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/tedlikeskix/xrpl-mcp-service'

If you have feedback or need assistance with the MCP directory API, please join our Discord server