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
- 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.
- 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:
⚙️ Konfiguration
Erstellen Sie im Projektstammverzeichnis eine .env
Datei mit den folgenden Variablen:
Generieren eines Signaturschlüsselpaars
Sie können ein Schlüsselpaar generieren und den geheimen Seed in Hex mithilfe des Unterschlüssels erhalten:
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
:
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:
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.
- Erstellen Sie Ihren Server im Release-Modus:
- Suchen Sie den Pfad zur erstellten Binärdatei (normalerweise
target/release/substrate-mcp-rs
). - Fügen Sie in Ihrer Projektdatei (oder globalen Datei)
.cursor/mcp.json
einen Eintrag für Ihren Server hinzu. Beispiel:- Ersetzen Sie den
command
durch den absoluten Pfad zu Ihrer erstellten Binärdatei, falls dieser abweicht.
- Ersetzen Sie den
- 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 ablist_pallets
: Listet alle Paletten in der Laufzeit auflist_pallet_entries
: Listet alle Lagereinträge für eine Palette aufdynamic_runtime_call
: Führt einen Laufzeit-API-Aufruf aussend_dynamic_signed_transaction
: Erstellen, signieren und senden Sie eine Transaktionquery_storage
: Abfrage der Lagerung nach Palette und Eintragget_latest_events
: Alle Ereignisse aus dem neuesten Block abrufenfind_events
: Finden Sie bestimmte Ereignisse nach Palette und Varianteget_latest_block
: Details zum neuesten Block abrufenget_block_by_hash
: Blockdetails nach Hash abrufenfind_extrinsics
: Findet Extrinsics im neuesten Blockget_system_info
: Systeminformationen über RPC abrufencustom_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-Serversrc/tooling/
: Enthält die Substrate-Tool-Implementierungartifacts/
: Platzieren Sie Ihre Laufzeitmetadatendatei hier alsmetadata.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
undcargo clippy
aus, bevor Sie sie übermitteln - Fügen Sie nach Möglichkeit Tests hinzu
📄 Lizenz
MIT
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Substrate MCP-Server
Related MCP Servers
- JavaScriptMIT License
- Python
- Python
- -securityAlicense-qualityMarineTraffic MCP ServerLast updated -1TypeScriptMIT License