关于 xrpl-identity-mcp
xrpl-identity-mcp 是面向 XRPL 身份操作的 MCP 服务,适用于处理 DID、凭证和多签签名者列表的用户与 Agent。它可准备未签名交易并在提交前核验签名意图,不接管密钥。
主要功能
- 01解析 DID 并获取文档
- 02准备 DID 和凭证交易
- 03列出并验证凭证
- 04汇总账户身份与签名者状态
- 05准备多签签名者列表变更
- 06验证并提交已签名交易
适用场景
- 01查看 XRPL DID 及其文档
- 02通过外部签名创建或接受凭证
- 03检查账户身份与签名者配置
- 04提交前核对已签名交易
MCP 相关
向 MCP 客户端提供 XRPL 身份与交易工具,包括 DID 解析、凭证操作、交易准备、验证和提交。服务不持有密钥,也不执行签名。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
mcp.json · 通用配置
启动命令
npx -y xrpl-identity-mcp需要配置的环境变量
XRPL_NETWORKXRPL network to target: mainnet, testnet, or devnet (default: testnet)XRPL_ENDPOINTCustom XRPL websocket endpoint override (default: public endpoint for the selected network)ALLOW_MAINNET_SUBMITMust be set to 'true' to allow tx_submit_signed on mainnet (default: blocked)本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
12收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| address | string | 是 | 传统 XRPL 地址、did:xrpl:<address> 或 did:xrpl:1:<address>。 |
详细介绍
xrpl-identity-mcp
xrpl-identity-mcp 是首个专注于身份的 XRP Ledger MCP 服务,支持 DID(XLS-40)、凭证(XLS-70)、多重签名签署者列表,以及安全的交易准备/验证/提交工作流。它会准备未签名的交易、读取账本状态、根据预期操作验证已签名数据,并可提交预签名数据,全程不会托管密钥。
由 Jarod Vyent 开发,他来自 SciPHR 背后的团队。
安全模型
以下约束是核心行为:
- 不托管密钥。 服务不包含种子、私钥、助记词、钱包导入或签名途径。签名由用户的钱包或 Agent 完成。
- 明确指定网络。
XRPL_NETWORK可设为mainnet、testnet或devnet。默认值为testnet。每个工具结果都包含network。 - 主网提交需显式启用。 除非设置了
ALLOW_MAINNET_SUBMIT=true,否则会阻止在主网上调用tx_submit_signed。 - 先准备,再验证,最后提交。 写入工作流会返回未签名的 JSON,并说明应在外部签名、调用
tx_decode_verify,然后才调用tx_submit_signed。
快速开始
Claude MCP:
claude mcp add xrpl-identity -- npx -y xrpl-identity-mcp
通用 MCP 客户端配置:
{
"mcpServers": {
"xrpl-identity": {
"command": "npx",
"args": ["-y", "xrpl-identity-mcp"],
"env": {
"XRPL_NETWORK": "testnet"
}
}
}
}
环境变量:
| 变量 | 值 | 默认值 | 用途 |
|---|---|---|---|
XRPL_NETWORK | mainnet、testnet、devnet | testnet | 选择 XRPL 网络。 |
XRPL_ENDPOINT | WebSocket URL | 网络默认值 | 覆盖 rippled WebSocket 端点。 |
ALLOW_MAINNET_SUBMIT | true 或未设置 | 未设置 | 在主网上调用 tx_submit_signed 时必须设置。 |
默认端点:
| 网络 | 端点 |
|---|---|
mainnet | wss://xrplcluster.com |
testnet | wss://s.altnet.rippletest.net:51233 |
devnet | wss://s.devnet.rippletest.net:51233 |
工具
| 工具 | 功能 | 是否写入网络? |
|---|---|---|
did_resolve | 解析 XLS-40 DID 对象,并在存在 ipfs:// 或 https:// DID 文档时获取该文档。 | 否 |
did_prepare_set | 准备未签名的 DIDSet 交易。 | 否 |
did_prepare_delete | 准备未签名的 DIDDelete 交易。 | 否 |
credential_prepare_create | 准备未签名的 CredentialCreate 交易。 | 否 |
credential_prepare_accept | 准备未签名的 CredentialAccept 交易。 | 否 |
credential_prepare_delete | 准备未签名的 CredentialDelete 交易。 | 否 |
credential_verify | 读取凭证对象,并报告其是否存在、是否已接受以及是否过期。 | 否 |
credential_list | 列出账户可见的最多 400 个凭证对象,并支持按签发方/主题筛选。 | 否 |
account_identity_summary | 汇总账户的身份验证状态、签署者列表、DID 状态和凭证数量。 | 否 |
signer_list_prepare_set | 为多重签名的创建、替换或删除准备未签名的 SignerListSet 交易。 | 否 |
tx_decode_verify | 解码已签名数据、计算哈希,并与预期操作进行比较。 | 否 |
tx_submit_signed | 提交预签名数据并轮询其验证状态。主网需要设置 ALLOW_MAINNET_SUBMIT=true。 | 是 |
示例 Agent 工作流
解析 DID 并读取其文档:
- 调用
did_resolve,将address设为经典 XRPL 地址或did:xrpl:<address>。 - 检查
decoded.URI、decoded.Data和decoded.DIDDocument。 - 如果 URI 是
ipfs://或https://,请检查document和documentSource。只有文本和 JSON 文档会内联;对于二进制内容(例如图像),会通过documentSource、documentContentType和documentByteLength报告,并通过documentSkipped说明为何省略正文。
在测试网上签发并接受凭证:
- 设置
XRPL_NETWORK=testnet。 - 调用
credential_prepare_create,并提供签发方、主体、凭证类型、可选的过期时间和可选的 URI。 - 使用签发方账户在外部签署返回的
unsignedTx。 - 使用签名后的 blob 和预期意图调用
tx_decode_verify。 - 调用
tx_submit_signed。 - 为主体调用
credential_prepare_accept,在外部签名,使用tx_decode_verify验证,然后提交。 - 调用
credential_verify,确认accepted: true且expired: false。
提交前验证签名后的 blob:
- 使用
signedBlob和部分预期交易 JSONexpectedIntent调用tx_decode_verify。 - 检查
matches和任何mismatches。 - 只有在解码后的交易与用户意图相符时才提交。
开发
npm install
npm run typecheck
npm run build
SKIP_INTEGRATION=1 npm test
集成测试面向测试网,设置 SKIP_INTEGRATION=1 时会跳过。要运行账户摘要集成测试,请将 XRPL_INTEGRATION_ACCOUNT 设为已注资的测试网账户地址。
许可证
MIT
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。