XRPL MCP サービス
XRP Ledger(XRPL)への包括的なアクセスを提供するModel Context Protocol(MCP)サーバー。このサービスにより、AIモデルは標準化されたエンドポイントを介してXRPLと連携できるようになります。
特徴
アカウント情報
xrpl_account_info
- 基本的なアカウントの詳細xrpl_account_balances
- XRPとトークンの残高(人間が読める形式)xrpl_account_lines
- 信頼ラインxrpl_account_offers
- アクティブな取引オファーxrpl_account_nfts
- NFT保有量xrpl_account_tx
- 取引履歴
分散型取引所
xrpl_order_book
- 通貨ペアの注文書を表示するxrpl_market_price
- 現在の市場価格を取得するxrpl_amm_info
- 自動マーケットメーカー情報
NFTオペレーション
xrpl_nft_offers
- NFTの売買オファーを表示
信頼ラインと支払い
xrpl_set_trust_line
- 新しい信頼ラインを確立するxrpl_remove_trust_line
- 既存の信頼ラインを削除するxrpl_payment_channels
- 支払いチャネル情報xrpl_find_path
- 支払いパスの検索xrpl_deposit_auth
- 支払い承認を確認する
システム
xrpl_server_info
- ノードのステータスと情報xrpl_submit_tx
- 署名されたトランザクションを送信する
設定
.env
ファイルを作成します。
XRPL_NODE_URL=https://xrplcluster.com
- 依存関係をインストールします:
pip install xrpl-py fastapi uvicorn python-dotenv
- サーバーを実行します。
uvicorn main:app --host 0.0.0.0 --port 8000 --reload
APIの使用例
アカウント情報を取得する
POST /call-tool/xrpl_account_info
{
"account": "rsuUjfWxrACCAwGQDsNeZUhpzXf1n1NK5Z"
}
アカウント残高を取得する
POST /call-tool/xrpl_account_balances
{
"account": "rsuUjfWxrACCAwGQDsNeZUhpzXf1n1NK5Z"
}
信頼ラインを設定する
POST /call-tool/xrpl_set_trust_line
{
"wallet_seed": "sXXXXXXXXXXXXXXXXXXXX",
"currency": "USD",
"issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",
"limit": "1000"
}
AMM情報を取得する
POST /call-tool/xrpl_amm_info
{
"asset": {
"currency": "XRP"
},
"asset2": {
"currency": "USD",
"issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B"
}
}
市場価格を取得する
POST /call-tool/xrpl_market_price
{
"base_currency": {
"currency": "XRP"
},
"quote_currency": {
"currency": "USD",
"issuer": "rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B"
}
}
プロジェクト構造
├── main.py # FastAPI application entry point
├── tools/
│ ├── __init__.py
│ ├── register_tools.py # Tool registration
│ └── xrpl_tools.py # XRPL endpoint implementations
主要コンポーネント
- xrpl_tools.py
- コアXRPLインタラクション関数
- イベントループ処理による非同期実装
- エラー処理とレスポンスのフォーマット
- レジスタツール.py
将来の機能強化
- AMM(流動性プール)運用
- プールを作成する
- 流動性の追加/削除
- プールパラメータに投票する
- 高度な取引
- オファーの作成/キャンセル
- 自動取引機能
- 価格アラート
- NFTオペレーション
よくある問題
- 非同期イベントループ: 「asyncio.run() は実行中のイベントループから呼び出すことができません」と表示される場合は、xrpl_tools.py の非同期実装を確認してください。
- レート制限: 本番環境での使用にはレート制限の実装を検討してください
貢献
- リポジトリをフォークする
- 機能ブランチを作成する
- 変更を実装する
- プルリクエストを送信する
重要な注意事項
- 生産時には常に「検証済み」の台帳を使用する
- 安全なウォレットシードと秘密鍵
- 取引手数料を監視する
- まずはテストネットで徹底的にテストする
リソース
ライセンス
マサチューセッツ工科大学