mcpField
X
xrpl-identity-mcp

xrpl-identity-mcp

ローカル
github.com/jarod-vyentセキュリティ116 週間前に更新

xrpl-identity-mcp について

xrpl-identity-mcpは、DID、クレデンシャル、マルチシグの署名者リストを扱うXRPL向けMCPサーバーです。未署名トランザクションを準備し、送信前に署名済みトランザクションの意図を検証します。鍵を預かったり署名したりしません。

主な機能

  1. 01DIDの解決とドキュメント取得
  2. 02DID・クレデンシャル取引の準備
  3. 03クレデンシャルの一覧表示と検証
  4. 04アカウントのID・署名者状態の要約
  5. 05マルチシグ署名者リスト変更の準備
  6. 06署名済み取引の検証と送信

活用シーン

  1. 01XRPL DIDとそのドキュメントの確認
  2. 02外部署名を使ったクレデンシャルの作成・承認
  3. 03アカウントのIDと署名者設定の確認
  4. 04送信前の署名済み取引の照合

MCP 対応

DID解決、クレデンシャル操作、取引の準備・検証・送信などのXRPL ID関連ツールをMCPクライアントに提供します。鍵の保管や署名は行いません。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの 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)、マルチシグの署名者リスト、安全なトランザクションの準備/検証/送信ワークフローに対応しています。署名されていないトランザクションを準備し、レジャーの状態を読み取り、署名済みのデータを意図と照合して検証できます。また、鍵を預かることなく、事前署名済みのデータを送信できます。

SciPHR を開発したチームのメンバーである Jarod Vyent が開発しました。

セキュリティモデル

次の不変条件は、基本的な動作として組み込まれています。

  1. 鍵を預かりません。 サーバーにはシード、秘密鍵、ニーモニック、ウォレットのインポート機能、署名機能がありません。署名はユーザーのウォレットまたはエージェントで行います。
  2. ネットワークを明示します。 XRPL_NETWORK は mainnet、testnet、devnet のいずれかです。デフォルトは testnet です。すべてのツールの結果に network が含まれます。
  3. メインネットへの送信はオプトインです。 メインネットでの tx_submit_signed は、ALLOW_MAINNET_SUBMIT=true が設定されていない限りブロックされます。
  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、devnettestnetXRPL ネットワークを選択します。
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_resolveXLS-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 が必要です。はい

エージェントのフロー例

DID を解決してドキュメントを読み取る:

  1. address にクラシック XRPL アドレスまたは did:xrpl:<address> を設定して、did_resolve を呼び出します。
  2. decoded.URI、decoded.Data、decoded.DIDDocument を確認します。
  3. URI が ipfs:// または https:// の場合は、document と documentSource を確認します。インラインで表示されるのはテキストと JSON ドキュメントのみです。バイナリコンテンツ(画像など)の場合は、本文が省略された理由を示す documentSkipped とともに、documentSource、documentContentType、documentByteLength が返されます。

テストネットでクレデンシャルを発行して受け入れる:

  1. XRPL_NETWORK=testnet を設定します。
  2. 発行者、サブジェクト、クレデンシャルタイプ、有効期限(任意)、URI(任意)を指定して、credential_prepare_create を呼び出します。
  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

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。