Skip to main content
Glama

Substrate MCP Server

Integrations
  • Uses .env files for configuration, allowing easy setup of node endpoints, signing keypairs, and other environment-specific settings.

  • Enables interaction with Substrate/Polkadot blockchain networks, including querying account balances, listing pallets, sending transactions, accessing blockchain storage, and monitoring events and extrinsics.

  • Built with Rust and integrates with the Subxt crate to provide comprehensive access to Substrate blockchain operations and data.

Substrate MCP-Server

Ein Model Context Protocol (MCP) -Server für Substrate-Blockchains, geschrieben in Rust. Dieses Projekt ermöglicht dynamische Substrate-Blockchain-Operationen (Abfrage von Guthaben, Blöcken, Paletten, Speicher, Ereignissen und mehr) über das MCP-Protokoll und ist vollständig über Umgebungsvariablen konfigurierbar.

Entwickelt für die Schnittstelle mit der Subxt- Kiste.

✨ Funktionen

  • Kontostände und Speicher dynamisch abfragen
  • Paletten und deren Einträge auflisten
  • Abrufen und Filtern von Ereignissen und Extrinsics
  • Senden und beobachten Sie dynamisch signierte Transaktionen
  • Zugangssystem und Sperrinformationen
  • Benutzerdefinierte RPC-Aufrufe an Substratknoten

🚀 Mögliche Anwendungsfälle

  1. KI-gesteuerte Blockchain-Operationen
    • Integrieren Sie LLMs (wie Cursor oder Claude), um Benutzern das Stellen von Fragen in natürlicher Sprache zu ermöglichen (z. B. „Was war die letzte Überweisung von Alice?“), die in MCP-Tool-Aufrufe übersetzt werden.
    • Erstellen Sie einen Chatbot, der Fragen beantworten, Kontostände abrufen oder On-Chain-Aktivitäten erklären kann, indem Sie Ihren MCP-Server als Backend verwenden.
    • Verwenden Sie den MCP-Server, um Entwicklungstools wie VSCode, Cursor, Claude Code usw. Live-Updates zur On-Chain-Aktivität, wie z. B. Änderungen am Kontostand oder Transaktionsstatus, bereitzustellen.
  2. Benutzerdefinierte Dashboards und Überwachung
    • Erstellen Sie benutzerdefinierte Dashboards und Überwachungssysteme für Ihre Substrate-Blockchain
    • Zeigen Sie Echtzeitdaten und Analysen Ihrer Blockchain-Operationen an
    • Richten Sie Warnungen und Benachrichtigungen für kritische Ereignisse ein
    • Verwenden Sie KI-Agenten, um verdächtige Aktivitäten zu erkennen, indem Sie Ereignisse und äußere Einflüsse in Echtzeit analysieren.

🛠️ Voraussetzungen

  • Rost
  • Zugriff auf einen Substrate-Knotenendpunkt (WebSocket)
  • Ein gültiges Signaturschlüsselpaar (als Hex)
  • Laufzeit-Metadatendatei für Ihre Zielkette (Benennung und Platzierung siehe unten)

📦 Installation

Klonen Sie das Repository und erstellen Sie:

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

⚙️ Konfiguration

Erstellen Sie im Projektstammverzeichnis eine .env Datei mit den folgenden Variablen:

# 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

Generieren eines Signaturschlüsselpaars

Sie können ein Schlüsselpaar generieren und den geheimen Seed in Hex mithilfe des Unterschlüssels erhalten:

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

Verwenden Sie das Feld secretSeed (entfernen Sie das Präfix 0x, falls vorhanden) für SIGNING_KEYPAIR_HEX .

Abrufen und Platzieren von Laufzeitmetadaten

Exportieren Sie die Laufzeitmetadaten aus Ihrem Knoten und platzieren Sie sie unter artifacts/metadata.scale :

subxt metadata -f bytes > artifacts/metadata.scale

Wichtig: Die Datei muss den Namen metadata.scale tragen und sich vor dem Erstellen im Verzeichnis artifacts/ befinden. Der Build schlägt fehl, wenn diese Datei fehlt oder falsch benannt ist.

▶️ Verwendung

So starten Sie den MCP-Server:

cargo run --release

Der Server wird gestartet und wartet über stdio auf MCP-Anfragen.

🖇️ Integration mit Cursor

Um diesen MCP-Server mit Cursor zu verwenden, müssen Sie ihn zu Ihrer Cursor-MCP-Konfiguration hinzufügen. Dadurch kann Cursor Ihren Substrate-MCP-Server erkennen und mit ihm interagieren.

  1. Erstellen Sie Ihren Server im Release-Modus:
    cargo build --release
  2. Suchen Sie den Pfad zur erstellten Binärdatei (normalerweise target/release/substrate-mcp-rs ).
  3. Fügen Sie in Ihrer Projektdatei (oder globalen Datei) .cursor/mcp.json einen Eintrag für Ihren Server hinzu. Beispiel:
    { "mcpServers": { "substrate-mcp-rs": { "command": "$PROJECT_ROOT_ABSOLUTE_PATH/target/release/substrate-mcp-rs", "args": [] } } }
    • Ersetzen Sie den command durch den absoluten Pfad zu Ihrer erstellten Binärdatei, falls dieser abweicht.
  4. Starten Sie Cursor neu. Der Server sollte nun Ihren Substrate MCP-Server erkennen, eine Verbindung zu ihm herstellen und die Tools zur Nutzung bereitstellen.

Weitere Einzelheiten finden Sie in der Cursor-Dokumentation oder in der Einführung zum Model Context Protocol .

🧰 Verfügbare Tools

Der Server stellt eine Reihe von Tools für die Interaktion mit einer Substrate-Blockchain bereit, darunter:

  • query_balance : Ruft den Kontostand eines Kontos ab
  • list_pallets : Listet alle Paletten in der Laufzeit auf
  • list_pallet_entries : Listet alle Lagereinträge für eine Palette auf
  • dynamic_runtime_call : Führt einen Laufzeit-API-Aufruf aus
  • send_dynamic_signed_transaction : Erstellen, signieren und senden Sie eine Transaktion
  • query_storage : Abfrage der Lagerung nach Palette und Eintrag
  • get_latest_events : Alle Ereignisse aus dem neuesten Block abrufen
  • find_events : Finden Sie bestimmte Ereignisse nach Palette und Variante
  • get_latest_block : Details zum neuesten Block abrufen
  • get_block_by_hash : Blockdetails nach Hash abrufen
  • find_extrinsics : Findet Extrinsics im neuesten Block
  • get_system_info : Systeminformationen über RPC abrufen
  • custom_rpc : Führen Sie einen benutzerdefinierten RPC-Aufruf durch

Vollständige Details und Parameter finden Sie unter src/tooling/substrate.rs .

🗂️ Projektstruktur

  • src/main.rs : Einstiegspunkt, richtet die Protokollierung ein und startet den MCP-Server
  • src/tooling/ : Enthält die Substrate-Tool-Implementierung
  • artifacts/ : Platzieren Sie Ihre Laufzeitmetadatendatei hier als metadata.scale (vor dem Erstellen erforderlich)

📈 Nächste Schritte und Ziele

  • [ ] E2E-Tests hinzufügen
  • [ ] Unit-Tests hinzufügen
  • [ ] Weitere Tools hinzufügen

🤝 Beitragen

Beiträge sind willkommen! Bitte melden Sie Issues oder Pull Requests an. Bei größeren Änderungen melden Sie sich bitte zunächst bei einem Issue, um Ihren Vorschlag zu besprechen.

  • Befolgen Sie die Best Practices von Rust und stellen Sie sicher, dass der Code dokumentiert ist
  • Führen Sie cargo fmt und cargo clippy aus, bevor Sie sie übermitteln
  • Fügen Sie nach Möglichkeit Tests hinzu

📄 Lizenz

MIT

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