mcpField
S
Substrate MCP Server

Substrate MCP Server

ローカル
github.com/ThomasMarches金融データ1254 週間前に更新

Substrate MCP Server について

Substrate MCP Serverは、Substrateブロックチェーンの開発者や運用者向けのRust製サーバーです。動的な署名トランザクションやカスタムRPC呼び出しを含む、チェーンの照会と操作をMCPツールとして提供します。

主な機能

  1. 01アカウント残高とストレージの照会
  2. 02ランタイムのパレットとエントリーの一覧
  3. 03イベントとエクストリンシックの取得
  4. 04署名トランザクションの送信と監視
  5. 05システム情報とブロック情報の取得
  6. 06カスタムRPCメソッドの呼び出し

活用シーン

  1. 01アカウント残高とチェーンストレージの確認
  2. 02直近のブロック、イベント、エクストリンシックの調査
  3. 03チェーンへの署名トランザクション送信
  4. 04ブロックチェーンのダッシュボードと監視の構築

MCP 対応

Substrateのチェーンデータ照会や操作を行うツールを提供し、署名トランザクションやカスタムRPC呼び出しにも対応します。MCPクライアントはこれらのツールを通じて設定済みのSubstrateノードにアクセスできます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Substrate MCP サーバー

MIT License Rust

Trust Score

Rust で記述された、Substrate ブロックチェーン向けの Model Context Protocol (MCP) サーバーです。このプロジェクトは、MCP プロトコルを通じて、動的な Substrate ブロックチェーン操作(残高、ブロック、パレット、ストレージ、イベントなどの照会)を提供し、環境変数で完全に設定できます。

subxt クレートと連携するよう設計されています。

✨ 機能

  • アカウント残高とストレージを動的に照会
  • パレットとそのエントリーを一覧表示
  • イベントとエクストリンシックを取得してフィルタリング
  • 署名付きの動的トランザクションを送信して監視
  • システム情報とブロック情報にアクセス
  • Substrate ノードへのカスタム RPC 呼び出し

🚀 想定されるユースケース

  1. AI 主導のブロックチェーン操作

    • Cursor や Claude などの LLM と統合し、ユーザーが自然言語(例:「Alice からの最後の送金は何でしたか?」)で質問できるようにします。質問は MCP ツール呼び出しに変換されます。
    • MCP サーバーをバックエンドとして使用し、質問に回答したり、残高を取得したり、オンチェーンのアクティビティを説明したりできるチャットボットを構築します。
    • MCP サーバーを使って、残高の変動やトランザクションのステータスなど、オンチェーンのアクティビティに関するライブ更新を、VSCode、Cursor、Claude Code などの開発ツールに提供します。
  2. カスタムダッシュボードとモニタリング

    • Substrate ブロックチェーン向けのカスタムダッシュボードとモニタリングシステムを作成します
    • ブロックチェーン操作のリアルタイムデータと分析結果を表示します
    • 重要なイベントに対するアラートと通知を設定します
    • AI エージェントを使って、イベントとエクストリンシックをリアルタイムで分析し、不審なアクティビティを検出します。

🛠️ 必要条件

  • Rust
  • Substrate ノードエンドポイントへのアクセス(WebSocket)
  • 有効な署名用キーペア(hex 形式)
  • 対象チェーンのランタイムメタデータファイル(名前と配置については以下を参照)

📦 インストール

リポジトリをクローンしてビルドします。

git clone https://github.com/ThomasMarches/substrate-mcp-rs.git
cd substrate-mcp-rs
cargo build --release

⚙️ 設定

プロジェクトのルートに .env ファイルを作成し、次の変数を設定します。

# WebSocket endpoint for the Substrate node
RPC_URL=wss://your-node-url.example.com

# Signing keypair as hex (32 bytes, e.g. output of subkey inspect-key --scheme Sr25519)
SIGNING_KEYPAIR_HEX=your_signing_keypair_hex_here
署名用キーペアの生成

subkey を使って、キーペアを生成し、秘密シードを hex 形式で取得できます。

subkey generate --scheme Sr25519 --output-type Json

secretSeed フィールドを使用して(存在する場合は 0x プレフィックスを削除してください)、SIGNING_KEYPAIR_HEX に設定します。

ランタイムメタデータの取得と配置

ノードからランタイムメタデータをエクスポートし、artifacts/metadata.scale に配置します。

subxt metadata -f bytes > artifacts/metadata.scale

重要: ビルドする前に、ファイル名を metadata.scale にし、artifacts/ ディレクトリに配置してください。このファイルが存在しない場合、または名前が異なる場合、ビルドは失敗します。

▶️ 使用方法

MCP サーバーを起動するには、次を実行します。

cargo run --release

サーバーが起動し、stdio 経由で MCP リクエストを待ち受けます。

🖇️ Cursor との連携

この MCP サーバーを Cursor で使用するには、Cursor の MCP 設定に追加する必要があります。これにより、Cursor は Substrate MCP サーバーを検出し、連携できるようになります。

  1. リリースモードでサーバーをビルドします。

    cargo build --release
    
  2. ビルドしたバイナリのパスを確認します(通常は target/release/substrate-mcp-rs)。

  3. プロジェクトまたはグローバルの .cursor/mcp.json ファイルに、サーバーのエントリーを追加します。例:

    {
      "mcpServers": {
        "substrate-mcp-rs": {
          "command": "$PROJECT_ROOT_ABSOLUTE_PATH/target/release/substrate-mcp-rs",
          "args": []
        }
      }
    }
    
    • command のパスが異なる場合は、ビルドしたバイナリの絶対パスに置き換えてください。
  4. Cursor を再起動します。Substrate MCP サーバーが検出されて接続され、ツールを使用できるようになります。

詳しくは、Cursor のドキュメントまたは Model Context Protocol の紹介をご覧ください。

🧰 利用可能なツール

サーバーでは、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 テストを追加する
  • 単体テストを追加する
  • ツールを追加する

🤝 コントリビューション

コントリビューションを歓迎します。イシューまたはプルリクエストを作成してください。大規模な変更の場合は、まずイシューを作成して提案について相談してください。

  • Rust のベストプラクティスに従い、コードにドキュメントを追加してください
  • 提出前に cargo fmt と cargo clippy を実行してください
  • 可能であればテストを追加してください

📄 ライセンス

MIT

コメント

MCP は初めてですか?

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

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