XRP Ledger Testnet MCP Server
Enables AI systems to interact with the XRP Ledger Testnet, supporting XRP payments, token operations, NFTs, escrow, DEX trading, and more.
README
XRP Ledger Testnet MCP Server
✅ MBSS v3.0 Compliant - A comprehensive Model Context Protocol (MCP) server for XRP Ledger (XRPL) testnet integration with AI systems.
🎯 Quick Overview
- Tool Count: 52 tools (25 MBSS mandatory + 27 XRP-specific)
- Network: XRP Ledger Testnet (testnet-only server)
- Architecture: MBSS v3.0 Unified Standard compliant
- Test Coverage: 95%+ enforced with security & chaos testing
- Help System: Interactive tool discovery and guidance
- Performance: Production-ready with proper error handling
⚠️ Testnet Focus - Server is locked to XRP Ledger Testnet for safe development and testing.
🏗️ Server Architecture
graph TB
A[AI Assistant] --> B[MCP Server]
B --> C[XRP Ledger Client]
C --> D[XRP Ledger Node]
B --> E[Help System]
B --> F[Tool Registry]
E --> G[Tool Discovery]
F --> H[Tool Execution]
subgraph "Core Components"
B
E
F
end
subgraph "External Services"
C
D
G
H
end
Component Legend:
- MCP Server: Main server handling MCP protocol
- XRP Ledger Client: XRPL network interaction via WebSocket
- XRP Ledger Node: Blockchain node for data queries
- Help System: Interactive tool discovery and guidance
- Tool Registry: Centralized tool metadata management
✨ Key Features
🔗 Core XRP Ledger Operations
- Chain Information - Network statistics, health, and configuration details
- Balance Queries - XRP balances with formatted and raw values
- Transaction Lookup - Detailed transaction analysis with fee data
- Block Information - Ledger data with transaction counts and timestamps
- Address Validation - Format validation and network verification
💼 Wallet Management
- Wallet Creation - Generate new wallets (development/testing only)
- Wallet Import - Import from seed phrases or keys
- Account Information - Comprehensive wallet details and settings
- Balance Monitoring - Real-time balance tracking
🪙 Payment & DEX Operations
- XRP Payments - Send XRP with path finding and fee estimation
- DEX Trading - Order book management and trade execution
- Fee Estimation - Smart fee calculation for different transaction types
- Testnet Funding - Automated test XRP requests for development
AMM Operations (1 tool)
- xrp_get_amm_info - Query AMM pool details ✅
Token/Currency Operations (4 tools)
- xrp_create_trustline - Establish trust line for token ✅
- xrp_remove_trustline - Remove trust line (set limit to 0) ✅
- xrp_get_trustlines - Get all trustlines for account ✅
- xrp_send_token - Send issued tokens ✅
Escrow Operations (4 tools)
- xrp_create_escrow - Create time/conditional escrow ✅
- xrp_finish_escrow - Complete escrow with fulfillment ✅
- xrp_cancel_escrow - Cancel expired escrow ✅
- xrp_get_escrows - List account escrows ✅
NFT Operations (6 tools)
- xrp_mint_nft - Create NFT (basic) ✅
- xrp_mint_nft_with_ipfs - Create NFT with IPFS storage (Pinata/Web3.Storage) ✅ 🆕
- xrp_burn_nft - Destroy NFT ✅
- xrp_create_nft_offer - Create sell/buy offers ✅
- xrp_accept_nft_offer - Accept NFT offer ✅
- xrp_get_nfts - List account NFTs ✅
AI & Assistant Utilities (2 tools)
- xrp_get_conversation_guidance - Contextual prompts for guided agent flows ✅
- xrp_generate_nft_image - IPFS-ready image generation helper for NFT minting ✅
Network & Ledger Operations (7 tools)
- xrp_get_ledger - Ledger information ✅
- xrp_get_transaction - Transaction details ✅
- xrp_get_server_info - Network status ✅
- xrp_get_ledger_entry - Get specific ledger entry ✅
- xrp_get_account_objects - Get account-owned objects ✅
- xrp_subscribe - Real-time ledger updates ✅
- xrp_decode_transaction - Decode transaction blob ✅
Implementation Status
- ✅ 40 tools fully implemented and tested
- 🚀 All core XRPL features supported
- 📝 Complete with examples and documentation
🚀 Installation
Prerequisites
- Node.js: v18.0.0 or higher
- npm: Latest stable version
- Git: For cloning repository
Quick Start
# Clone the repository
git clone https://github.com/your-repo/xrp-testnet-mcp-server.git
cd xrp-testnet-mcp-server
# Install dependencies
npm install
# Build the server
npm run build
# Run with MCP Inspector for testing
npm run inspect
Configuration
Create a .env file in the root directory:
# Network Configuration
XRP_NETWORK=testnet
RPC_URL=wss://s.altnet.rippletest.net:51233
CHAIN_ID=NA
# Optional: IPFS configuration for NFT operations
PINATA_API_KEY=your_pinata_api_key
PINATA_SECRET_KEY=your_pinata_secret_key
IPFS_SERVICE=pinata
MCP Integration
Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"xrp-testnet": {
"command": "node",
"args": ["/path/to/xrp-testnet-mcp-server/dist/index.js"],
"cwd": "/path/to/xrp-testnet-mcp-server",
"env": {
"XRP_NETWORK": "testnet"
}
}
}
}
Docker Support
# Build Docker image
docker build -t xrp-testnet-mcp-server .
# Run container
docker run -p 3000:3000 xrp-testnet-mcp-server
📖 Usage Examples
Basic Operations
Get Network Information
{
"tool": "xrp_get_chain_info",
"arguments": {}
}
Check Balance
{
"tool": "xrp_get_balance",
"arguments": {
"address": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH"
}
}
Create Wallet (Development Only)
{
"tool": "xrp_create_wallet",
"arguments": {}
}
Advanced Workflows
Complete Transaction Flow
- Check balance:
{
"tool": "xrp_get_balance",
"arguments": {
"address": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH"
}
}
- Send payment:
{
"tool": "xrp_send_transaction",
"arguments": {
"to": "rB7ASwFaJ2ryXUDUN8ViiVWba1ikXcqFxB",
"amount": "10",
"seed": "your_wallet_seed"
}
}
AI Integration Examples
Claude Desktop Integration
{
"tool": "xrp_help",
"arguments": {
"topic": "balance_queries"
}
}
Tool Discovery
{
"tool": "xrp_search_tools",
"arguments": {
"query": "balance"
}
}
🛠️ Complete Tool Reference
MBSS v3.0 Core Tools (25 Mandatory)
1. xrp_get_chain_info
Get comprehensive XRP Ledger network information.
Purpose: Network health, statistics, and configuration details
Parameters: None
Returns:
{
"network": "string",
"ledgerVersion": "number",
"fee": "string",
"reserves": "object",
"validatedLedger": "object",
"serverInfo": "object"
}
2. xrp_get_balance
Get XRP balance for an address.
Purpose: Query account balances with formatted and raw values
Parameters:
address(string, required): XRP Ledger address
Returns:
{
"address": "string",
"balance": "string",
"balanceRaw": "string",
"symbol": "XRP",
"reserves": "string"
}
3. xrp_get_transaction
Get detailed transaction information by hash.
Purpose: Transaction analysis with fee and validation data
Parameters:
hash(string, required): Transaction hash
Returns:
{
"hash": "string",
"validated": "boolean",
"ledgerIndex": "number",
"account": "string",
"destination": "string",
"amount": "string",
"fee": "string",
"meta": "object"
}
XRP-Specific Tools (29 Additional)
NFT Operations (6 tools)
- xrp_mint_nft: Create basic NFT
- xrp_mint_nft_with_ipfs: Create NFT with IPFS storage
- xrp_burn_nft: Destroy NFT
- xrp_create_nft_offer: Create sell/buy offers
- xrp_accept_nft_offer: Accept NFT offer
- xrp_get_nfts: List account NFTs
Token/Currency Operations (4 tools)
- xrp_create_trustline: Establish trust line for token
- xrp_remove_trustline: Remove trust line
- xrp_get_trustlines: Get all trustlines for account
- xrp_send_token: Send issued tokens
Escrow Operations (4 tools)
- xrp_create_escrow: Create time/conditional escrow
- xrp_finish_escrow: Complete escrow with fulfillment
- xrp_cancel_escrow: Cancel expired escrow
- xrp_get_escrows: List account escrows
DEX & AMM Operations (5 tools)
- xrp_place_order: Create buy/sell orders
- xrp_cancel_order: Cancel existing orders
- xrp_get_orderbook: Get order book data
- xrp_get_order_history: Get trading history
- xrp_get_amm_info: Query AMM pool details
Network & Ledger Operations (7 tools)
- xrp_get_ledger: Ledger information
- xrp_get_server_info: Network status
- xrp_get_ledger_entry: Get specific ledger entry
- xrp_get_account_objects: Get account-owned objects
- xrp_subscribe: Real-time ledger updates
- xrp_decode_transaction: Decode transaction blob
- xrp_request_faucet: Request testnet XRP
AI & Assistant Utilities (2 tools)
- xrp_get_conversation_guidance: Contextual prompts for guided flows
- xrp_generate_nft_image: IPFS-ready image generation helper
Account & Wallet Management (1 additional)
- xrp_get_account_info: Comprehensive account details
🌐 Supported Networks
Primary Network
- XRP Ledger Testnet (Chain ID: N/A)
- Purpose: Primary XRP Ledger test network for development and testing
- Block Time: ~3-5 seconds
- Consensus: Ripple Protocol Consensus Algorithm (RPCA)
- Native Token: XRP (Ripple)
Additional Networks
- XRP Ledger Devnet: Alternative testing network with controlled features
Testnet Faucets
- Official XRPL Faucet: https://faucet.altnet.rippletest.net/
- XRPL Dev Portal: https://xrpl.org/xrp-testnet-faucet.html
RPC Endpoints
- Primary: wss://s.altnet.rippletest.net:51233
- Backup: wss://testnet.xrpl-labs.com
- WebSocket: wss://s.altnet.rippletest.net:51233
Environment Variables
XRP_NETWORK- Set totestnetordevnet(defaults to testnet)PINATA_API_KEY- Pinata API key for IPFS uploadsPINATA_SECRET_KEY- Pinata secret key for IPFS uploadsIPFS_SERVICE- IPFS service to use (pinata | web3Storage | nftStorage)
Testnet Resources
- Testnet Explorer: https://testnet.xrpl.org/
- Testnet WebSocket: wss://s.altnet.rippletest.net:51233
- Devnet Explorer: https://devnet.xrpl.org/
- XRPL Dev Tools: https://xrpl.org/dev-tools.html
IPFS Integration for NFTs 🆕
The server now supports decentralized NFT storage via IPFS using Pinata, Web3.Storage, or NFT.Storage.
Setting up IPFS Storage
-
Get a Pinata Account (Recommended)
- Sign up at pinata.cloud
- Get 1GB free storage (50% off with code NFTSTORAGE50)
- Create API keys in dashboard
-
Configure Environment
# .env file PINATA_API_KEY=your_api_key PINATA_SECRET_KEY=your_secret_key IPFS_SERVICE=pinata -
Use the Enhanced NFT Tool
// Tool #37: xrp_mint_nft_with_ipfs { "seed": "your_wallet_seed", "name": "My NFT", "description": "NFT with IPFS storage", "imageUrl": "https://example.com/image.jpg", "attributes": [ { "trait_type": "Rarity", "value": "Legendary" } ], "flags": 8, // 8 = transferable "transferFee": 1000 // 1% royalty }
IPFS Benefits
- ✅ Permanent, decentralized storage
- ✅ No single point of failure
- ✅ Content-addressed (tamper-proof)
- ✅ Globally accessible via any IPFS gateway
- ✅ Metadata and images stored separately
Conversational Usage Examples
Example 1: Quick NFT with Stock Image
User: "Create an NFT called 'Majestic Eagle' with a bald eagle image"
Assistant: "I'll create that NFT for you. Let me use a stock image of a bald eagle:"
// Uses Unsplash or similar stock photo
await xrp_mint_nft_with_ipfs({
seed: "your_wallet_seed",
name: "Majestic Eagle",
description: "A powerful bald eagle soaring through the sky",
imageUrl: "https://images.unsplash.com/photo-[eagle-id]",
attributes: [
{ trait_type: "Species", value: "Bald Eagle" },
{ trait_type: "Rarity", value: "Legendary" }
]
})
Example 2: NFT with Your Own Image
User: "I have an image at https://mysite.com/art.jpg - make it an NFT with cool metadata"
Assistant: "I'll mint that as an NFT with enhanced metadata:"
await xrp_mint_nft_with_ipfs({
seed: "your_wallet_seed",
name: "Custom Artwork",
imageUrl: "https://mysite.com/art.jpg",
// Auto-generates rich metadata
})
Example 3: Detailed NFT Request
User: "Create an NFT of a cyberpunk dragon with these traits: Element=Fire, Rarity=Mythic, Power=9000"
Assistant: "I'll create that NFT with all specified traits:"
- Finds appropriate dragon image from stock photos
- Uploads to IPFS via Pinata
- Creates metadata with all traits
- Mints on XRP Ledger
- Returns IPFS links and transaction hash
Image Sources
-
Stock Photo APIs (current):
- Unsplash: Free, high-quality photos
- Pexels: Free stock photos
- Pixabay: Free images and illustrations
-
User-Provided URLs:
- Any public image URL
- Cloud storage links (Dropbox, Google Drive public links)
- IPFS URLs (already decentralized)
-
Future Enhancements:
- AI image generation (DALL-E, Stable Diffusion)
- Direct file uploads
- Image search integration
Tool Documentation
xrp_get_account_info
Query account details and balances on testnet.
Parameters:
address(string): XRP Ledger address
Example:
{
"address": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH"
}
xrp_send_payment
Send XRP or tokens on testnet.
Parameters:
destination(string): Recipient addressamount(string): Amount to sendcurrency(string, optional): Currency code (default: XRP)
Example:
{
"destination": "rN7n7otQDd6FczFgLdSqtcsAUxDkw6fzRH",
"amount": "10",
"currency": "XRP"
}
xrp_place_order
Create buy/sell orders on the testnet DEX.
Parameters:
side(string): "buy" or "sell"amount(string): Order amountprice(string): Order pricepair(string): Trading pair
Example:
{
"side": "buy",
"amount": "100",
"price": "0.5",
"pair": "USD/XRP"
}
For complete tool documentation with parameters and examples, use the MCP Inspector or refer to the source code.
XRP Ledger Testnet Advantages
- Native DEX Testing: Test the world's oldest DEX operating since 2012
- Native AMM: Test protocol-level automated market makers
- Built-in Escrow: Test time-based and conditional escrow without smart contracts
- Payment Channels: Test micropayment infrastructure for high-frequency transactions
- Fast Settlement: 3-5 seconds for rapid development iteration
- Low Fees: Fraction of a cent per transaction (even lower on testnet)
- Energy Efficient: Minimal environmental impact for extensive testing
- Multi-signing: Test native multi-signature support
Testnet Native Features
Unlike Ethereum-based chains that require smart contracts, XRPL testnet provides:
- Built-in DEX with auto-bridging for comprehensive testing
- Native AMM functionality without external protocols
- Escrow system without contract deployment
- Payment channels for micropayment testing
- Multi-signature transactions for security testing
- Token issuance and management with native commands
Testnet Security & Development
⚠️ TESTNET WARNINGS:
- No Real Value: Testnet tokens have no monetary value
- Network Resets: Testnet may be reset, wiping all data
- Experimental Features: Latest features may be unstable
- Rate Limits: Testnet servers may have stricter rate limits
Development Best Practices
- Test All Features: Thoroughly test DEX, AMM, and escrow functionality
- Account Management: Test both funded and unfunded account scenarios
- Transaction Fees: Monitor fee escalation during network stress
- Sequence Numbers: Test transaction ordering and ticket usage
- Trust Lines: Test token issuance and trust relationships
Development
# Development mode
npm run dev
# Build TypeScript
npm run build
# Run tests
npm test
Technical Details
- Language: TypeScript
- Framework: xrpl.js v4.4.0
- Architecture: MCP Server Protocol
- Networks: Testnet/Devnet support
- Performance: 1,500 TPS, 3-5 second settlement
- Consensus: Unique consensus algorithm (not PoW or PoS)
- Environment: Testnet/Development only
🔒 Security & Best Practices
⚠️ Critical Security Notes
- Testnet Only: This server is configured for XRP Ledger testnet only
- No Private Key Storage: Server never stores private keys or seeds
- Development Tools: Wallet creation tools are for development/testing only
- Network Verification: Always verify network before transactions
🛡️ Security Features
- Input Validation: All inputs validated with Zod schemas
- Error Sanitization: Error messages don't expose sensitive data
- Rate Limiting: Built-in rate limiting protection
- Multi-network Isolation: Testnet/devnet/mainnet environment separation
- Security Testing: Comprehensive injection and XSS protection
- Chaos Testing: Fault tolerance and failure recovery testing
- Private Key Protection: No private key storage or logging
📋 Best Practices
- Test First: Always test transactions on testnet
- Verify Addresses: Double-check recipient addresses
- Fee Management: Monitor transaction fees and reserves
- Backup Recovery: Keep wallet seeds secure
- Network Selection: Use appropriate network for your use case
🚨 Security Warnings
- Private Key Exposure: Never share or log private keys or seeds
- Faucet Limits: Testnet faucets have rate limits
- Transaction Confirmation: Wait for ledger validation before considering transactions final
- Trust Line Risks: Verify issuer addresses before creating trust lines
🔧 Troubleshooting
Common Issues
Connection Problems
Problem: "Failed to connect to XRP Ledger" Solution:
- Verify WebSocket URL in environment variables
- Check network connectivity
- Try alternative XRP Ledger nodes
- Ensure testnet node is accessible
Tool Not Found
Problem: "Unknown tool: xrp_tool_name" Solution:
- Verify tool name spelling
- Check MBSS naming convention
- Use
xrp_helpfor tool discovery - Update MCP server configuration
Balance Returns Zero
Problem: "Balance shows 0 for valid address" Solution:
- Verify address format and network
- Check if address is activated (20 XRP reserve)
- Use testnet faucet if needed
- Wait for ledger synchronization
Account Not Found
Problem: "Account not found error" Solution:
- Account may not be activated
- Fund account with at least 20 XRP
- Use
xrp_request_faucetfor testnet XRP - Verify address format
Error Messages
Invalid address format: Check address format and networkAccount not activated: Fund account with minimum reserve (20 XRP)Insufficient XRP balance: Add funds to wallet or use faucetTrust line not found: Create trust line before token operationsFee exceeds available balance: Ensure sufficient XRP for transaction fees
Getting Help
- Use
xrp_helpfor interactive assistance - Use
xrp_search_toolsto find relevant tools - Check this README for examples
- Review error logs in server output
🏗️ Technical Architecture
System Components
- Language: TypeScript with strict type checking
- Framework: Model Context Protocol (MCP) SDK
- Validation: Zod schema validation for all inputs
- Testing: Jest with 95%+ coverage, security & chaos tests
- Build System: TypeScript compiler with ES2022 target
- Architecture: MBSS v3.0 compliant modular design
Dependencies
{
"@modelcontextprotocol/sdk": "^1.0.0",
"zod": "^3.22.0",
"xrpl": "^4.4.0",
"axios": "^1.7.0",
"uuid": "^10.0.0"
}
File Structure
src/
├── index.ts # Main server entry point
├── client.ts # XRP Ledger client abstraction
├── constants.ts # Configuration constants
├── logger.ts # MBSS-compliant logging
├── types.ts # TypeScript type definitions
├── tools/ # Organized tool modules
│ ├── core/ # MBSS v3.0 mandatory tools (25)
│ ├── wallet/ # Wallet management tools
│ ├── tokens/ # Token operations
│ ├── nft/ # NFT operations
│ ├── escrow/ # Escrow operations
│ ├── dex/ # DEX trading tools
│ ├── amm/ # AMM operations
│ ├── advanced/ # Advanced features
│ ├── special/ # AI utilities
│ └── help/ # Help system tools
└── utils/ # Shared utilities
Performance Characteristics
- Response Time: <5 seconds for standard operations
- Concurrent Requests: Up to 10 simultaneous requests
- Memory Usage: ~50MB base + ~10MB per active connection
- Network: Optimized WebSocket connections with reconnection
- Test Coverage: 95%+ enforced with comprehensive testing
- Security: Input validation, injection protection, chaos testing
- Ledger Settlement: 3-5 seconds for transaction validation
- Consensus: Unique RPCA algorithm (not PoW or PoS)
License
MIT
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。