XRP分类账模型上下文协议服务器

许可证:MIT | XRPL Networks | TypeScript | XRPL.js
一个全面的模型上下文协议(MCP)服务器,为XRP Ledger生态系统提供区块链服务。该服务器使AI代理能够通过统一的接口与XRPL MainNet、TestNet和DevNet进行交互。
📋 目录
🔭 概述
MCP XRPL服务器利用模型上下文协议为AI代理提供XRP分类账服务。它支持广泛的服务,包括:
- 读取分类账状态(余额、交易、账户信息等)
- 与智能合约交互(通过Hooks)
- 转移XRP和已发行代币
- 查询令牌元数据和余额
- 管理去中心化标识符(DID)
- 在XRPL上与NFT合作
- 自动做市商(AMM)运营
- 支付渠道、托管和支票
- Oracle数据操作
- 信任线管理
所有服务都通过MCP工具和资源的一致接口公开,使AI代理能够轻松发现和使用XRPL功能。
✨ 特性
账户管理
- 连接到XRPL网络(主网、测试网、开发网)
- 账户信息检索
- 账户财产管理
- 存款预授权
- 定期密钥管理
XRP和代币运营
- 在账户之间转移XRP
- 获取令牌元数据(名称、符号、小数、供应)
- 检查代币余额
- 在地址之间转移令牌
- 批准代币支出
- 代币回拨
NFT操作
- XRP分类账上的Mint NFT
- 查看NFT元数据
- 验证NFT所有权
- 在地址之间传输NFT
- 获取NFT收藏
去中心化标识符(DID)
- 在XRPL上创建DID
- 解决DID
- 更新DID文档
- 停用DID
AMM操作
- 创建自动化做市商
- 向AMM存款
- 在AMM上出价
- 对AMM参数进行投票
- 删除AMM
- 从AMM追回资产
检查操作
- 创建检查
- 现金支票
- 取消检查
报价/DEX运营
- 创建优惠
- 取消优惠
Oracle运营
- 设置oracle数据
- 删除oracle数据
支付渠道
- 创建支付渠道
- 资金支付渠道
- 付款渠道索赔
托管
- 创建escrows
- 完成escrows
- 取消escrows
信任线
- 设置和管理信任线
票务
- 创建交易处理票
🌐 支持的网络
- 主网:生产XRP分类账网络
- 测试网:开发测试网络
- 国际信息发展组织:实验特征开发网络
🛠️ 先决条件
- Node.js 18.0.0或更高版本
📦 安装
# Clone the repository
git clone https://github.com/yourusername/mcp-xrpl.git
cd mcp-xrpl
# Install dependencies
npm install
# Build the project
npm run build⚙️ 服务器配置
创建一个 .env 项目根目录中的文件,包含以下变量:
# Optional: XRPL wallet seed for automatic connection
# If not provided, you can connect using the connect-to-xrpl tool
DEFAULT_SEED=sEdVoKkRRF8RsNYZ689NDeMyrijiCbg # Example - replace with your own or remove
# Network selection (default is "testnet")
XRPL_NETWORK=testnet # Options: mainnet, testnet, devnet🚀 用法
启动服务器
# Start the server in stdio mode (for CLI tools)
npm start连接到服务器
使用任何兼容MCP的客户端连接到此MCP服务器。对于测试和调试,您可以使用MCP检查器。
📚 api参考
工具
服务器为代理提供以下MCP工具:
账户管理
| 工具名称 | 描述 | 关键参数 |
|---|---|---|
connect-to-xrpl | 使用种子 | 种子、网络连接到XRP分类账 |
get-account-info | 获取帐户信息 | 地址、网络 |
delete-account | 删除XRPL帐户 | 私钥、目标、网络 |
set-account-properties | 设置帐户属性 | 私钥、属性、网络 |
deposit-preauth | 预授权存款 | 私钥、授权、网络 |
set-regular-key | 为帐户设置常规密钥 | privateKey、regularKey、network |
XRP和代币运营
| 工具名称 | 描述 | 关键参数 |
|---|---|---|
transfer-xrp | 将XRP发送到帐户 | privateKey、to、amount、network |
get-token-metadata | 获取令牌元数据 | tokenAddress,网络 |
check-token-balance | 检查令牌余额 | tokenAddress、ownerAddress、网络 |
transfer-token | 转移令牌 | 私钥、令牌地址、到、金额、网络 |
approve-token-spending | 批准令牌支出 | 私钥、令牌地址、限额、网络 |
token-clawback | 追回令牌 | 私钥、令牌地址、发件人、金额、网络 |
NFT操作
| 工具名称 | 描述 | 关键参数 |
|---|---|---|
nft-mint | 创建NFT | 私钥、uri、标志、网络 |
get-nft-info | 获取NFT元数据 | tokenID,网络 |
check-nft-ownership | 验证NFT所有权 | tokenID、ownerAddress、网络 |
transfer-nft | 将NFT | 私钥、tokenID传输到网络 |
get-nft-collection | 在集合中获取NFT | 地址、网络 |
DID操作
| 工具名称 | 描述 | 关键参数 |
|---|---|---|
create-did | 创建DID | 私钥、数据、网络 |
resolve-did | 解析DID | 已完成,网络 |
update-did | 更新DID | 私钥、DID、数据、网络 |
deactivate-did | 停用DID | 私钥,DID,网络 |
AMM操作
| 工具名称 | 描述 | 关键参数 |
|---|---|---|
amm-create | 创建AMM | 私钥、资产、网络 |
amm-deposit | 存入AMM | 私钥、ammID、资产、网络 |
amm-bid | 在AMM上出价 | 私钥、ammID、出价、网络 |
amm-vote | 对AMM参数进行投票 | 私钥、ammID、投票、网络 |
amm-delete | 删除AMM | 私钥、ammID、网络 |
amm-clawback | 从AMM追回资产 | 私钥、ammID、资产、网络 |
资源
服务器通过以下MCP资源URI公开XRPL数据:
分类账资源
| 资源URI模式 | 描述 |
|---|---|
xrpl://{network}/ledger/current | 当前分类账信息 |
xrpl://{network}/ledger/{ledger_index} | 按索引分类账 |
xrpl://{network}/account/{address} | 账户信息 |
xrpl://{network}/account/{address}/balance | 账户XRP余额 |
xrpl://{network}/tx/{tx_hash} | 交易详情 |
代币资源
| 资源URI模式 | 描述 |
|---|---|
xrpl://{network}/token/{currency}/{issuer} | 令牌信息 |
xrpl://{network}/token/{currency}/{issuer}/balanceOf/{address} | 代币余额 |
xrpl://{network}/nft/{tokenID} | NFT信息 |
xrpl://{network}/nft/{tokenID}/owner | NFT所有权信息 |
🔒 安全考虑
- 钱包种子仅用于交易签名,应保持安全
- 考虑为生产使用实施额外的身份验证机制
- 对于高价值服务,考虑添加确认步骤
- 默认操作在TestNet上执行,以确保开发过程中的安全
- 使用环境变量进行敏感配置
📁 项目结构
mcp-xrpl/
├── src/
│ ├── core/ # Core utilities and services
│ │ ├── constants.ts # XRPL network URLs and other constants
│ │ ├── state.ts # State management for connected wallet
│ │ ├── utils.ts # Helper functions
│ │ └── services/ # Service modules
│ ├── server/ # MCP server implementation
│ ├── transactions/ # XRPL transaction implementation
│ │ ├── token/ # Token-related transactions
│ │ ├── nft/ # NFT-related transactions
│ │ ├── did/ # DID-related transactions
│ │ ├── amm/ # AMM-related transactions
│ │ ├── check/ # Check-related transactions
│ │ ├── offer/ # Offer-related transactions
│ │ ├── oracle/ # Oracle-related transactions
│ │ ├── payment/ # Payment-related transactions
│ │ ├── escrow/ # Escrow-related transactions
│ │ └── trust/ # Trust line-related transactions
│ └── index.ts # Entry point
├── build/ # Compiled JavaScript output
├── package.json
├── package-lock.json
└── tsconfig.json🛠️ 发展
添加新工具
要添加新工具,请执行以下操作:
- 在下面的相应目录中创建一个新的TypeScript文件
src/transactions/ - 从导入服务器
server/server.js - 使用定义工具
server.tool() - 将工具导入
src/index.ts
项目依赖项
@modelcontextprotocol/sdk:MCP SDKxrpl:XRP Ledger JavaScript/TypeScript APIdotenv:环境变量管理zod:TypeScript第一个模式声明和验证
📄 许可证
本项目根据MIT许可证条款获得许可。
⚠️ 免责声明
本软件仅用于教育和开发目的。使用它的风险由你自己承担。在使用真正的XRP在主网上使用之前,始终在测试网上进行彻底测试。
