XRP Ledger Model Context Protocol Server について
XRP Ledger Model Context Protocol Serverは、AIエージェント向けにXRP Ledgerの参照・操作を行う統一インターフェースを提供します。MainNet、TestNet、DevNetに対応し、アカウント、トークン、NFT、DIDなどをMCPツールとリソースで扱えます。
主な機能
- 01MainNet、TestNet、DevNetへの対応
- 02アカウント、台帳、トランザクションの照会
- 03XRPと発行トークンの送金
- 04NFTとDIDの管理
- 05AMM、エスクロー、決済チャネルの操作
活用シーン
- 01アカウント残高やトランザクション詳細の確認
- 02TestNetでのトークンやNFT操作のテスト
- 03XRPL上のDIDやトラストラインの管理
MCP 対応
MCPツールとリソースを通じて、アカウント、トランザクション、トークン、NFTなどのXRPL操作とデータ照会をクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
XRP Ledger Model Context Protocol サーバー
ライセンス:MIT | XRPL ネットワーク | TypeScript | xrpl.js
XRP Ledger エコシステム向けにブロックチェーンサービスを提供する、包括的な Model Context Protocol(MCP)サーバーです。このサーバーを使うと、AI エージェントは統一されたインターフェースを通じて XRPL MainNet、TestNet、DevNet を利用できます。
📋 目次
🔭 概要
MCP XRPL サーバーは Model Context Protocol を活用し、AI エージェントに XRP Ledger サービスを提供します。次のような幅広いサービスに対応しています。
- 台帳の状態の読み取り(残高、トランザクション、アカウント情報など)
- スマートコントラクトとの連携(Hooks 経由)
- XRP と発行済みトークンの送金
- トークンのメタデータと残高の照会
- 分散型識別子(DID)の管理
- XRPL 上の NFT の操作
- 自動マーケットメーカー(AMM)操作
- ペイメントチャネル、エスクロー、チェック
- オラクルデータの操作
- トラストラインの管理
すべてのサービスは、統一された MCP ツールとリソースのインターフェースを通じて公開されるため、AI エージェントは XRPL の機能を簡単に見つけて利用できます。
✨ 機能
アカウント管理
- XRPL ネットワーク(MainNet、TestNet、DevNet)への接続
- アカウント情報の取得
- アカウントプロパティの管理
- 入金の事前承認
- レギュラーキーの管理
XRP とトークンの操作
- アカウント間での XRP の送金
- トークンのメタデータ(名前、シンボル、小数点以下の桁数、供給量)の取得
- トークン残高の確認
- アドレス間でのトークンの送金
- トークン使用の承認
- トークンのクローバック
NFT の操作
- XRP Ledger 上での NFT の発行
- NFT メタデータの表示
- NFT 所有権の確認
- アドレス間での NFT の転送
- NFT コレクションの取得
分散型識別子(DID)
- XRPL 上での DID の作成
- DID の解決
- DID ドキュメントの更新
- DID の無効化
AMM 操作
- 自動マーケットメーカーの作成
- AMM への入金
- AMM での入札
- AMM パラメーターへの投票
- AMM の削除
- AMM からの資産のクローバック
チェック操作
- チェックの作成
- チェックの換金
- チェックのキャンセル
オファー/DEX 操作
- オファーの作成
- オファーのキャンセル
オラクル操作
- オラクルデータの設定
- オラクルデータの削除
ペイメントチャネル
- ペイメントチャネルの作成
- ペイメントチャネルへの資金供給
- ペイメントチャネルからの請求
エスクロー
- エスクローの作成
- エスクローの完了
- エスクローのキャンセル
トラストライン
- トラストラインの設定と管理
チケッティング
- トランザクション処理用チケットの作成
🌐 対応ネットワーク
- MainNet:本番用 XRP Ledger ネットワーク
- TestNet:開発用テストネットワーク
- DevNet:実験的な機能向けの開発ネットワーク
🛠️ 前提条件
- Node.js 18.0.0 以降
📦 インストール
# Clone the repository
git clone https://github.com/yourusername/mcp-xrpl.git
cd mcp-xrpl
# Install dependencies
npm install
# Build the project
npm run build
⚙️ サーバーの設定
プロジェクトのルートに .env ファイルを作成し、次の変数を設定します。
# Optional: XRPL wallet seed for automatic connection
# If not provided, you can connect using the connect-to-xrpl tool
DEFAULT_SEED=sEdVoKkRRF8RsNYZ689NDeMyrijiCbg # Example - replace with your own or remove
# Network selection (default is "testnet")
XRPL_NETWORK=testnet # Options: mainnet, testnet, devnet
🚀 使い方
サーバーの起動
# Start the server in stdio mode (for CLI tools)
npm start
サーバーへの接続
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-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 | コレクション内の NFT を取得します | 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 データを公開します。
Ledger リソース
| リソース URI パターン | 説明 |
|---|---|
xrpl://{network}/ledger/current | 現在の Ledger 情報 |
xrpl://{network}/ledger/{ledger_index} | インデックスによる Ledger |
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 で操作が実行されます
- 機密性の高い設定には環境変数を使用してください
📁 プロジェクト構成
mcp-xrpl/
├── src/
│ ├── core/ # Core utilities and services
│ │ ├── constants.ts # XRPL network URLs and other constants
│ │ ├── state.ts # State management for connected wallet
│ │ ├── utils.ts # Helper functions
│ │ └── services/ # Service modules
│ ├── server/ # MCP server implementation
│ ├── transactions/ # XRPL transaction implementation
│ │ ├── token/ # Token-related transactions
│ │ ├── nft/ # NFT-related transactions
│ │ ├── did/ # DID-related transactions
│ │ ├── amm/ # AMM-related transactions
│ │ ├── check/ # Check-related transactions
│ │ ├── offer/ # Offer-related transactions
│ │ ├── oracle/ # Oracle-related transactions
│ │ ├── payment/ # Payment-related transactions
│ │ ├── escrow/ # Escrow-related transactions
│ │ └── trust/ # Trust line-related transactions
│ └── index.ts # Entry point
├── build/ # Compiled JavaScript output
├── package.json
├── package-lock.json
└── tsconfig.json
🛠️ 開発
新しいツールの追加
新しいツールを追加するには:
src/transactions/配下の適切なディレクトリに新しい TypeScript ファイルを作成しますserver/server.jsからサーバーをインポートしますserver.tool()を使用してツールを定義しますsrc/index.tsでツールをインポートします
プロジェクトの依存関係
@modelcontextprotocol/sdk:MCP SDKxrpl:XRP Ledger の JavaScript/TypeScript APIdotenv:環境変数の管理zod:TypeScript を優先したスキーマの宣言と検証
📄 ライセンス
このプロジェクトは MIT License の条件に基づいてライセンスされています。
⚠️ 免責事項
このソフトウェアは、教育および開発目的でのみ提供されています。ご自身の責任でご使用ください。実際の XRP を使用して Mainnet で利用する前に、必ず Testnet で十分にテストしてください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。