Mit Ihrem Agenten bauen (MCP)
Das ist der zentrale Arbeitsablauf: Das Dashboard wird in Ihrem eigenen Harness gebaut —
Claude Code, Codex, Cursor, jeder MCP-Client — und alles, wovon es abhängt, wird bei
Vibedasher betrieben. Sie bauen nicht innerhalb unserer App. Ihr Agent arbeitet lokal, und
der vibedasher-mcp-Server gibt ihm Werkzeuge für die betriebene Plattform — Datensätze,
die Query-Engine, Dashboard-Entwürfe und -Builds, Veröffentlichung, Teilen,
Zugriffsrechte — sodass die zustandsbehaftete Hälfte (Verbindungen, Datensätze, Pipelines,
Aktualisierungen, Governance, Hosting) dort bleibt, wo sie betreut und verwaltet wird,
während der Dashboard-Code in der Hand Ihres Agenten bleibt.
Was gehostet wird, ist ein clientseitig gerendertes Bundle. Ihr Dashboard ist React, das im
Browser des Besuchers über per SQL bereitgestellte Daten läuft. Nichts von Ihrem Servercode
wird hier ausgeführt — keine API-Routen, kein serverseitiges Rendering, keine Loader, keine
Hintergrund-Worker — ein serverseitig gerendertes Framework kann daher so, wie es ist, nicht
gehostet werden: Next.js mit beiden Routern, Remix, SvelteKit, Astro, Nuxt. Es gibt zur
Build-Zeit auch kein npm install; Bibliotheken kommen aus einer festgelegten Liste, und React
ist das einzige Framework darauf.
Dieser Stack wird nicht abgelehnt, er wird umgeleitet. Zwei Türen, beide offen: Behalten Sie Ihren eigenen Server und holen Sie die Daten dieses Kontos mit dem SDK dorthin, das die Installation Ihnen schon mitgegeben hat, oder bauen Sie das Dashboard hier und werfen Sie es aus, um es selbst zu hosten. In beiden Fällen bleiben die Verbindungen, Datensätze, Aktualisierungen, Governance und die Query-Engine auf dieser Seite betreut.
Sie haben schon einen Baum? check_viz_tree(src_dir=<absolute path>) beantwortet das statisch,
gegen Ihre echten Dateien, bevor Sie einen Build verbrauchen.
Installieren und anmelden
pip install 'vibedasher-mcp>=0.6.0'
vibedasher login
vibedasher login öffnet Ihren Browser, Sie bestätigen die Sitzung, und Sie sind fertig.
Der Refresh-Token wird in Ihrem Betriebssystem-Schlüsselbund gespeichert — oder, auf einer
Maschine ohne Schlüsselbund-Backend, in einer 0600-Datei unter ~/.vibedasher/. Kein
Schlüssel zum Erzeugen, in eine Konfigurationsdatei zu kopieren oder zu rotieren. Der
Unterbefehl login benötigt Version 0.6.0 oder höher; frühere Releases haben ihn nicht.
Zwei weitere Unterbefehle gibt es sonst nicht:
vibedasher whoami # das angemeldete Konto, den Benutzer und die Region sowie wann die erneute Zustimmung fällig ist
vibedasher logout # die Sitzung dieser Maschine widerrufen und vergessen
Standardmäßig meldet login Sie bei eu-central-1 an; übergeben Sie --region für eine
andere Region und --timeout, um zu ändern, wie lange auf den Callback gewartet wird
(180 s).
Wenn Ihr Terminal keinen Browser öffnen kann — WSL, eine X-lose Desktop-Sitzung, ein
Terminal ohne Standard-Handler —, verwenden Sie vibedasher login --no-browser. Es gibt die
URL aus, statt sie zu öffnen, und wartet auf denselben Callback. Beachten Sie, dass der
Callback-Listener 127.0.0.1 auf einem Port bindet, den das Betriebssystem beim Verbinden
wählt, sodass der Browser, in den Sie die URL einfügen, auf derselben Maschine laufen
muss. Sich von einem Laptop aus für eine entfernte Maschine anzumelden, ist kein Weg, den
login unterstützt — für eine Maschine, die Sie nur über SSH erreichen, verwenden Sie einen
API-Schlüssel (unten).
Registrieren Sie dann den Server. Mit Claude Code:
claude mcp add vibedasher --env VIBEDASHER_REGION=eu-central-1 -- vibedasher-mcp
Oder in jeder MCP-Client-Konfiguration:
{
"mcpServers": {
"vibedasher": {
"command": "vibedasher-mcp",
"env": { "VIBEDASHER_REGION": "eu-central-1" }
}
}
}
Beachten Sie: vibedasher-mcp ist der Server-Einstiegspunkt, den Ihr MCP-Client startet;
vibedasher ist die CLI, die Sie selbst ausführen. Der Server übernimmt die Sitzung, die
vibedasher login gespeichert hat — es gibt kein Zugangsdatum im Konfigurationsblock.
Der Server spricht nur mit der öffentlichen, gemessenen API — derselben Oberfläche wie die SDKs. Nichts über einen Seitenkanal, und kein Zugangsdatum wird jemals in Werkzeugergebnissen zurückgegeben.
Headless und CI — einen API-Schlüssel verwenden
Ein Build-Runner, eine Cron-Maschine, ein Container: kein Ort, an dem ein Browser sich
öffnen könnte, und niemand, der auf „Zustimmen" klicken kann. Dort authentifizieren Sie sich
stattdessen mit einem API-Schlüssel. Erzeugen Sie einen in der App unter
cloud.vibedasher.com (Einstellungen → API-Schlüssel) —
die Schlüsselerstellung ist bewusst nur per Sitzung möglich, also eine Browser-Aktion, kein
API-Aufruf; siehe Authentifizierung — und legen Sie ihn in den
env-Block des Servers:
{
"mcpServers": {
"vibedasher": {
"command": "vibedasher-mcp",
"env": {
"VIBEDASHER_API_KEY": "<your-api-key>",
"VIBEDASHER_REGION": "eu-central-1"
}
}
}
}
VIBEDASHER_API_KEY hat Vorrang, wenn es gesetzt ist: Der Server verwendet den Schlüssel
und ignoriert jede gespeicherte Login-Sitzung. Behandeln Sie den Schlüssel wie ein
Passwort — eine Umgebungsvariable oder einen Secret-Store, niemals die Versionskontrolle.
Auf Ihrer eigenen Maschine bevorzugen Sie vibedasher login; dann liegt kein
langlebiges Geheimnis auf der Festplatte, das durchsickern oder rotiert werden müsste.
Der Kreislauf, den Ihr Agent durchläuft
Alles Folgende ist Ihr Agent, der das Dashboard baut — der Plattformzustand, gegen den er baut (Verbindungen, Datensätze, Aktualisierungen, Governance), wird einmal eingerichtet und bei Vibedasher betrieben, sodass jeder Durchlauf des Kreislaufs ihn bereits vorfindet.
- Daten hereinholen —
upload_dataset_from_file(name, csv_path)für eine Datei auf der Festplatte (upload_datasetnimmt das CSV stattdessen inline, was für jede Zeile Tokens kostet), odercreate_dataset_from_connectiongegen eine verbundene Datenquelle. Jeder Datensatz erhält einencleanSQLName-Alias — dieser Alias ist der Tabellenname in SQL, niemals ein physischer Tabellenname. - Erkunden —
run_query(sql, dataset_ids): schreibgeschützte SELECT-Abfragen über Datensätze hinweg, typisierte Spalten und Zeilen zurück. - Erstellen & bauen —
create_viz(name, dataset_ids), dannpush_viz_files(viz_id, files)mit einerApp.tsxim Wurzelverzeichnis, dannbuild_viz→get_build_status(build_id), bis das Bundle kompiliert. Sie haben schon einen React-Baum?check_viz_tree(src_dir=...)nennt zuerst jede nötige Änderung, statisch, ohne einen Build zu verbrauchen. - Veröffentlichen —
publish_viz(viz_id)befördert den Entwurf zu der Version, die Betrachter sehen, undshare_viz(viz_id)liefert den Link zum Weitergeben.build_vizallein veröffentlicht nicht. - Verifizieren —
render_probe(viz_id)öffnet das veröffentlichte Dashboard in einem echten Browser und berichtet, was tatsächlich gezeichnet wurde: wie viele Kacheln gerendert wurden, die Kennzahlen wörtlich zurückgelesen, und jeden Konsolenfehler. Ein grüner Build bedeutet, dass der Code kompiliert hat — nicht, dass das Diagramm zeigt, was sein Titel behauptet, und ein Diagramm, das nie Daten erhalten hat, hinterlässt eine formatfüllende einfarbige Fläche, bei der jede zählbasierte Prüfung durchgeht. - Iterieren —
eject_viz, um den vollständigen React-Quellcode zu holen, lokal zu bearbeiten,push_viz_files, um zurück in den Entwurfs-Branch zu committen, neu zu bauen und erneut zu veröffentlichen.
Ihr Agent verfügt auch über Werkzeuge für Ordner, Gruppen, Benutzer und Zugriffsrechte
(grant_access / revoke_access), sodass Governance ebenfalls skriptfähig ist — siehe
Veröffentlichen und teilen.
Auswerfen — der Code bleibt Ihrer
Die Veröffentlichung bei Vibedasher ist der normale Abschluss des Kreislaufs — das ist es,
was das Dashboard gehostet, verwaltet und an betreute Daten angebunden hält. Aber der Code
selbst ist reines React und SQL und bleibt Ihrer: eject_viz übergibt Ihrem Agenten den
vollständigen lauffähigen Quellbaum (Komponenten, package.json, Tailwind-Konfiguration)
sowie ein Verdrahtungsmanifest, und eject_instructions erklärt, wie man ihn nativ in Ihrer
eigenen App neu aufbaut — Abfragen laufen über das SDK gegen Ihre Vibedasher-Datensätze,
Hosting vollständig auf Ihrer Seite. Große Bäume werden auf die Festplatte geliefert
(out_dir=...) oder seitenweise; folgen Sie delivery.pendingPaths, bis es leer ist, bevor
Sie den Baum als vollständig betrachten.
Eine Entscheidung darin sollten Sie bewusst treffen, denn sie ist die Hälfte, die Sie nachträglich nicht mehr ändern können. Ein Dashboard, das aus einer öffentlichen und veröffentlichten Visualisierung ausgeworfen wurde, bringt eine Spur ohne Zugangsdaten mit: Es lädt einen Parquet-Auszug herunter und führt jede Abfrage im Browser des Besuchers aus — ohne Schlüssel, ohne Token und ohne eigenes Backend. Das heißt auch, dass jeder Besucher jede Zeile des Datensatzes erhält und keinem Betrachter weniger Zeilen gezeigt werden können als einem anderen — siehe Wer sieht was für die beiden Verdrahtungen, die einen Betrachter einschränken können, und entscheiden Sie sich zwischen ihnen, bevor Sie bauen.
Die vollständige Geschichte — die drei Eject-Aufrufe, der Paging-Vertrag und die zwei aktiven Prop-Generationen — steht in Ihr Dashboard auswerfen.
Als Nächstes
- Die Wasm-Abfragespur — die Datenspur ohne Zugangsdaten im Detail, und was sie im Gegenzug aufgibt.
- Ihr Dashboard auswerfen — den Code herausnehmen und die Daten wieder anbinden.
Die App unter cloud.vibedasher.com arbeitet mit denselben Dashboards und Entwürfen wie Ihr Agent, sodass ein Mensch in der Benutzeroberfläche prüfen und von dort veröffentlichen kann — aber der oben beschriebene Harness-Kreislauf ist der Weg, für den wir entwickeln und den wir dokumentieren.