Blockscout

offiziell

Greifen Sie auf Blockchain-Daten wie Kontostände, Token und NFTs über die Blockscout-APIs zu. Unterstützt Multi-Chain und Fortschrittsbenachrichtigungen.

Was kann man mit Blockscout MCP machen?

  • Adressen und Token auflösen — Fragen Sie get_address_by_ens_name, um einen ENS-Namen in eine Adresse umzuwandeln, oder lookup_token_by_symbol, um Token anhand des Symbols über mehrere Chains hinweg zu finden.
  • Verträge und Code prüfen — Verwenden Sie get_contract_abi und inspect_contract_code, um die ABI oder verifizierte Quelldateien eines Smart Contracts abzurufen.
  • Wallet-Aktivität analysieren — Fragen Sie get_transactions_by_address, get_token_transfers_by_address und nft_tokens_by_address ab, um den Transaktionsverlauf, ERC-20-Transfers oder NFT-Bestände einer Adresse zu überprüfen.
  • Blöcke und Transaktionen erkunden — Erhalten Sie Details über get_block_info und get_transaction_info, einschließlich dekodierter Eingaben, verbrauchtem Gas und Token-Transfers.
  • Vertragszustand lesen — Rufen Sie read_contract auf, um schreibgeschützte Funktionen eines Smart Contracts an einem bestimmten Block auszuführen.
  • Zugriff auf Rohdaten der Chain — Verwenden Sie direct_api_call für erweiterte oder chain-spezifische Abfragen an Blockscout-Endpunkte.

Gehosteter MCP-Server

npx add-mcp 'https://mcp.blockscout.com/mcp'

Installiert in Claude Code, Codex, Cursor und mehr

Dokumentation

Blockscout MCP Server

smithery badge

Blockscout Server MCP server

Das Model Context Protocol (MCP) ist ein offenes Protokoll, das KI-Agenten, IDEs und Automatisierungswerkzeugen ermöglicht, strukturierte Daten über kontextbewusste APIs zu konsumieren, abzufragen und zu analysieren.

Dieser Server kapselt Blockscout-APIs und stellt Blockchain-Daten – Kontostände, Token, NFTs, Vertragsmetadaten – über MCP bereit, sodass KI-Agenten und -Werkzeuge (wie Claude, Cursor oder IDEs) darauf zugreifen und sie kontextbezogen analysieren können.

Hauptfunktionen:

  • Kontextbezogener Blockchain-Datenzugriff für KI-Werkzeuge
  • Multi-Chain-Unterstützung über die Blockscout-PRO-API-Konfiguration mit Chainscout-Metadatenanreicherung
  • Versionierte REST-API: Bietet eine standardmäßige, webfreundliche Schnittstelle zu allen MCP-Tools. Siehe API.md für die vollständige Dokumentation.
  • Benutzerdefinierte Anweisungen für den MCP-Host zur Nutzung des Servers
  • Intelligente Kontextoptimierung zur Schonung von LLM-Tokens bei gleichzeitiger Aufrechterhaltung der Datenzugänglichkeit
  • Intelligente Antwortaufteilung mit konfigurierbaren Seitengrößen zur Vermeidung von Kontextüberläufen
  • Undurchsichtige Cursor-Paginierung mit Base64URL-kodierten Zeichenfolgen anstelle komplexer Parameter
  • Automatische Kürzung großer Datenfelder mit klaren Hinweisen und Zugriffsanleitungen
  • Standardisiertes ToolResponse-Modell mit strukturierten JSON-Antworten und Folgeanweisungen
  • Verbesserte Beobachtbarkeit mit MCP-Fortschrittsbenachrichtigungen und regelmäßigen Updates für langlaufende Vorgänge

Erweiterte Analyse mit Agent-Fähigkeiten

Für eine leistungsfähigere und effizientere Blockchain-Analyse installieren Sie die Blockscout-Analyse-Fähigkeit aus dem agent-skills-Repository. Diese Fähigkeit bietet KI-Agenten strukturierte Anleitungen für Ausführungsstrategien, Antwortverarbeitung, Sicherheits-Best-Practices und Workflow-Orchestrierung.

Mehr erfahren: Siehe die agent-skills-README für alle Funktionen und Installationsanweisungen.

Konfiguration von MCP-Clients

Blockscout-PRO-API-Schlüssel

Die Konfiguration des Blockscout-MCP-Servers mit einem KI-Agenten erfordert einen Blockscout-PRO-API-Schlüssel. Die meisten Datentools leiten ihre Anfragen über das authentifizierte Blockscout-PRO-API-Gateway, daher schlagen diese Tools ohne gültigen Schlüssel schnell fehl, bevor eine vorgelagerte Anfrage gestellt wird.

Um einen Schlüssel zu erhalten, registrieren Sie sich im Blockscout-Entwicklerportal (die kostenlose Stufe erfordert keine Kreditkarte) und generieren Sie einen API-Schlüssel; Schlüssel haben das Präfix proapi_. Geben Sie ihn dann bei der Konfiguration Ihres Clients an, wie in den folgenden Abschnitten gezeigt.

Claude-Einrichtung (Web, Desktop, Cowork) – Empfohlen

Der einfachste Weg, den Blockscout-MCP-Server mit Claude zu verwenden, ist der offizielle gehostete Server: eine native, verwaltete Installation mit automatischen Updates und ohne eigenen Betrieb. Fügen Sie ihn als benutzerdefinierten Connector mit Ihrem eigenen PRO-API-Schlüssel hinzu. Claude sendet den Schlüssel bei jeder Anfrage in einem x-api-key-Header, den der Server als Alias für seinen Blockscout-MCP-Pro-Api-Key-Header akzeptiert.

  1. Öffnen Sie Claude und gehen Sie zu Anpassen > Connectors. Bei Team- und Enterprise-Plänen macht ein Organisationsinhaber dies unter Organisationseinstellungen > Connectors.
  2. Klicken Sie auf Benutzerdefinierten Connector hinzufügen. Setzen Sie den Namen auf Blockscout und die URL auf https://mcp.blockscout.com/mcp, dann fahren Sie fort.
  3. Lassen Sie Authentifizierung auf None (Claude erkennt es). Eine Warnung, dass der Connector keine Anmeldeinformationen hat, ist zu erwarten: Der Schlüssel wird im nächsten Schritt bereitgestellt.
  4. Öffnen Sie Anfrage-Header, wählen Sie x-api-key aus der Liste und fügen Sie Ihren PRO-API-Schlüssel als Wert ein. Wählen Sie genau diesen Namen; der Server liest die anderen ähnlich aussehenden Namen in der Liste nicht.
  5. Klicken Sie auf Hinzufügen.

Hinweis: Der Abschnitt Anfrage-Header befindet sich in der Beta-Phase und ist noch nicht für jede Organisation verfügbar. Wenn Ihr Dialog ihn nicht anzeigt, verwenden Sie das Connectors-Verzeichnis unten.

Hinweis: Bei Team- und Enterprise-Plänen wird der Schlüssel einmal vom Inhaber eingegeben und von der gesamten Organisation geteilt. Authentifizierungseinstellungen können nach dem Hinzufügen eines Connectors nicht mehr bearbeitet werden: Um den Schlüssel zu ändern, entfernen Sie den Connector und fügen Sie ihn erneut hinzu.

Verwendung des Claude-Connectors-Verzeichnisses

Wenn der Dialog für benutzerdefinierte Connectors keinen Abschnitt Anfrage-Header hat, installieren Sie den Blockscout-Connector aus dem offiziellen Anthropic-Connectors-Verzeichnis. Er verbindet sich mit demselben gehosteten Server, verwendet jedoch einen gemeinsamen Zugriffsschlüssel.

Installation

Option 1: Direkter Link

Besuchen Sie claude.com/connectors/blockscout und klicken Sie auf Links im Abschnitt „Verwendet in", um den Blockscout-Connector zu installieren.

Option 2: Über die Einstellungen
  1. Öffnen Sie Claude (Web- oder Desktop-App)
  2. Gehen Sie zu Einstellungen > Connectors > Connectors durchsuchen
  3. Suchen Sie nach „Blockscout"
  4. Klicken Sie auf „Verbinden", um zu installieren

Einschränkungen: Aufgrund der Verwendung eines gemeinsamen Zugriffsschlüssels kann es Einschränkungen beim Connector-Zugriff und bei den Funktionen geben.

Claude-Code-Einrichtung

Übergeben Sie Ihren PRO-API-Schlüssel über den Blockscout-MCP-Pro-Api-Key-Header, wenn Sie den Server hinzufügen:

claude mcp add --transport http blockscout https://mcp.blockscout.com/mcp \
  --header "Blockscout-MCP-Pro-Api-Key: proapi_your_key_here"

Nach Ausführung dieses Befehls ist Blockscout als MCP-Server in Claude Code verfügbar, sodass Sie direkt aus Ihrer Codierungsumgebung auf Blockchain-Daten zugreifen und diese analysieren können.

ChatGPT-Apps-Einrichtung

Installieren Sie die Blockscout-App aus dem ChatGPT-Apps-Marktplatz:

  1. Öffnen Sie die Blockscout-App-Seite (oder suchen Sie nach „Blockscout" im ChatGPT-Apps-Verzeichnis).
  2. Klicken Sie auf „Verbinden", um die App für Ihr ChatGPT-Konto zu aktivieren.

Codex-App-Einrichtung

  1. Öffnen Sie Codex und gehen Sie zu Einstellungen > MCP-Server > Server hinzufügen.
  2. Setzen Sie Name auf Blockscout, wählen Sie die Registerkarte Streamable HTTP und setzen Sie URL auf https://mcp.blockscout.com/mcp.
  3. Fügen Sie unter Header einen Header mit Schlüssel Blockscout-MCP-Pro-Api-Key und Wert proapi_your_key_here hinzu.
  4. Speichern Sie und starten Sie die Codex-App neu.

Codex-CLI-Einrichtung

Die Codex-CLI kann keinen benutzerdefinierten Header von der Befehlszeile aus anhängen, daher konfigurieren Sie sie in zwei Schritten:

  1. Gerüst für den Servereintrag erstellen:

    codex mcp add Blockscout --url https://mcp.blockscout.com/mcp
    
  2. Bearbeiten Sie ~/.codex/config.toml, um den PRO-API-Schlüssel-Header hinzuzufügen und den Streamable-HTTP-MCP-Client zu aktivieren (erforderlich, damit sich Remote-MCP-Server verbinden können). Die resultierende Konfiguration sollte wie folgt aussehen:

    [features]
    experimental_use_rmcp_client = true
    
    [mcp_servers.Blockscout]
    url = "https://mcp.blockscout.com/mcp"
    http_headers = { "Blockscout-MCP-Pro-Api-Key" = "proapi_your_key_here" }
    

Cursor-Einrichtung

Fügen Sie den Server zu Ihrer Cursor-MCP-Konfiguration hinzu – entweder auf Projektebene .cursor/mcp.json oder global ~/.cursor/mcp.json – und geben Sie Ihren PRO-API-Schlüssel über den Blockscout-MCP-Pro-Api-Key-Header an:

{
  "mcpServers": {
    "blockscout": {
      "url": "https://mcp.blockscout.com/mcp",
      "timeout": 180000,
      "headers": {
        "Blockscout-MCP-Pro-Api-Key": "proapi_your_key_here"
      }
    }
  }
}

Lokale Entwicklungseinrichtung (Für Entwickler)

Wenn Sie den Server für Entwicklungszwecke lokal ausführen möchten:

{
  "mcpServers": {
    "blockscout": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "ghcr.io/blockscout/mcp-server:latest"
      ]
    }
  }
}

Technische Details

Siehe SPEC.md für die technischen Details.

Repository-Struktur

Siehe AGENTS.md für die Repository-Struktur.

Tests

Siehe TESTING.md für umfassende Anweisungen zur Ausführung von Unit- und Integrationstests.

Tool-Beschreibungen

  1. __unlock_blockchain_analysis__() – Initialisiert eine Blockscout-MCP-Sitzung: gibt Server-Referenzdaten, den blockscout-analysis-Fähigkeitszeiger und die URI-Auflösungsregel zurück. Rufen Sie es einmal pro Sitzung auf, vor jedem anderen Tool.
  2. get_chains_list(query=None) – Gibt eine Liste unterstützter Chains zurück, mit optionaler Filterung nach Name, Chain-ID, nativer Währung oder Ökosystem.
  3. get_address_by_ens_name(name) – Konvertiert einen ENS-Domainnamen in die entsprechende Ethereum-Adresse.
  4. lookup_token_by_symbol(chain_id, symbol) – Sucht nach Token-Adressen nach Symbol oder Name und gibt mehrere mögliche Übereinstimmungen zurück.
  5. get_contract_abi(chain_id, address) – Ruft die ABI (Application Binary Interface) für einen Smart Contract ab.
  6. inspect_contract_code(chain_id, address, file_name=None) – Ermöglicht das Abrufen der Quelldateien verifizierter Verträge.
  7. get_address_info(chain_id, address) – Ruft umfassende Informationen zu einer Adresse ab, einschließlich Kontostand, ENS-Zuordnung, Vertragsstatus, Tokendetails und öffentlicher Tags.
  8. get_tokens_by_address(chain_id, address, cursor=None) – Gibt detaillierte ERC20-Token-Bestände für eine Adresse mit angereicherten Metadaten und Marktdaten zurück.
  9. get_block_number(chain_id, [datetime]) – Ruft die Blocknummer und den Zeitstempel für ein bestimmtes Datum/eine bestimmte Uhrzeit oder den neuesten Block ab.
  10. get_transactions_by_address(chain_id, address, age_from, age_to, methods, cursor=None) – Ruft Transaktionen für eine Adresse innerhalb eines bestimmten Zeitraums mit optionaler Methodenfilterung ab.
  11. get_token_transfers_by_address(chain_id, address, age_from, age_to, token, cursor=None) – Gibt ERC-20-Token-Übertragungen für eine Adresse innerhalb eines bestimmten Zeitraums zurück.
  12. nft_tokens_by_address(chain_id, address, cursor=None) – Ruft NFT-Tokens ab, die einer Adresse gehören, gruppiert nach Sammlung.
  13. get_block_info(chain_id, number_or_hash, include_transactions=False) – Gibt Blockinformationen einschließlich Zeitstempel, verbrauchtem Gas, verbrannten Gebühren und Transaktionsanzahl zurück. Kann optional eine Liste von Transaktions-Hashes enthalten.
  14. get_transaction_info(chain_id, hash, include_raw_input=False) – Ruft umfassende Transaktionsinformationen mit dekodierten Eingabeparametern und detaillierten Token-Übertragungen ab.
  15. read_contract(chain_id, address, abi, function_name, args='[]', block='latest') – Führt eine schreibgeschützte Smart-Contract-Funktion aus und gibt deren Ergebnis zurück. Das abi-Argument ist ein JSON-Objekt, das die Signatur der jeweiligen Funktion beschreibt.
  16. direct_api_call(chain_id, endpoint_path, query_params=None, cursor=None, method='GET', json_body=None) – Ruft einen rohen Blockscout-API-Endpunkt für erweiterte oder chain-spezifische Daten auf. Unterstützt GET (Standard) und POST-Anfragen mit JSON-Body.

Beispiel-Prompts für KI-Agenten

Is any approval set for OP token on Optimism chain by `zeaver.eth`?
Calculate the total gas fees paid on Ethereum by address `0xcafe...cafe` in May 2025.
Which 10 most recent logs were emitted by `0xFe89cc7aBB2C4183683ab71653C4cdc9B02D44b7`
before `Nov 08 2024 04:21:35 AM (-06:00 UTC)`?
Tell me more about the transaction `0xf8a55721f7e2dcf85690aaf81519f7bc820bc58a878fa5f81b12aef5ccda0efb`
on Redstone rollup.
Is there any blacklisting functionality of USDT token on Arbitrum One?
What is the latest block on Gnosis Chain and who is the block minter?
Were any funds moved from this minter recently?
When the most recent reward distribution of Kinto token was made to the wallet
`0x7D467D99028199D99B1c91850C4dea0c82aDDF52` in Kinto chain?
Which methods of `0x1c479675ad559DC151F6Ec7ed3FbF8ceE79582B6` on the Ethereum 
mainnet could emit `SequencerBatchDelivered`?
What is the most recent executed cross-chain message sent from the Arbitrum Sepolia
rollup to the base layer?

Entwicklung & Bereitstellung

Lokale Installation

Klonen Sie das Repository und installieren Sie die Abhängigkeiten:

git clone https://github.com/blockscout/mcp-server.git
cd mcp-server
uv pip install -e . # or `pip install -e .`

Um den führenden Teil des User-Agent-Headers für RPC-Anfragen anzupassen, setzen Sie die BLOCKSCOUT_MCP_USER_AGENT-Umgebungsvariable (Standardwert „Blockscout MCP"). Die Serverversion wird automatisch angehängt.

Bereitstellung des PRO-API-Schlüssels für den Server

Wenn Sie den Server selbst ausführen, stellen Sie den Blockscout-PRO-API-Schlüssel über die BLOCKSCOUT_PRO_API_KEY-Umgebungsvariable bereit – exportiert in Ihrer Shell oder platziert in einer gitignorierten .env-Datei im Projektstamm. Dies ermöglicht den gesamten Datenzugriff, die Anreicherung öffentlicher Tags und Vertragslesevorgänge. Committen Sie den Schlüssel niemals und betten Sie ihn nicht in ein an Kunden ausgeliefertes Binärprogramm ein; bei der Ausführung über Docker übergeben Sie ihn zur Laufzeit (z. B. -e BLOCKSCOUT_PRO_API_KEY=...), anstatt ihn in das Image einzubacken.

export BLOCKSCOUT_PRO_API_KEY=proapi_your_key_here

Vom Client bereitgestellte Schlüssel (HTTP-Transports). Wenn der Server im HTTP-Modus läuft, kann ein Client seinen eigenen PRO-API-Schlüssel in einem Anfrage-Header bereitstellen – standardmäßig Blockscout-MCP-Pro-Api-Key, konfigurierbar über BLOCKSCOUT_PRO_API_KEY_HEADER (setzen Sie ihn auf eine leere Zeichenfolge, um vom Client bereitgestellte Schlüssel vollständig zu deaktivieren). Der Server liest den Schlüssel auch aus einem x-api-key-Header, für Clients, deren Headernamen auf eine feste Liste beschränkt sind (z. B. Claude Custom Connectors). Der konfigurierte Header gewinnt, wenn beide vorhanden sind; x-api-key wird nur konsultiert, wenn der konfigurierte Header fehlt oder leer ist, und das Deaktivieren vom Client bereitgestellter Schlüssel deaktiviert auch diesen. Dies funktioniert für beide HTTP-Transports gleich – MCP-über-HTTP-Toolaufrufe und die REST-API. Ein vom Client bereitgestellter Schlüssel hat Vorrang vor BLOCKSCOUT_PRO_API_KEY für diese Anfrage; wenn der Client keinen Schlüssel sendet, fällt der Server auf seinen eigenen konfigurierten Schlüssel zurück; wenn keiner vorhanden ist, schlägt die Anfrage mit dem Nicht-konfiguriert-Fehler fehl. Ein Client-Schlüssel, der vorhanden, aber fehlerhaft ist, lässt jede Anfrage, die die PRO-API benötigt, ohne Fallback fehlschlagen (der Server verwendet niemals stillschweigend seinen eigenen Schlüssel anstelle eines schlechten Client-Schlüssels); Tools, die die PRO-API nicht verwenden, sind nicht betroffen. Dies ermöglicht den Betrieb eines gemeinsamen HTTP-Servers, bei dem sich jeder Client mit seinem eigenen Schlüssel authentifiziert.

Warnung bei niedrigem Guthaben. Der Zugriff auf die PRO-API wird in Credits gemessen. Wenn das von der API gemeldete verbleibende Guthaben unter einen konfigurierbaren Schwellenwert fällt, fügt jedes Datentool seiner Antwort einen Hinweis hinzu, der die Betreiber auffordert, aufzuladen, damit der PRO-API-Zugriff für die weitere Nutzung mit hohem Volumen bereit bleibt. Der Schwellenwert wird über BLOCKSCOUT_PRO_API_LOW_CREDITS_THRESHOLD festgelegt (Standard 5000 Credits; setzen Sie ihn auf 0, um den Hinweis zu deaktivieren). Der Hinweis wird für jedes Guthaben unter dem Schwellenwert ausgelöst, einschließlich Null- und Negativguthaben. Hinweis zur PRO-API-Key-Anforderung. BLOCKSCOUT_PRO_API_KEY_REQUIRED_NOTICE enthält einen vom Betreiber konfigurierten Hinweis, den der Server als letzten Eintrag des notes-Felds von Tool-Antworten anhängt, deren Anfragen keinen eigenen (wohlgeformten) PRO-API-Key des Clients enthielten. Er dient dazu, die Migration des offiziellen öffentlichen Servers zu obligatorischen, vom Client bereitgestellten Schlüsseln anzukündigen, sodass nur die offizielle Bereitstellung ihn setzen sollte. Wenn die Variable nicht gesetzt oder leer ist (Standard), ist die Funktion vollständig deaktiviert. Community- und selbstgehostete Betreiber sollten sie leer lassen – insbesondere im Stdio-Modus, in dem Sie BLOCKSCOUT_PRO_API_KEY selbst konfigurieren und kein Anfrage-Header einen Client-Schlüssel übertragen kann, würde der Hinweis nur eine Migrationsmeldung wiederholen, die für Ihre Bereitstellung nicht gilt.

Ausführen des Servers

Der Server läuft standardmäßig im stdio-Modus:

python -m blockscout_mcp_server

HTTP-Modus (nur MCP):

Um den Server im HTTP-Streamable-Modus auszuführen (zustandslos, SSE-Antworten standardmäßig):

python -m blockscout_mcp_server --http

Sie können auch Host und Port für den HTTP-Server angeben:

python -m blockscout_mcp_server --http --http-host 0.0.0.0 --http-port 8080

Entwicklungsmodus (einfache JSON-Antworten):

Für Entwicklung und Tests mit einfachen HTTP-Clients (curl, Insomnia) können Sie einfache JSON-Antworten anstelle von SSE-Streams aktivieren:

export BLOCKSCOUT_DEV_JSON_RESPONSE=true
python -m blockscout_mcp_server --http

Hinweis: Dies deaktiviert Server-Sent Events (SSE) und Fortschrittsbenachrichtigungen. Verwenden Sie dies nur für lokale Tests und Debugging.

Tunneling mit Ngrok (Entwicklungsmodus):

Das Python-MCP-SDK erzwingt DNS-Rebinding-Schutz, der Anfragen von Ngrok-Tunneln standardmäßig blockiert. Um Tunneling für Entwicklung und Tests zu ermöglichen:

  1. Starten Sie einen Ngrok-Tunnel zu Ihrem lokalen Server:

    ngrok http 8000
    
  2. Konfigurieren Sie den zulässigen Host und Ursprung mit Ihrer Ngrok-URL:

    export BLOCKSCOUT_MCP_ALLOWED_HOSTS="your-tunnel-id.ngrok-free.app"
    export BLOCKSCOUT_MCP_ALLOWED_ORIGINS="https://your-tunnel-id.ngrok-free.app"
    python -m blockscout_mcp_server --http
    

Hinweis: Diese Einstellungen sind hauptsächlich für die Entwicklung gedacht. Wenn diese Variablen nicht gesetzt sind, wird der DNS-Rebinding-Schutz automatisch durch den Bind-Host des Servers bestimmt: aktiviert für localhost, deaktiviert für Nicht-localhost (z. B. 0.0.0.0). Wenn Ihr Host-Header einen nicht standardmäßigen Port enthält, verwenden Sie das :*-Wildcard-Suffix (z. B. "example.com:*") oder geben Sie den genauen Host:Port-Wert an.

Weitere Details zum Ngrok-Tunneling mit MCP-Servern finden Sie in der https://github.com/openai/openai-apps-sdk-examples/blob/main/README.md#testing-in-chatgpt.

HTTP-Modus mit REST-API:

Um die versionierte REST-API neben dem MCP-Endpunkt zu aktivieren, verwenden Sie das --rest-Flag (das --http erfordert).

python -m blockscout_mcp_server --http --rest

Mit benutzerdefiniertem Host und Port:

python -m blockscout_mcp_server --http --rest --http-host 0.0.0.0 --http-port 8080

CLI-Optionen:

  • --http: Aktiviert den HTTP-Streamable-Modus.
  • --http-host TEXT: Host, an den der HTTP-Server gebunden wird (Standard: 127.0.0.1).
  • --http-port INTEGER: Port für den HTTP-Server (Standard: 8000).
  • --rest: Aktiviert die REST-API (erfordert --http).

Lokales Erstellen des Docker-Images

Initialisieren Sie das gebündelte Skill-Submodul, backen Sie dessen Commit-Metadaten in den Docker-Build-Kontext ein und erstellen Sie dann das Image:

git submodule update --init --recursive agent-skills
python scripts/bake_skill_metadata.py
docker build -t ghcr.io/blockscout/mcp-server:latest .

Abrufen aus der GitHub Container Registry

Ziehen Sie das vorgefertigte Image:

docker pull ghcr.io/blockscout/mcp-server:latest

Ausführen mit Docker

HTTP-Modus (nur MCP):

Um den Docker-Container im HTTP-Modus mit Portzuordnung auszuführen:

docker run --rm -p 8000:8000 ghcr.io/blockscout/mcp-server:latest python -m blockscout_mcp_server --http --http-host 0.0.0.0

Mit benutzerdefiniertem Port:

docker run --rm -p 8080:8080 ghcr.io/blockscout/mcp-server:latest python -m blockscout_mcp_server --http --http-host 0.0.0.0 --http-port 8080

HTTP-Modus mit REST-API:

Um mit aktivierter REST-API auszuführen:

docker run --rm -p 8000:8000 ghcr.io/blockscout/mcp-server:latest python -m blockscout_mcp_server --http --rest --http-host 0.0.0.0

Hinweis: Wenn Sie im HTTP-Modus mit Docker ausführen, verwenden Sie --http-host 0.0.0.0, um an alle Schnittstellen zu binden, damit der Server von außerhalb des Containers erreichbar ist.

Mit einem Blockscout-PRO-API-Key:

Übergeben Sie den Schlüssel zur Laufzeit mit -e, anstatt ihn in das Image einzubacken (siehe Bereitstellen des PRO-API-Keys für den Server):

docker run --rm -p 8000:8000 -e BLOCKSCOUT_PRO_API_KEY=proapi_your_key_here \
  ghcr.io/blockscout/mcp-server:latest python -m blockscout_mcp_server --http --http-host 0.0.0.0

Mit Sitzungsmessung aktiviert (optional):

Die Sitzungsmessung begrenzt, wie viele Tool-Aufrufe ein Aufrufer ohne clientseitig bereitgestellten PRO-API-Key pro von __unlock_blockchain_analysis__ ausgegebenem Sitzungsbezeichner tätigen darf. Sie ist standardmäßig deaktiviert. Die Aktivierung bedeutet, ein Signing-Secret festzulegen (mindestens 32 Bytes – generieren Sie es, erfinden Sie es nicht), und erfordert den HTTP-Modus sowie einen serverseitigen PRO-API-Key (gemessene Aufrufe werden darüber an den Upstream bedient) sowie ein persistentes Volume für die Sitzungsdatenbank. Generieren Sie das Secret einmalig und speichern Sie es dauerhaft (einen Secret-Manager oder eine persistente Umgebungskonfiguration); jeder Neustart und jede erneute Bereitstellung muss denselben gespeicherten Wert übergeben:

# Once, not per start: generate the secret and keep it.
BLOCKSCOUT_SESSION_SECRET="$(python -c 'import secrets; print(secrets.token_urlsafe(32))')"

docker run --rm -p 8000:8000 \
  -v blockscout-mcp-sessions:/data \
  -e BLOCKSCOUT_SESSION_SECRET="$BLOCKSCOUT_SESSION_SECRET" \
  -e BLOCKSCOUT_SESSION_DB_PATH=/data/sessions.db \
  -e BLOCKSCOUT_PRO_API_KEY=proapi_your_key_here \
  ghcr.io/blockscout/mcp-server:latest python -m blockscout_mcp_server --http --http-host 0.0.0.0

Die meisten Bereitstellungen benötigen nichts davon: Lassen Sie BLOCKSCOUT_SESSION_SECRET ungesetzt (Standard) und es ist kein Volume erforderlich. Der Verlust des Volumes oder die Rotation des Secrets macht Live-Sitzungsbezeichner absichtlich ungültig; die Exposition ist durch die konfigurierte TTL begrenzt. Das erneute Generieren des Secrets inline bei jedem docker run ist die versehentliche Form dieser Rotation – es löscht alle Live-Bezeichner bei jedem Neustart, auch wenn das Datenbank-Volume überlebt hat. Betten Sie daher niemals den Generierungsbefehl in den Startbefehl ein. Das Wiederherstellen einer älteren Kopie der Datenbank belebt die darin aufgezeichneten Budgets wieder – nach einer historischen Wiederherstellung rotieren Sie das Secret, sofern dies nicht beabsichtigt ist. Optionale Stellschrauben: BLOCKSCOUT_SESSION_MCP_MAX_CALLS und BLOCKSCOUT_SESSION_REST_MAX_CALLS (Obergrenzen für Aufrufe pro Oberfläche über einem gemeinsamen Zähler pro Bezeichner; beide Standard 5; 0 schließt gemessenen Zugriff auf dieser Oberfläche, während die Ausgabe von Bezeichnern und die get_chains_list-Navigation offen bleiben), BLOCKSCOUT_SESSION_TTL_SECONDS (Standard 900) und BLOCKSCOUT_SESSION_SWEEP_INTERVAL_SECONDS (wie oft abgelaufene Sitzungszeilen bereinigt werden; Standard: einmal pro TTL).

Stdio-Modus: Der Standard-Stdio-Modus ist für die Verwendung mit MCP-Hosts/Clients (wie Claude Desktop, Cursor) konzipiert und ergibt keinen Sinn, direkt mit Docker ohne einen MCP-Client ausgeführt zu werden, der die Kommunikation verwaltet.

Testen mit Claude Desktop

Verwenden Sie das MCP-Bundle, um den Server mit Claude Desktop zu testen.

  1. Erstellen Sie das Bundle gemäß den Anweisungen in mcpb/README.md.
  2. Öffnen Sie Claude Desktop.
  3. Doppelklicken Sie, um die blockscout-mcp-dev.mcpb-Datei zu öffnen, um das Bundle automatisch zu installieren.
  4. Konfigurieren Sie die Blockscout-MCP-Server-URL, wenn Sie dazu aufgefordert werden (Standard: http://127.0.0.1:8000/mcp)

Datenschutz und anonyme Telemetrie

Um uns bei der Verbesserung des Blockscout-MCP-Servers zu helfen, sammeln von der Community betriebene Instanzen des Servers standardmäßig anonyme Nutzungsdaten. Dies hilft uns zu verstehen, welche Tools am beliebtesten sind, und leitet unsere Entwicklungsbemühungen.

Was wir sammeln:

  • Den Namen des aufgerufenen Tools (z. B. get_block_number).
  • Die an das Tool übergebenen Parameter (der session_id-Parameter wird vor der Übertragung durch einen Platzhalter maskiert).
  • Die Version des verwendeten Blockscout-MCP-Servers.
  • Einen einseitigen, nicht umkehrbaren Hash (SHA-256) des PRO-API-Keys, der zur Autorisierung der Anfrage verfügbar ist, sofern einer vorhanden ist. Dies ist nur ein abgeleiteter Fingerabdruck – der Schlüssel selbst wird niemals übertragen und kann nicht aus dem Hash wiederhergestellt werden.

Was wir NICHT sammeln:

  • Wir sammeln keine personenbezogenen Daten, IP-Adressen (der zentrale Server verwendet die IP des Absenders für die Geolokalisierung über Mixpanel und verwirft sie dann) oder Geheimnisse und private Schlüssel selbst. Insbesondere der PRO-API-Key wird niemals übertragen – nur der oben beschriebene einseitige, nicht umkehrbare Fingerabdruck, aus dem der Schlüssel nicht wiederhergestellt werden kann.

So deaktivieren Sie die Funktion

Sie können diese Funktion jederzeit deaktivieren, indem Sie die folgende Umgebungsvariable setzen:

export BLOCKSCOUT_DISABLE_COMMUNITY_TELEMETRY=true

Lizenz

License: Blockscout Software Licence

Dieses Projekt ist unter der Blockscout-Softwarelizenz lizenziert. Die vollständigen Bedingungen finden Sie in der Datei LICENSE.