marimo MCP Server

Offizieller experimenteller, lokaler MCP-Zugang zu laufenden marimo-Notebook-Sitzungen.

Beschreibung

Der marimo MCP Server ist die von marimo dokumentierte, derzeit experimentelle Schnittstelle für externe MCP-kompatible Anwendungen. Sie wird nicht als eigenständiger SaaS-Endpunkt betrieben: Beim Start eines lokalen marimo-Notebooks mit --mcp stellt der laufende marimo-Prozess einen HTTP-Endpunkt bereit. Ein verbundener Client wie Claude Code oder Cursor kann darüber die AI-Tools von marimo für aktive Notebook-Sitzungen ansprechen. Die offizielle Dokumentation bezeichnet die Funktion ausdrücklich als experimentell und in aktiver Entwicklung; Tooldefinitionen, Verfügbarkeit und APIs können sich ändern. Für einen Einsatz mit vertraulichen Daten ist das ein Grund, Version, Client und Konfiguration vor jedem produktiven Rollout erneut zu prüfen.

Notebook-Einsicht statt Notebook-Ausführung

Der MCP-Server ist für die niedrigschwellige, lesende Interaktion mit einem Live-Notebook gedacht. Er kann aktive Notebooks samt Sitzungs-ID und Dateipfad auflisten, die Zellstruktur ansehen, vollständigen Zellcode sowie Laufzeitdaten abrufen, Ausgaben untersuchen, Abhängigkeiten nachvollziehen, Variablen und Tabellenmetadaten ansehen und Fehler oder Lint-Befunde zusammenfassen. Das hilft bei Debugging, Datenanalyse, Code-Review und der Orientierung in reaktiven Python-Notebooks. Es ist aber nicht dasselbe wie Notebook-Ausführung: marimo dokumentiert run_stale_cells, Notebook-Editieren und Code-Mode-Ausführung für seine eigene Chat-Oberfläche, nicht als freigegebene MCP-Schreiboberfläche. Der MCP-Leitfaden beschreibt den externen Server ausdrücklich als niedrigschwellige read-only tools und verweist für einen Agenten, der ein Live-Notebook steuern soll, auf marimo pair.

Daraus folgt eine wichtige Grenze: Ein Modell kann Code, Variablen, Tabellenmetadaten, Fehlertexte und Zell-Ausgaben analysieren und daraus Änderungen vorschlagen, soll über diesen Endpoint aber keine Zellen ausführen oder ändern. Prüfe Vorschläge im Notebook und im Versionskontrollsystem separat. Auch rein lesende Tool-Ergebnisse können sensible Forschungsdaten, personenbezogene Werte, Zugangsdaten in Outputs, interne Dateipfade oder proprietären Python-Code enthalten. Beschränke daher die gestarteten Notebooks und Daten auf den minimal nötigen Testumfang.

Lokaler HTTP-Endpunkt und Netzwerkgrenze

Die offizielle Anleitung zeigt etwa uv run --with="marimo[mcp]" marimo edit notebook.py --mcp. Für lokale Entwicklung kann zusätzlich --no-token verwendet werden; marimo warnt jedoch, dass dieses Flag die Authentifizierung entfernt und in Produktionsumgebungen nicht verwendet werden soll. Der Endpoint liegt je nach marimo-Port unter http://localhost:PORT/mcp/server; bei aktivierter Authentifizierung muss der Client den dokumentierten Access-Token mitführen. Ein lokaler Prozess ist kein Synonym für eine sichere, automatisch private Schnittstelle. Wer Host, Port oder einen Reverse Proxy nach außen veröffentlicht, schafft einen Netzwerkzugang zu den Notebook-Tools.

marimo aktiviert DNS-Rebinding-Schutz und prüft eingehende Host-Header. --mcp-allow-remote schaltet diese Prüfung für Proxies, Gateways oder eigene Domains ab. Das ist keine harmlose Komfortoption: Remote-Freigabe nur mit einem authentifizierten Client, restriktiver Firewall- und Bind-Konfiguration, TLS am passenden Rand und einer nachvollziehbaren Vertrauensgrenze einsetzen. Nicht --no-token und --mcp-allow-remote kombinieren, um einen schnell erreichbaren Endpoint zu erhalten. Für einen persönlichen Test bleibt localhost mit Authentifizierung die kleinste Angriffsfläche.

Code, Daten, Prompt Injection und Modellpfad

Zellcode, Markdown, Tabellenwerte, HTML-Ausgaben, Tracebacks und Dateipfade sind untrusted content. Sie können irreführende Anweisungen oder Prompt Injection enthalten, beispielsweise Aufforderungen, Regeln zu ignorieren, lokale Geheimnisse auszulesen oder weitere Tools zu verwenden. Der Client oder Agent darf solche Inhalte ausschließlich als Daten behandeln. Toolrechte begrenzen, nur benötigte Sitzungen abfragen, Quellen und Codeänderungen menschlich prüfen und keine eingebettete Notebook-Anweisung als Berechtigung werten. Ein read-only MCP-Server schützt zudem nicht vor einem Client, der parallel Shell-, Git- oder Schreibwerkzeuge besitzt.

Der Datenpfad endet nicht automatisch beim lokalen marimo-Prozess. marimo liefert Toolantworten an den verbundenen MCP-Client; dieser kann sie in Logs, Telemetrie oder in den Kontext eines lokalen oder gehosteten Modellanbieters geben. Lokales Notebook und lokaler Endpoint bedeuten daher nicht zwangsläufig lokale Modellverarbeitung. Kläre Client, Modellanbieter, Aufbewahrung, Trainingsoptionen, Vertrag und regionale Verarbeitung, bevor Notebookinhalte übertragen werden. Der öffentliche Quellcode steht unter Apache-2.0. Die GitHub-API meldete am 08.09.2026 exakt 22.685 Sterne für marimo-team/marimo; diese Zahl beschreibt das gesamte marimo-Monorepo einschließlich Notebook-Plattform, nicht ausschließlich den MCP-Server, und ist kein Sicherheits- oder Qualitätsnachweis.

FAQ

Kann ein externer MCP-Client Notebook-Zellen ausführen? Der MCP-Leitfaden beschreibt den externen Server als Zugang zu niedrigschwelligen, lesenden Tools. Ausführung und Bearbeitung sind keine als MCP-Serverfunktion dokumentierte Freigabe.

Wann ist --no-token akzeptabel? Laut marimo nur für lokale Entwicklung. Für einen erreichbaren oder produktiven Endpoint Authentifizierung eingeschaltet lassen.

Bleiben Daten wegen localhost beim Modell lokal? Nicht automatisch. Der MCP-Client kann Toolantworten an seinen gewählten Modellanbieter, seine Logs oder Telemetrie weitergeben.

Voraussetzungen

Python-Umgebung mit marimo und den MCP-Extras, ein laufendes marimo-Notebook, ein MCP-kompatibler Client sowie lokaler Zugriff auf den marimo-HTTP-Port.

Installationsanleitung

Notebook mit uv run --with="marimo[mcp]" marimo edit notebook.py --mcp starten. Authentifizierung eingeschaltet lassen, den angezeigten Port ermitteln und den Client mit http://localhost:PORT/mcp/server konfigurieren. In Claude Code claude mcp add --transport http marimo http://localhost:PORT/mcp/server verwenden. Nur für einen lokalen Entwicklungstest darf --no-token ergänzt werden.

uv run --with="marimo[mcp]" marimo edit notebook.py --mcp

Authentifizierung

marimo verwendet einen Access-Token, sofern --no-token nicht gesetzt ist. Das Abschalten der Authentifizierung ist laut offizieller Anleitung ausschließlich für lokale Entwicklung gedacht.

Benötigte Zugriffsrechte

Lesender Zugriff auf aktive Notebook-Sitzungen, Zellcode, Laufzeitdaten, Ausgaben, Abhängigkeiten, Variablen, Tabellenmetadaten sowie Fehler- und Lint-Informationen. Notebook-Ausführung und Bearbeitung sind nicht als externe MCP-Schreibfunktion dokumentiert.

Übertragene oder gespeicherte Daten

marimo sendet angeforderte Notebook-Informationen an den MCP-Client. Dieser kann Ergebnisse in Logs, Telemetrie oder an einen lokalen beziehungsweise gehosteten Modellanbieter weitergeben; localhost begrenzt diesen nachgelagerten Pfad nicht automatisch.

Sicherheitsrisiken

Zellcode, Ausgaben, Daten und Fehlertexte können sensible Informationen oder Prompt Injection enthalten. Risiken entstehen außerdem durch --no-token, Remote-Exposition und einen Client mit zusätzlichen Schreibwerkzeugen. Authentifizierung, localhost, least privilege und menschliche Prüfung beibehalten.

Lizenz und Kosten

Lizenz
Apache-2.0 (marimo monorepo)
Kosten
kostenlos

Der marimo-Quellcode steht unter Apache-2.0. Infrastruktur, Modellanbieter und optionale Dienste können eigene Bedingungen haben; diese vor dem Einsatz direkt beim jeweiligen Betreiber prüfen.

Alternativen

Noch nicht erfasst.

Auf einen Blick

Anbieter
marimo
Status
Offizieller Server
Betriebsart
Lokal
Aktuelle Version
0.24.0
GitHub-Sterne
22,917
Zuletzt geprüft
08.09.2026

Repository und Dokumentation

Kategorien

Unterstützte Clients