mcpField
X
xrpl-identity-mcp

xrpl-identity-mcp

本地服务
github.com/jarod-vyent安全116 周前更新

关于 xrpl-identity-mcp

xrpl-identity-mcp 是面向 XRPL 身份操作的 MCP 服务,适用于处理 DID、凭证和多签签名者列表的用户与 Agent。它可准备未签名交易并在提交前核验签名意图,不接管密钥。

主要功能

  1. 01解析 DID 并获取文档
  2. 02准备 DID 和凭证交易
  3. 03列出并验证凭证
  4. 04汇总账户身份与签名者状态
  5. 05准备多签签名者列表变更
  6. 06验证并提交已签名交易

适用场景

  1. 01查看 XRPL DID 及其文档
  2. 02通过外部签名创建或接受凭证
  3. 03检查账户身份与签名者配置
  4. 04提交前核对已签名交易

MCP 相关

向 MCP 客户端提供 XRPL 身份与交易工具,包括 DID 解析、凭证操作、交易准备、验证和提交。服务不持有密钥,也不执行签名。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"jarod-vyent-xrpl-identity": {
"command": "npx",
"args": [
"-y",
"xrpl-identity-mcp"
],
"env": {
"XRPL_NETWORK": "<XRPL_NETWORK>",
"XRPL_ENDPOINT": "<XRPL_ENDPOINT>",
"ALLOW_MAINNET_SUBMIT": "<ALLOW_MAINNET_SUBMIT>"
}
}
}
}
启动命令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+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmxrpl-identity-mcp0.1.1

工具

12

收录的工具列表 · 更新于 2 周前

参数类型必填说明
addressstring是传统 XRPL 地址、did:xrpl:<address> 或 did:xrpl:1:<address>。

详细介绍

xrpl-identity-mcp

CI npm License: MIT

xrpl-identity-mcp 是首个专注于身份的 XRP Ledger MCP 服务,支持 DID(XLS-40)、凭证(XLS-70)、多重签名签署者列表,以及安全的交易准备/验证/提交工作流。它会准备未签名的交易、读取账本状态、根据预期操作验证已签名数据,并可提交预签名数据,全程不会托管密钥。

由 Jarod Vyent 开发,他来自 SciPHR 背后的团队。

安全模型

以下约束是核心行为:

  1. 不托管密钥。 服务不包含种子、私钥、助记词、钱包导入或签名途径。签名由用户的钱包或 Agent 完成。
  2. 明确指定网络。 XRPL_NETWORK 可设为 mainnet、testnet 或 devnet。默认值为 testnet。每个工具结果都包含 network。
  3. 主网提交需显式启用。 除非设置了 ALLOW_MAINNET_SUBMIT=true,否则会阻止在主网上调用 tx_submit_signed。
  4. 先准备,再验证,最后提交。 写入工作流会返回未签名的 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_NETWORKmainnet、testnet、devnettestnet选择 XRPL 网络。
XRPL_ENDPOINTWebSocket URL网络默认值覆盖 rippled WebSocket 端点。
ALLOW_MAINNET_SUBMITtrue 或未设置未设置在主网上调用 tx_submit_signed 时必须设置。

默认端点:

网络端点
mainnetwss://xrplcluster.com
testnetwss://s.altnet.rippletest.net:51233
devnetwss://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 并读取其文档:

  1. 调用 did_resolve,将 address 设为经典 XRPL 地址或 did:xrpl:<address>。
  2. 检查 decoded.URI、decoded.Data 和 decoded.DIDDocument。
  3. 如果 URI 是 ipfs:// 或 https://,请检查 document 和 documentSource。只有文本和 JSON 文档会内联;对于二进制内容(例如图像),会通过 documentSource、documentContentType 和 documentByteLength 报告,并通过 documentSkipped 说明为何省略正文。

在测试网上签发并接受凭证:

  1. 设置 XRPL_NETWORK=testnet。
  2. 调用 credential_prepare_create,并提供签发方、主体、凭证类型、可选的过期时间和可选的 URI。
  3. 使用签发方账户在外部签署返回的 unsignedTx。
  4. 使用签名后的 blob 和预期意图调用 tx_decode_verify。
  5. 调用 tx_submit_signed。
  6. 为主体调用 credential_prepare_accept,在外部签名,使用 tx_decode_verify 验证,然后提交。
  7. 调用 credential_verify,确认 accepted: true 且 expired: false。

提交前验证签名后的 blob:

  1. 使用 signedBlob 和部分预期交易 JSON expectedIntent 调用 tx_decode_verify。
  2. 检查 matches 和任何 mismatches。
  3. 只有在解码后的交易与用户意图相符时才提交。

开发

npm install
npm run typecheck
npm run build
SKIP_INTEGRATION=1 npm test

集成测试面向测试网,设置 SKIP_INTEGRATION=1 时会跳过。要运行账户摘要集成测试,请将 XRPL_INTEGRATION_ACCOUNT 设为已注资的测试网账户地址。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。