Browser- & Screenshot-Loop
Der Client sieht das echte confBuild-Ergebnis
Im gehosteten Remote-Modus rendert standardmäßig der bereits angemeldete confBuild-Tab des Nutzers. Server-Rendering ist eine separate, ausdrückliche Option:
- Der MCP-Client speichert die gewünschte Projektversion.
- Der Client ruft
confbuild_prepare_browserauf, führt die sichere Handoff-Aktion über seine Chrome-/Browsersteuerung aus und wartet aufconnected: true. confbuild_render_projectlegt standardmäßig einen privaten Browser-Tab-Renderjob für diesen Nutzer und diese exakte Revision an.- Die confBuild-Web-App erkennt den Job nur im passenden geöffneten Projekt.
- Der Tab erfasst die Three.js-Canvas aus den angeforderten Blickrichtungen und lädt private PNGs hoch.
confbuild_get_render_resultgibt Diagnosen und native MCP-Bildblöcke an Codex oder Claude zurück.- Der MCP-Client – nicht der Server – interpretiert die Bilder und entscheidet über den nächsten Patch.
Voraussetzungen für Remote-Screenshots
- Der Browser ist mit demselben confBuild-Konto angemeldet, das den MCP per OAuth freigegeben hat.
- Das angeforderte Projekt ist unter
/e/…oder einer unterstützten Projekt-Route geöffnet. - Projekt, gespeicherte Konfiguration und Revision stimmen exakt mit dem MCP-Ziel überein.
- Editor und 3D-Szene sind vollständig geladen.
- Der Tab bleibt während des Renderjobs offen.
Eine Browser-Erweiterung, lokales Node.js, CDP oder Remote Debugging sind im Kundenmodus nicht erforderlich.
mcp-renders/<uid>/<jobId> und werden als MCP-Bildinhalt an den autorisierten Client zurückgegeben.
Asynchroner Renderablauf
Der Ablauf beginnt immer mit der Browser-Vorbereitung und verwendet anschließend asynchrone Render-Tools:
confbuild_prepare_browserliefertreuse,reload,navigateoderopen-new; der Client wiederholt den Aufruf bis zur Bestätigung.confbuild_render_projectstartet den Job und gibtrenderJobIdzurück.confbuild_get_render_resultwird mitwaitMsabgefragt, bis der Jobcompletedoderfailedist;confbuild_render_and_waitkombiniert Schritt 2 und 3.- Für mehrteilige Modelle folgt der Client den zurückgegebenen Argumenten für
confbuild_inspect_outputs. Dieser eine Job liefert den gezoomten Fokus mit transparentem Umfeld, die isolierte Ansicht, einen automatischen Mittelschnitt und X-Ray.
Bei Tragwerken werden aus realen Kontaktpaaren der Szene bis zu drei unterschiedliche Anschlussfamilien gewählt. Der Agent muss jede zurückgegebene Gruppe — etwa Fußplatte und Anker, Knotenblech, Winkel oder Bauteilknoten — nacheinander in Nahaufnahme auf Sitzflächen, Verbindungsmittel, Freiräume, Endzuschnitte und einen durchgängigen Lastpfad prüfen. Eine reine Hallen- oder Rahmenübersicht genügt nicht; Detailbilder anderer Bauteile erfüllen das Abschluss-Gate ebenfalls nicht.
Beispiel:
{
"editSessionId": "edit-…",
"views": ["default", "right", "front", "left"],
"rendererMode": "browser-tab",
"timeoutMs": 120000
}
Der Server rendert ausschließlich gespeicherte Daten. Eine Edit-Session mit ungespeicherten Änderungen muss zuerst validiert und committet werden.
browser-tab ist der Standard, und es gibt keinen automatischen Wechsel auf Server-Rechenleistung. Nur nach ausdrücklicher Nutzeranforderung sind rendererMode: "server-headless" und serverRenderingExplicitlyRequested: true zulässig; auch dann bleibt die Browser-Verbindung Pflicht.
Zurückgegebene Ansichten
Bis zu sieben PNGs sind möglich; der Standard sind vier:
default: deterministische perspektivische Standardansicht;right: Ansicht von rechts;front: frontale Ansicht;left: Ansicht von links.
Für die Richtungsansichten ermittelt der Browser die sichtbaren Modellgrenzen, setzt Kamera und Orbit-Ziel auf das Modell und stellt danach die ursprüngliche Kamera wieder her. Es handelt sich um visuelle Perspektiven, nicht um garantiert orthogonale CAD-Projektionen oder Messnachweise.
Die an Codex oder Claude zurückgegebenen PNG-Vorschauen behalten ihr Seitenverhältnis und sind auf maximal 960 × 640 Pixel begrenzt. Das Ergebnis verschachtelt für jede Ansicht eine Beschriftung und den nativen MCP-Bildblock in der richtigen Reihenfolge. Die Beschriftung nennt Render-Iteration, Ansicht, Ganzmodell- oder Detailkontext, Projekt und Auflösung; presentation.renderIteration liefert dieselbe Iterationsnummer strukturiert. presentation nennt außerdem verfügbare, zurückgegebene und ausgelassene Bilder; ausgelassene Bilder müssen vor der visuellen Abnahme nachgeladen werden.
Der Vierbild-Inspektionssatz ist an die exakte Projekt- und Konfigurationsrevision gebunden. Nach einer Reparatur muss er für dieselben Output-IDs erneut laufen; anschließend folgt wieder der ungescopte Abschlussrender mit default, right, front und left.
Sichtbarer MCP-Status im Editor
Bei realer MCP-Aktivität zeigt die App global ein kompaktes Badge — auch im Dashboard während der Browser-Vorbereitung. Es unterscheidet aktiv, Projekt-Tab verbinden, wartet auf die 3D-Ansicht, Vorschau wird aufgenommen, Vorschau wird gesendet, gesendet und fehlgeschlagen. Auf Projektseiten bleibt die Anzeige projektbezogen; ohne aktuelle Aktivität oder passenden Renderjob bleibt sie ausgeblendet.
Der lokale Verlauf hält bis zu 100 Schritte in einem kompakten Bereich mit Scrollbar und Pfeil zu älteren Einträgen. Ein Renderauftrag erscheint als eine Iterationsgalerie mit allen verfügbaren Ansichts-Thumbnails; Aufnahme-/Uploadphasen und aufeinanderfolgende technische Leseaufrufe sind standardmäßig eingeklappt. Auch eine aktuell laufende technische Unteraktion bleibt unter dem sichtbaren Hauptschritt einklappbar. Mouse-over oder Tastaturfokus öffnet eine größere Vorschau mit Ansicht, Auflösung, Quelldimension, Dateigröße, Client und gemeldetem Modell. Der projektbezogene Textverlauf überlebt Reloads bis zu 24 Stunden in sessionStorage; Fehlertext, Reasoning, Tab-IDs, Bildbytes und Blob-URLs werden nicht persistiert. Die UI-Bilder bleiben ausschließlich im aktuellen Browser-Tab und werden beim Wechsel von Route oder Nutzer wieder freigegeben.
Diagnosedaten
Der Remote-Browserkanal liefert derzeit unter anderem:
| Feld | Aussage |
|---|---|
meshCount / visibleMeshCount |
Anzahl aller beziehungsweise sichtbarer Three.js-Meshes |
uniqueOutputIds |
Anzahl erkannter eindeutiger confBuild-Ausgaben |
page.url / page.title |
Tatsächlich erfasste Projektseite |
canvasWidth / canvasHeight |
Auflösung der erfassten Canvas |
width / height |
Auflösung der zurückgegebenen, verkleinerten Vorschau |
originalWidth / originalHeight |
ursprüngliche Canvas-Auflösung vor der Verkleinerung |
browserErrors |
Vom Browserkanal gemeldete Fehler |
geometry |
Näherungsweises Geometrie-Audit: BVH-bestätigte Kollisionspaare, AABB-verdächtige Überlappungen, losgelöste Teile, Ausreißer und Modellgrenzen |
geometry.intersectionFindings |
Exakte Überlappungspaare des Engine-Preflights (OBB-SAT/CSG) — jedes mit konkretem Reparaturvorschlag: suggestion nennt das nachgebende Teil und die einzutragende trimby=-Zelle. Direkt anwenden statt Überlappungen aus Screenshots abzuleiten |
iterationDelta |
Mesh-/Output-/Kollisions-/Ablösungs-/Bounds-Deltas gegenüber dem vorherigen abgeschlossenen Render desselben Projekts |
Captures laufen im Agent-Capture-Modus: Selektionskonturen, Gizmos, Raster und Mess-Overlays werden für die Aufnahme ausgeblendet (und danach wiederhergestellt), und jede Ansicht — auch default — verwendet ein deterministisches Kamera-Preset. Screenshots hängen damit nicht mehr davon ab, wo der Nutzer die Kamera zuletzt stehen ließ.
Diagnosen ergänzen das Bild, ersetzen aber keine visuelle Prüfung. Zuerst die Geometrie-Funde lesen, dann in den Ansichten bestätigen: Sie sind näherungsweise Evidenz, keine Urteile.
Visuelle Prüfliste für den Client
Der Agent sollte jedes Bild prüfen:
- Entspricht die Silhouette dem Auftrag?
- Sind alle geforderten Hauptbaugruppen vorhanden?
- Sind Maßstab und Proportionen plausibel?
- Treffen Bauteile an vorgesehenen Schnittstellen zusammen?
- Sind unbeabsichtigte Kollisionen oder Doppelgeometrien sichtbar?
- Gibt es schwebende oder weit außerhalb liegende Teile?
- Sind sichtbare Muster, Abstände und Parameter konsistent?
- Melden Browser oder Szene Fehler?
„Visuell geprüft“ ist erst zulässig, wenn der finale Render abgeschlossen, jedes Bild sichtbar in Codex/Claude dargestellt und pro Ansicht konkret bewertet wurde.
Wenn kein Screenshot zurückkommt
Prüfen Sie in dieser Reihenfolge:
confbuild_prepare_browsererneut aufrufen und die zurückgegebene Aktion ausführen: Ist exakt die angeforderte Revision verbunden?- Sind Browser und MCP mit demselben confBuild-Konto verbunden?
- Ist die 3D-Szene vollständig geladen?
- Bleibt der Tab geöffnet und aktiv genug, um Canvas-Frames zu rendern?
- Wird derselbe Job gepollt, statt wiederholt neue Jobs zu starten?
Nach Ablauf des Timeouts meldet der Server RENDER_FAILED, statt auf einen anderen Tab oder Benutzer zuzugreifen.
Mehrere geöffnete Tabs
Sind mehrere passende Tabs geöffnet, wählt eine transaktionale Claim-Lease genau einen für den Job. Tabs anderer Projekte/Konfigurationen und schmutzige veraltete Tabs werden durch die Handoff-Logik nicht überschrieben.
Lokaler Entwicklermodus
Der lokale STDIO-Server unterstützt zusätzlich auto, headed, headless und einen bewusst über CONFBUILD_MCP_CDP_URL freigegebenen attached-Modus. Diese Playwright-/CDP-Modi sind Entwicklungs- und CI-Funktionen; Kunden mit dem gehosteten MCP verwenden den Browser-Tab-Kanal.
Nächster Schritt
Die Eingaben der Render-Tools stehen in der Tool-Referenz. Fehler behandelt Sicherheit & Fehlerbehebung.