许可证:MIT | XRPL网络 | TypeScript | xrpl.js
一个全面的模型上下文协议(MCP)服务器,为XRP账本生态系统提供区块链服务。此服务器使AI代理能够通过统一接口与XRPL主网、测试网和开发网进行交互。
MCP XRPL服务器利用模型上下文协议为AI代理提供XRP账本服务。它支持广泛的服务,包括:
所有服务都通过一致的MCP工具和资源界面暴露出来,使得AI代理可以轻松发现并使用XRPL功能。
# 克隆仓库
git clone https://github.com/yourusername/mcp-xrpl.git
cd mcp-xrpl
# 安装依赖
npm install
# 构建项目
npm run build
在项目根目录下创建一个.env文件,并添加以下变量:
# 可选:用于自动连接的XRPL钱包种子
# 如果未提供,您可以使用connect-to-xrpl工具进行连接
DEFAULT_SEED=sEdVoKkRRF8RsNYZ689NDeMyrijiCbg # 示例 - 替换为您自己的或删除
# 网络选择(默认是"testnet")
XRPL_NETWORK=testnet # 选项:mainnet, testnet, devnet
# 以stdio模式启动服务器(适用于CLI工具)
npm start
使用任何兼容MCP的客户端连接到此MCP服务器。对于测试和调试,您可以使用MCP Inspector。
服务器为代理提供了以下MCP工具:
| 工具名称 | 描述 | 关键参数 |
|---|---|---|
connect-to-xrpl | 使用种子连接到XRP账本 | 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 |
| 工具名称 | 描述 | 关键参数 |
|---|---|---|
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-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 |
| 工具名称 | 描述 | 关键参数 |
|---|---|---|
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-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所有权信息 |
mcp-xrpl/
├── src/
│ ├── core/ # 核心实用程序和服务
│ │ ├── constants.ts # XRPL网络URL和其他常量
│ │ ├── state.ts # 连接的钱包状态管理
│ │ ├── utils.ts # 辅助函数
│ │ └── services/ # 服务模块
│ ├── server/ # MCP服务器实现
│ ├── transactions/ # XRPL事务实现
│ │ ├── token/ # 与代币相关的事务
│ │ ├── nft/ # 与NFT相关的事务
│ │ ├── did/ # 与DID相关的事务
│ │ ├── amm/ # 与AMM相关的事务
│ │ ├── check/ # 与支票相关的事务
│ │ ├── offer/ # 与报价相关的事务
│ │ ├── oracle/ # 与预言机相关的事务
│ │ ├── payment/ # 与支付相关的事务
│ │ ├── escrow/ # 与托管相关的事务
│ │ └── trust/ # 与信任线相关的事务
│ └── index.ts # 入口点
├── build/ # 编译后的JavaScript输出
├── package.json
├── package-lock.json
└── tsconfig.json
要添加新工具:
src/transactions/下的适当目录中创建一个新的TypeScript文件server/server.js导入服务器server.tool()定义工具src/index.ts中导入工具@modelcontextprotocol/sdk: MCP SDKxrpl: XRP账本JavaScript/TypeScript APIdotenv: 环境变量管理zod: TypeScript优先的模式声明和验证本项目根据MIT许可证的条款发布。
本软件仅供教育和开发目的使用。自行承担风险。在主网上使用真实XRP之前,请务必在测试网上进行全面测试。