Skip to main content
Glama

Substrate MCP Server

基板MCPサーバー

Substrateブロックチェーン用のModel Context Protocol (MCP)サーバー。Rustで記述されています。このプロジェクトは、MCPプロトコルを介して動的なSubstrateブロックチェーン操作(残高、ブロック、パレット、ストレージ、イベントなどのクエリ)を公開し、環境変数を介して完全に設定可能です。

subxtクレートとインターフェースするように設計されています。

✨ 特徴

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

🚀 潜在的なユースケース

  1. AI駆動型ブロックチェーン運用
    • LLM (Cursor や Claude など) と統合して、ユーザーが自然言語で質問 (「Alice からの最後の転送は何でしたか?」など) できるようにし、その質問が MCP ツール呼び出しに変換されます。
    • MCP サーバーをバックエンドとして使用して、質問に答えたり、残高を取得したり、チェーン上のアクティビティを説明したりできるチャットボットを構築します。
    • MCP サーバーを使用して、VSCode、Cursor、Claude Code などの開発ツールに、残高の変更やトランザクション ステータスなどのオンチェーン アクティビティのライブ更新を提供します。
  2. カスタムダッシュボードと監視
    • Substrateブロックチェーン用のカスタムダッシュボードと監視システムを作成する
    • ブロックチェーン操作に関するリアルタイムデータと分析を表示します
    • 重要なイベントに関するアラートと通知を設定する
    • AI エージェントを使用して、イベントと外部要因をリアルタイムで分析し、疑わしいアクティビティを検出します。

🛠️ 要件

  • さび
  • Substrate ノードのエンドポイントへのアクセス (WebSocket)
  • 有効な署名鍵ペア(16進数)
  • ターゲット チェーンのランタイム メタデータ ファイル (名前と配置については以下を参照)

📦 インストール

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

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

署名鍵ペアの生成

サブキーを使用してキーペアを生成し、秘密シードを 16 進数で取得できます。

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

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

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

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

subxt metadata -f bytes > artifacts/metadata.scale

**重要:**ビルド前に、ファイル名をmetadata.scaleとし、 artifacts/ディレクトリに配置する必要があります。このファイルが存在しないか、名前が間違っている場合、ビルドは失敗します。

▶️ 使用方法

MCP サーバーを起動するには:

cargo run --release

サーバーが起動し、stdio 経由で MCP 要求をリッスンします。

🖇️ カーソルとの統合

この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サーバーが検出され、接続され、ツールが使用できるようになります。

詳細については、カーソルのドキュメントまたはモデルコンテキストプロトコルの概要を参照してください。

🧰 利用可能なツール

サーバーは、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 fmtcargo clippy実行してください
  • 可能な場合はテストを追加する

📄 ライセンス

マサチューセッツ工科大学

Related MCP Servers

View all related MCP servers

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ThomasMarches/substrate-mcp-rs'

If you have feedback or need assistance with the MCP directory API, please join our Discord server