基板MCPサーバー
Substrateブロックチェーン用のModel Context Protocol (MCP)サーバー。Rustで記述されています。このプロジェクトは、MCPプロトコルを介して動的なSubstrateブロックチェーン操作(残高、ブロック、パレット、ストレージ、イベントなどのクエリ)を公開し、環境変数を介して完全に設定可能です。
subxtクレートとインターフェースするように設計されています。
✨ 特徴
- アカウント残高とストレージを動的に照会する
- パレットとそのエントリを一覧表示する
- イベントと外部関数の取得とフィルタリング
- 動的署名トランザクションを送信して監視する
- アクセスシステムとブロック情報
- SubstrateノードへのカスタムRPC呼び出し
🚀 潜在的なユースケース
- AI駆動型ブロックチェーン運用
- LLM (Cursor や Claude など) と統合して、ユーザーが自然言語で質問 (「Alice からの最後の転送は何でしたか?」など) できるようにし、その質問が MCP ツール呼び出しに変換されます。
- MCP サーバーをバックエンドとして使用して、質問に答えたり、残高を取得したり、チェーン上のアクティビティを説明したりできるチャットボットを構築します。
- MCP サーバーを使用して、VSCode、Cursor、Claude Code などの開発ツールに、残高の変更やトランザクション ステータスなどのオンチェーン アクティビティのライブ更新を提供します。
- カスタムダッシュボードと監視
- Substrateブロックチェーン用のカスタムダッシュボードと監視システムを作成する
- ブロックチェーン操作に関するリアルタイムデータと分析を表示します
- 重要なイベントに関するアラートと通知を設定する
- AI エージェントを使用して、イベントと外部要因をリアルタイムで分析し、疑わしいアクティビティを検出します。
🛠️ 要件
- さび
- Substrate ノードのエンドポイントへのアクセス (WebSocket)
- 有効な署名鍵ペア(16進数)
- ターゲット チェーンのランタイム メタデータ ファイル (名前と配置については以下を参照)
📦 インストール
リポジトリをクローンしてビルドします。
⚙️ 構成
次の変数を含む.env
ファイルをプロジェクト ルートに作成します。
署名鍵ペアの生成
サブキーを使用してキーペアを生成し、秘密シードを 16 進数で取得できます。
SIGNING_KEYPAIR_HEX
にはsecretSeed
フィールドを使用します (存在する場合は 0x プレフィックスを削除します)。
ランタイムメタデータの取得と配置
ノードからランタイム メタデータをエクスポートし、 artifacts/metadata.scale
に配置します。
**重要:**ビルド前に、ファイル名をmetadata.scale
とし、 artifacts/
ディレクトリに配置する必要があります。このファイルが存在しないか、名前が間違っている場合、ビルドは失敗します。
▶️ 使用方法
MCP サーバーを起動するには:
サーバーが起動し、stdio 経由で MCP 要求をリッスンします。
🖇️ カーソルとの統合
このMCPサーバーをCursorで使用するには、CursorのMCP設定にサーバーを追加する必要があります。これにより、CursorはSubstrate MCPサーバーを検出し、通信できるようになります。
- リリースモードでサーバーを構築します。
- ビルドされたバイナリへのパスを見つけます (通常は
target/release/substrate-mcp-rs
)。 - プロジェクト(またはグローバル)の
.cursor/mcp.json
ファイルに、サーバーのエントリを追加します。例:- 異なる場合は、
command
パスをビルドしたバイナリへの絶対パスに置き換えます。
- 異なる場合は、
- Cursorを再起動してください。Substrate MCPサーバーが検出され、接続され、ツールが使用できるようになります。
詳細については、カーソルのドキュメントまたはモデルコンテキストプロトコルの概要を参照してください。
🧰 利用可能なツール
サーバーは、Substrate ブロックチェーンと対話するための一連のツールを公開します。これには以下が含まれます。
query_balance
: アカウントの残高を取得するlist_pallets
: ランタイム内のすべてのパレットを一覧表示するlist_pallet_entries
: パレットのすべての保管エントリを一覧表示するdynamic_runtime_call
: ランタイムAPI呼び出しを実行するsend_dynamic_signed_transaction
: トランザクションを構築、署名、送信するquery_storage
: パレットとエントリによるストレージの照会get_latest_events
: 最新のブロックからすべてのイベントを取得するfind_events
: パレットとバリアントで特定のイベントを検索するget_latest_block
: 最新のブロックの詳細を取得するget_block_by_hash
: ハッシュでブロックの詳細を取得するfind_extrinsics
: 最新のブロック内の外部関数を検索するget_system_info
: RPC経由でシステム情報を取得するcustom_rpc
: カスタムRPC呼び出しを行う
詳細とパラメータについてはsrc/tooling/substrate.rs
参照してください。
🗂️ プロジェクト構造
src/main.rs
: エントリポイント、ログ記録の設定と MCP サーバーの起動src/tooling/
: Substrateツールの実装が含まれていますartifacts/
: ランタイムメタデータファイルをmetadata.scale
としてここに配置します (ビルド前に必要)
📈 次のステップと目標
- [ ] E2Eテストを追加する
- [ ] ユニットテストを追加する
- [ ] ツールを追加する
🤝 貢献する
貢献を歓迎します!Issue を開くか、プルリクエストを送信してください。大規模な変更の場合は、まずIssue を開いて、提案について議論してください。
- Rustのベストプラクティスに従い、コードが文書化されていることを確認する
- 送信前に
cargo fmt
とcargo clippy
実行してください - 可能な場合はテストを追加する
📄 ライセンス
マサチューセッツ工科大学
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
基板MCPサーバー
Related MCP Servers
- Python
- -securityFlicense-qualityOfficial Substack MCP ServerLast updated -3Python
- AsecurityAlicenseAqualityAlchemy MCP ServerLast updated -93,42253TypeScriptMIT License
- -securityAlicense-qualitySatellite Tracking MCP ServerLast updated -TypeScriptMIT License