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
- Python
- -securityFlicense-qualityOfficial Substack MCP ServerLast updated -3Python
- AsecurityAlicenseAqualityAlchemy MCP ServerLast updated -93,42253TypeScriptMIT License
- -securityAlicense-qualitySatellite Tracking MCP ServerLast updated -TypeScriptMIT License