MCP-XRPL (XRP账本集成服务器)
提供与XRP账本集成的CP服务器。该服务器允许AI助手访问XRP账本上的账户信息、交易历史和网络数据,具备查询账本对象、提交交易和监控网络的功能。
服务介绍
XRP Ledger 模型上下文协议服务器
许可证: MIT | XRPL 网络 | TypeScript | xrpl.js
一个全面的模型上下文协议 (MCP) 服务器,为 XRP Ledger 生态系统提供区块链服务。该服务器使 AI 代理能够通过统一接口与 XRPL 主网、测试网和开发网进行交互。
📋 目录
🔭 概述
MCP XRPL 服务器利用模型上下文协议为 AI 代理提供 XRP Ledger 服务。它支持广泛的服务,包括:
- 读取账本状态(余额、交易、账户信息等)
- 与智能合约交互(通过 Hooks)
- 转移 XRP 和发行的代币
- 查询代币元数据和余额
- 管理去中心化标识符 (DIDs)
- 在 XRPL 上处理 NFT
- 自动做市商 (AMM) 操作
- 支付通道、托管和支票
- 预言机数据操作
- 信任线管理
所有服务都通过 MCP 工具和资源的一致接口暴露,使 AI 代理能够轻松发现和使用 XRPL 功能。
✨ 功能
账户管理
- 连接到 XRPL 网络(主网、测试网、开发网)
- 账户信息检索
- 账户属性管理
- 存款预授权
- 常规密钥管理
XRP 和代币操作
- 在账户之间转移 XRP
- 获取代币元数据(名称、符号、小数点、供应量)
- 检查代币余额
- 在地址之间转移代币
- 批准代币支出
- 代币回收
NFT 操作
- 在 XRP Ledger 上铸造 NFT
- 查看 NFT 元数据
- 验证 NFT 所有权
- 在地址之间转移 NFT
- 获取 NFT 集合
去中心化标识符 (DID)
- 在 XRPL 上创建 DIDs
- 解析 DIDs
- 更新 DID 文档
- 停用 DIDs
AMM 操作
- 创建自动做市商
- 向 AMMs 存款
- 在 AMMs 上出价
- 对 AMM 参数投票
- 删除 AMMs
- 从 AMMs 回收资产
支票操作
- 创建支票
- 兑现支票
- 取消支票
报价/DEX 操作
- 创建报价
- 取消报价
预言机操作
- 设置预言机数据
- 删除预言机数据
支付通道
- 创建支付通道
- 为支付通道注资
- 从支付通道中认领
托管
- 创建托管
- 完成托管
- 取消托管
信任线
- 设置和管理信任线
票务
- 创建交易处理工单
## 🌐 支持的网络
- **MainNet**: 生产环境 XRP Ledger 网络
- **TestNet**: 用于开发的测试网络
- **DevNet**: 用于实验性功能的开发网络
## 🛠️ 前提条件
- Node.js 18.0.0 或更高版本
## 📦 安装
#0
## ⚙️ 服务器配置
在项目根目录下创建一个 `.env` 文件,并包含以下变量:
#1
## 🚀 使用方法
### 启动服务器
#2
### 连接到服务器
使用任何与 MCP 兼容的客户端连接到此 MCP 服务器。为了测试和调试,您可以使用 MCP Inspector。
## 📚 API 参考
### 工具
服务器为代理提供了以下 MCP 工具:
#### 账户管理
| 工具名称 | 描述 | 关键参数 |
| ------------------------ | ---------------------------------- | -------------------------------- |
| `connect-to-xrpl` | 使用密钥连接到 XRP Ledger | seed, network |
| `get-account-info` | 获取账户信息 | address, network |
| `delete-account` | 删除 XRPL 账户 | privateKey, destination, network |
| `set-account-properties` | 设置账户属性 | privateKey, properties, network |
| `deposit-preauth` | 预授权存款 | privateKey, authorize, network |
| `set-regular-key` | 为账户设置常规密钥 | privateKey, regularKey, network |
#### XRP 和代币操作
| 工具名称 | 描述 | 关键参数 |
| ------------------------ | ---------------------- | ----------------------------------------------- |
| `transfer-xrp` | 发送 XRP 到账户 | privateKey, to, amount, network |
| `get-token-metadata` | 获取代币元数据 | tokenAddress, network |
| `check-token-balance` | 检查代币余额 | tokenAddress, ownerAddress, network |
| `transfer-token` | 转移代币 | privateKey, tokenAddress, to, amount, network |
| `approve-token-spending` | 批准代币支出 | privateKey, tokenAddress, limit, network |
| `token-clawback` | 回收代币 | privateKey, tokenAddress, from, amount, network |
#### NFT 操作
(原文中没有提供 NFT 操作的具体内容,因此此处保持空白)
| 工具名称 | 描述 | 关键参数 |
| --------------------- | ------------------------ | -------------------------------- |
| `nft-mint` | 铸造 NFT | privateKey, uri, flags, network |
| `get-nft-info` | 获取 NFT 元数据 | tokenID, network |
| `check-nft-ownership` | 验证 NFT 所有权 | tokenID, ownerAddress, network |
| `transfer-nft` | 转移 NFT | privateKey, tokenID, to, network |
| `get-nft-collection` | 获取集合中的 NFTs | address, network |
#### DID 操作
| 工具名称 | 描述 | 关键参数 |
| ---------------- | ---------------- | ------------------------------ |
| `create-did` | 创建 DID | privateKey, data, network |
| `resolve-did` | 解析 DID | did, network |
| `update-did` | 更新 DID | privateKey, did, data, network |
| `deactivate-did` | 停用 DID | privateKey, did, network |
#### AMM 操作
| 工具名称 | 描述 | 关键参数 |
| -------------- | ------------------------ | ---------------------------------- |
| `amm-create` | 创建 AMM | privateKey, assets, network |
| `amm-deposit` | 存入 AMM | privateKey, ammID, assets, network |
| `amm-bid` | 在 AMM 上出价 | privateKey, ammID, bid, network |
| `amm-vote` | 对 AMM 参数投票 | privateKey, ammID, vote, network |
| `amm-delete` | 删除 AMM | privateKey, ammID, network |
| `amm-clawback` | 从 AMM 回收资产 | privateKey, ammID, assets, network |
### 资源
服务器通过以下 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 上执行,以确保开发过程中的安全性
- 使用环境变量来管理敏感配置
## 📁 项目结构
#3
## 🛠️ 开发
### 添加新工具
要添加新工具:
1. 在 `src/transactions/` 下的适当目录中创建一个新的 TypeScript 文件
2. 从 `server/server.js` 导入服务器
3. 使用 `server.tool()` 定义工具
4. 在 `src/index.ts` 中导入该工具
### 项目依赖
- [`@modelcontextprotocol/sdk`](https://www.npmjs.com/package/@modelcontextprotocol/sdk): MCP SDK
- [`xrpl`](https://www.npmjs.com/package/xrpl): XRP 分类账 JavaScript/TypeScript API
- [`dotenv`](https://www.npmjs.com/package/dotenv): 环境变量管理
- [`zod`](https://www.npmjs.com/package/zod): 优先使用 TypeScript 的模式声明和验证
## 📄 许可证
本项目根据 MIT 许可证的条款进行许可。
## ⚠️ 免责声明
本软件仅供教育和开发用途。使用风险自负。在使用真实 XRP 进行主网操作之前,请务必先在测试网上彻底测试。