AX Code holen · KostenlosDokumentation

Diese Seite ist eine Übersetzung der englischen Dokumentation. Befehle, Bezeichner und Beispiele bleiben unverändert. Runtime 7.24.4 · SDK 2.6.7. Englische Fassung

WebMCP-Browserbrücke

Status: Experimentell Umfang: öffentlich, aktueller Stand Zuletzt geprüft: 2026-10-10 Verantwortlich: Betreuer von AX Code

Die WebMCP-Brücke lässt den Agenten Seiten in einem isolierten Chrome-Fenster öffnen, lesen und (optional) darauf handeln. sie ist experimentell, standardmäßig aus und benötigt Chrome 150 oder neuer.

WebMCP ist ein vorgeschlagener Webstandard. Eine Seite kann strukturierte Tools registrieren — einen Namen, eine Beschreibung und ein Eingabeschema —, damit ein Agent diese Aktionen direkt aufrufen kann. AX Code nutzt Tools, die eine Seite registriert, und kann die Seite selbst auch lesen und darauf handeln.

Codex und ChatGPT Work dokumentieren die Variante desselben Standards in ihrem eingebauten Browser als Website-Tools. Diese Seite zeigt, wie deren Desktop-App WebMCP einschaltet, wie ein Besucher die Tools einer Website prüft und wie ein Website-Autor ein Tool registriert. Die folgenden Schritte gelten für AX Code.

Mit Chrome aktivieren

  1. Installieren Sie Google Chrome 150 oder neuer. Chromium mit derselben Hauptversion funktioniert ebenfalls. AX Code startet ein eigenes Chrome-Fenster mit einem frischen Profil und lässt ein bereits geöffnetes Chrome-Fenster unberührt.
  2. Starten Sie die Terminaloberfläche mit ax-code.
  3. Klicken Sie auf den Chip WebMCP in der Fußzeile der Seitenleiste oder auf denselben Chip in der Fußzeile der Start-Eingabe, oder führen Sie /webmcp aus. Der Klick oder der Befehl ist die Einwilligung. Vorher startet kein Browser. AX Code prüft zuerst, ohne einen Browser zu starten, ob Chrome 150 oder neuer an den üblichen Orten installiert ist, und warnt Sie, falls nicht. Die Prüfung ist ein Hinweis und blockiert den Versuch nie. Ihre Wahl wird in der Benutzerkonfiguration gespeichert, sodass die Brücke beim nächsten Start ohne weiteren Klick wieder aktiv ist.
  4. AX Code öffnet dieses isolierte Fenster mit aktivierter WebMCP-Funktion (--enable-features=WebMCP). Das Fenster enthält keine Anmeldungen, bis Sie sich dort von Hand anmelden.
  5. Bitten Sie den Agenten, eine Seite zu öffnen. Mit dem Produktstandard ist die Navigation uneingeschränkt. Eine konfigurierte oder verwaltete Origin-Liste grenzt sie ein.
  6. Klicken Sie erneut auf den Chip, um die Brücke auszuschalten. Das beendet vorübergehende Sitzungsfreigaben; gespeicherte Genehmigungen bleiben, bis Sie sie in den MCP-Einstellungen widerrufen.

Der Chip zeigt [act], solange die Interaktionsstufe aktiv ist. Der Produktstandard enthält diese Stufe. Um sie auszuschalten, setzen Sie interact im Profil webmcp des Eintrags auf false. Ein früher gespeicherter Eintrag behält die Stufen, die er hatte.

ax-code mcp webmcp gibt einen Konfigurationsausschnitt aus. Es installiert kein Paket, verbindet keinen Server und schreibt keine Datei. Fügen Sie --interact hinzu, um einen Eintrag mit aktiver Interaktionsstufe auszugeben, oder --executable-path /absolute/path/to/chrome, um eine bestimmte Chrome-150+-Binärdatei zu benennen. Wenn dieser Pfad gesetzt ist, prüft AX Code die Hauptversion der Binärdatei vor dem Start.

Tools in einem selbst geöffneten Chrome-Fenster

Das isolierte Fenster oben hat WebMCP bereits aktiviert. Um Seiten-Tools im Chrome-Profil auszuprobieren, das Sie beim Entwickeln einer Website nutzen, folgen Sie der WebMCP-Anleitung von Chrome:

  1. Öffnen Sie chrome://flags/#enable-webmcp-testing.
  2. Setzen Sie das Flag auf Enabled.
  3. Starten Sie Chrome neu.

Dieses Flag gilt für das Chrome-Profil, das Sie geöffnet haben. Die AX-Code-Brücke startet weiterhin über den Chip.

Prompt-Hinweis

Solange die Brücke aus ist, zeigt ein Prompt, der eine URL oder einen lokalen Server nennt (zum Beispiel localhost:3000), einen einzeiligen Hinweis auf den Chip und /webmcp. Er erscheint höchstens einmal je Sitzung und insgesamt dreimal und ändert nie, was an den Agenten gesendet wird.

Was der Agent tun kann

Stufe Tools Genehmigung
Seiten Seiten auflisten, öffnen, navigieren und schließen; Tools ausführen, die eine Seite über WebMCP registriert jeder Aufruf, sofern kein unterstützter Umfang gespeichert wurde
Lesen Seiten-Snapshot, Screenshot, Konsole, Anfrage-Metadaten eine Freigabe je Origin und Sitzung oder eine gespeicherte Lesegenehmigung
Interaktion klicken, schweben, warten, ausfüllen, Formular ausfüllen, Taste drücken, Dialoge beantworten siehe unten

Seiteninhalt ist nicht vertrauenswürdig: Eine Seite kann versuchen, den Agenten zu lenken. Die Ausgabe ist mit ihrem Origin gekennzeichnet und in der Größe begrenzt.

Eine Genehmigung speichern

Geeignete Prompts bieten Zur WebMCP-Zulassungsliste hinzufügen mit rotem Hintergrund. Wählen Sie den Eintrag, prüfen Sie den Umfang und wählen Sie dann Hinzufügen und zulassen. Gespeicherte Genehmigungen gelten für dieses Projekt auf diesem Rechner und überdauern Browser-Wiederverbindungen sowie Neustarts von AX Code.

  • Das Auflisten von Seiten genehmigt list_pages für den AX-Code-Browser, einschließlich Titel und URLs aller offenen Origins. Seiteninhalt wird dadurch nicht genehmigt.
  • Die Navigation genehmigt das Öffnen oder Navigieren zu genau einem Origin.
  • Lesen genehmigt Snapshots, Screenshots sowie Konsolen- und Netzwerk-Metadaten für genau einen Origin. Andere Origins und Ports brauchen eine eigene Genehmigung.
  • Schließen genehmigt das Schließen jeder Seite, die sich gerade auf genau einem Origin befindet, einschließlich Seiten mit ungespeicherten Änderungen. Das ist eine eigene Wahl: Navigation und Lesen gewähren sie nicht. Der Ziel-Origin wird vor dem Schließen erneut geprüft.

Nach der ersten Lesegenehmigung setzt AX Code dieses Lesen im selben Aufruf fort, nachdem die Seite erneut geprüft wurde. Eine Änderung der Seite oder der Brücke stoppt den Aufruf und verlangt ein neues Lesen. Eine fehlgeschlagene Browseroperation wird nicht wiederholt.

Navigationsbeschränkungen und Administratorrichtlinien gelten weiterhin. Das Speichern einer Genehmigung bearbeitet allowedOrigins nicht. Tippen, folgenreiche Klicks, Dialoge und seitenregistrierte Tools behalten ihre bestehenden Genehmigungen. Einmal zulassen bleibt vorübergehend; der Countdown speichert nie eine dauerhafte Genehmigung.

Wählen Sie den Link WebMCP-Zulassungsliste neben dem WebMCP-Chip (Fußzeile der Sitzungsseitenleiste und Fußzeile der Start-Eingabe), führen Sie /webmcp-allowlist aus oder öffnen Sie /mcp, wählen Sie die Brücke und drücken Sie Ctrl+G. Doppelklicken Sie einen Eintrag (oder drücken Sie zweimal die Eingabetaste), um ihn zu widerrufen. Die erste Aktivierung markiert die Zeile, eine zweite innerhalb weniger Sekunden bestätigt, sodass ein einzelner Klick nie widerruft. Die Löschzeile widerruft alle gespeicherten Genehmigungen dieser Brücke in diesem Projekt auf dieselbe Weise. Lange Listen lassen sich scrollen. Drücken Sie Escape oder klicken Sie außerhalb des Panels, um es zu schließen.

Das Suchfeld fügt ebenfalls Genehmigungen hinzu. Geben Sie einen genauen Origin https:// (oder http://localhost) ein und wählen Sie dann die Zeile für Navigation, Lesen oder Schließen, um sie zu speichern. Eine Zeile zum Auflisten von Seiten wird angeboten, bis sie gespeichert ist. Die Brücke muss verbunden sein: Eine ausdrückliche Genehmigung bindet sich an die Identität der laufenden Brücke und wird bei jedem Aufruf genau wie eine aus einem Prompt gespeicherte Genehmigung geprüft. Verwaltete Origin-Listen, der Schalter der Lesestufe und die Administratorrichtlinie gelten also weiterhin. Das Ausschalten des WebMCP-Chips trennt den Browser und behält gespeicherte Entscheidungen.

Der lokale Speicher ist standardmäßig ~/.local/share/ax-code/webmcp-approvals.json (XDG-Überschreibungen des Datenverzeichnisses gelten). Genehmigungen sind an die Brückenidentität gebunden. Ändert sich ihr Start oder das Browserprofil, ist eine neue Genehmigung nötig.

Ein Navigationsfehler kann auftreten, nachdem eine Seite geöffnet oder geändert wurde. Der Fehler meldet, soweit verfügbar, eine erkannte Kategorie für Zeitüberschreitung, Netzwerk oder fehlende Seite, ohne den rohen Fehlertext der Brücke wiederzugeben. Prüfen Sie list_pages, bevor Sie entscheiden, ob Sie erneut navigieren. Navigationsfehler entfernen gespeicherte Genehmigungen nicht.

Interaktionsstufe

Schweben und gewöhnliche Klicks laufen unter einer Freigabe je Origin, gültig für 20 Aktionen; danach erscheint derselbe Prompt erneut.

  • Tippen, Tastendrücke, Dialoge, Links, Doppelklicks und Klicks, deren Name folgenschwer klingt (absenden, bezahlen, löschen, autorisieren, …), fragen jedes Mal nach und zeigen das Ziel sowie den vollständigen Wert.
  • Felder, deren Name nach Zugangsdaten aussieht, werden gekennzeichnet und maskiert. Werte, die wie API-Schlüssel oder private Schlüssel geformt sind, werden abgelehnt: Geben Sie Zugangsdaten selbst ein.
  • Aktionen brauchen einen frischen Snapshot derselben Seite. Eine verschobene Seite oder ein unbekanntes Element wird abgelehnt. Drei Ablehnungen in einer Runde stoppen weitere Aktionen.

Die namensbasierten Prüfungen sind Heuristiken, keine Garantie. Der Prompt ist die Kontrolle, lesen Sie ihn also.

Mit einer vorhandenen Seite arbeiten

Bitten Sie AX Code, die Fähigkeiten der Seite zu prüfen, ihre nativen Tools zu entwickeln oder ein bestimmtes Verhalten zu diagnostizieren. Das Tool browser_workflow bündelt diese Aufgaben, ohne dass Sie für gewöhnliche Beobachtungen einen Testserver starten müssen. Aktivieren Sie zuerst die Brücke und benennen Sie die beabsichtigte Seite. Keine dieser Aktionen öffnet eine Seite, meldet Sie an, ändert das Browserprofil oder plant künftige Arbeit.

Zum Beispiel: „Prüfen Sie die Tools meiner lokalen Anwendung und zeigen Sie, welchen Anwendungsfunktionen sie entsprechen“ oder „Erfassen Sie diese Seite, bevor ich die leeren Ergebnisse reproduziere, vergleichen Sie dann die Fehler und nennen Sie mir mögliche Quelldateien.“

Native Tools und ihre Quelle prüfen

Rufen Sie status mit server, pageId und dem genauen origin auf, um die tatsächlich zugelassenen Tools sowie die Verfügbarkeit von Native und Snapshot zu sehen. Eine leere Auflistung belegt nicht, dass unzugängliche Frames keine Tools haben. Vorhandene Konnektoren können für Aufgaben besser geeignet sein, die keinen Seitenkontext brauchen.

{
  "action": "inventory",
  "server": "webmcp",
  "pageId": 1,
  "origin": "http://localhost:3000",
  "sourceFiles": ["src/tools.ts", "public/search.html"]
}

Bewahren Sie das zurückgegebene inventoryId auf. Übergeben Sie es als baselineId bei einem späteren Inventaraufruf, um hinzugefügte oder entfernte Tools und geänderte Schemafelder zu sehen. Dateien werden ausdrücklich auf Berechtigungen geprüft, bleiben im Repository und sind begrenzt. Statische imperative Registrierungen und zitierte HTML-Formularattribute erzeugen Quellkandidaten. Berechnete Namen, doppelte Definitionen und nicht unterstützte Vorlagen bleiben unaufgelöst oder mehrdeutig. Ein passender Name und ein passendes Schema stützen einen Kandidaten, beweisen aber nicht, dass der Browser genau diese Quellrevision geladen hat.

Eine Anwendungsintegration erzeugen

Verwenden Sie author, um prüfbaren Integrationscode zu erhalten:

{
  "action": "author",
  "name": "find_products",
  "description": "Find products matching a query in the current catalog.",
  "module": "./src/catalog.js",
  "exportName": "findProducts",
  "schema": {
    "type": "object",
    "properties": { "query": { "type": "string" } },
    "required": ["query"]
  },
  "format": "imperative",
  "effect": "read"
}

Die benannte Funktion muss ein direkter Export sein. Die erzeugte Registrierung nimmt ein AbortSignal für das Aufräumen von Komponente oder Route entgegen. Setzen Sie acceptsSignal: true nur, wenn die Anwendungsfunktion ein zweites Argument {signal} akzeptiert und es beachtet. format: "declarative" liefert ein Formular plus eine Modulbindung für die menschliche Übermittlung. Verbinden Sie dessen Ereignis webmcp-result mit der Oberfläche der Anwendung. Primitive Felder werden unterstützt. Nicht unterstützte Schemabeschränkungen werden abgelehnt, statt stillschweigend verworfen zu werden. Prüfen Sie Validierung, Autorisierung und tatsächliche Wirkungen der Anwendung, bevor Sie eine der Vorlagen anwenden. Feldänderungen können eine automatische Speicherung auslösen, auch wenn ein Formular eine menschliche Übermittlung verlangt.

Ausführung und Modellauswahl getrennt prüfen

Vorhandene Schritte contract prüfen feste Eingaben und erwartete Ergebnisse. Fügen Sie {"action":"tool_presence","name":"admin_reset","present":false} nach einem Routen- oder Rollenwechsel hinzu, um zu prüfen, dass eine nicht verfügbare Operation abgemeldet wurde. present: true kann außerdem descriptorHash festlegen. Das sind Lebenszyklus-Kontrollpunkte, keine Ereignisspur. Exportierte Regressionen enthalten dieselben Prüfungen.

Verwenden Sie eine separate Auswahlauswertung, um festzustellen, ob ein Modell das richtige Tool und die richtigen Argumente wählt:

{
  "action": "selection_eval",
  "inventoryId": "<returned inventory UUID>",
  "cases": [
    { "task": "Find AX products", "expected": { "name": "find_products", "arguments": { "query": "AX" } } },
    { "task": "Delete every product", "expected": { "name": null, "arguments": {} } }
  ],
  "repeats": 2
}

Das gewählte API-Modell erhält nur die Aufgabe und den erfassten Katalog, ohne Ausführungstools oder erwartete Antworten. Aufrufe werden genehmigt und auf 12 Fälle, drei Wiederholungen und eine Auswertungsfrist von zwei Minuten begrenzt. Der Bericht zeichnet die Modellidentität, einen Suite-Hash, getrennte Zählungen für exakte Wahl und Argumente, gemeinsame Korrektheit und unbekannte Ausgänge auf. Fehlschläge bleiben im Nenner. CLI-Modelle stehen für diese Auswertung nicht zur Verfügung, weil sie eigene Tools ausführen können. Auswahlwerte beweisen keine Toolkorrektheit und qualifizieren Arena nicht.

Vor und nach einer Aktion diagnostizieren

Rufen Sie observe mit demselben Seitenziel, optionalem sourceFiles und ausdrücklichem assertions auf und verwenden Sie das vorhandene Schema für Rolle, Name sowie Anzahl, Wert, Auswahl und Deaktivierung. Führen Sie die angeforderte Aktion einmal über ein genehmigtes Tool oder von Hand aus. Rufen Sie danach {"action":"diagnose","observationId":"<returned UUID>"} auf. Das Ergebnis vergleicht Zusicherungsausgänge, Snapshot-Hashes, begrenzte Deltas von Konsole und Anfrage-Metadaten, Änderungen des semantischen Inventars und Quellkandidaten. Eine Korrelation ist ein Untersuchungsnachweis, keine bewiesene Ursache. Ohne Zusicherungen ist der Status observed, nicht pass.

Basislinien werden nur in der aktuellen Laufzeitsitzung gehalten, verfallen nach 30 Minuten und sind auf 16 je Sitzung begrenzt. Änderungen von Verbindung oder Seitenort machen die Wiederverwendung ungültig. Die festgelegte Brücke kann ein Neuladen derselben URL nicht erkennen, daher bleiben diese Vergleiche beratend. Aufbewahrt werden nur Hashes von Seitenorten und Snapshots. Begrenzter Diagnosetext und Tool-Deskriptoren sind nicht vertrauenswürdige Nachweise.

Bei einem reproduzierbaren localhost-Problem nimmt promote die Beobachtungs-ID und ein ausdrückliches normales manifest entgegen, das den lokalen Testserver-Befehl und die Schritte enthält. Es friert ein neues kontrolliertes Szenario ein. Beobachtungsergebnisse werden nie in die Abnahme kopiert: Führen Sie vor dem Bearbeiten eine fehlschlagende Kontrolle aus und qualifizieren Sie die korrigierten Läufe über den vorhandenen Ablauf.

Eine tägliche Beobachtungsaufgabe wiederholen

Ein Abrufrezept prüft eine vorhandene Seite ohne Navigation oder Zeitplan:

{
  "action": "recipe",
  "server": "webmcp",
  "pageId": 1,
  "definition": {
    "version": 1,
    "name": "Preview health",
    "origin": "http://localhost:3000",
    "assertions": [{ "locator": { "role": "status", "name": "Ready" }, "property": "count", "equals": 1 }]
  }
}

Der Standard ist nur der Snapshot. Optionale queries enthalten ein genaues Tool name, descriptorHash, das Objekt input, resultPath und equals. sie rufen echte Anwendungstools unter der vorhandenen Genehmigung je Aufruf auf. Hinweise auf Nur-Lesen bescheinigen keine Wirkungen. Das Ergebnis unterscheidet ausdrücklich die Snapshot-Beobachtung von Anwendungsaufrufen mit ungeprüften Wirkungen und prüft Snapshots nach Abfragen erneut. Speichern Sie geprüfte Definitionen, nicht erfasste Inhalte oder Zugangsdaten. Definitionen tragen keine Berechtigung und werden nie zu Arena-Belegen. Ein Bestehen bedeutet nur, dass die erklärten Beobachtungen übereinstimmten. Fehlende Daten können eine Prüfung nicht erfüllen.

Ein Tool von Hand registrieren

Bitten Sie den Agenten, ein Tool hinzuzufügen, das Logik wiederverwendet, die Ihre Seite bereits hat, oder registrieren Sie eines aus dem JavaScript der Seite. Die Anleitung von Chrome behandelt die imperative API und die deklarative Formular-API. Ein minimales Nur-Lese-Tool sieht so aus:

if (typeof document.modelContext?.registerTool === "function") {
  await document.modelContext.registerTool({
    name: "read_heading",
    description: "Read the main heading of the current page.",
    inputSchema: {
      type: "object",
      properties: {},
      additionalProperties: false,
    },
    annotations: { readOnlyHint: true },
    execute: async () => ({
      heading: document.querySelector("h1")?.textContent ?? "",
    }),
  })
}

Ein kompatibler Agent kann dann read_heading auf dieser Seite entdecken. Die Seite Website-Tools von OpenAI führt dieselbe Idee von der Seite von Codex und ChatGPT Work aus, einschließlich der Art, wie ihr eingebauter Browser die Tools einer Website auflistet.

Grenzen

Keine Skripte, Uploads, Downloads, Cookies, Anfragekörper, Koordinaten oder Ziehen. Administratoren können die Brücke oder eine der beiden Stufen mit der verwalteten Anforderung webmcp deaktivieren (allow, allowRead, allowInteract, allowedOrigins). Projekt- und Benutzerkonfiguration können sie nicht lockern.

Server, die Sie mit ax-code mcp add hinzufügen, sind ein anderer Vertrauenspfad. Siehe MCP-Integrationen.

Eine localhost-Seite in fünf Schritten debuggen

Wenn eine Seite falsch dargestellt wird, ein Steuerelement nichts tut oder eine Anfrage fehlschlägt:

  1. Navigieren Sie zur Seite und nehmen Sie einen Snapshot — der A11y-Baum ist die strukturelle Basislinie. Navigation und Lesen nutzen die vorhandenen Genehmigungen.
  2. Führen Sie die fehlschlagende Aktion einmal aus, unter den vorhandenen Interaktionsgenehmigungen.
  3. Lesen Sie das Delta: Konsolenfehler und Netzwerk-Metadaten (Methode, URL, Status, Typ — Anfrage- und Antwortkörper bleiben außerhalb des Umfangs) rund um die Aktion. Warten Sie bei asynchronem Zustand; wiederholen Sie nie die auslösende Aktion.
  4. Urteil: PASS, FAIL oder BLOCKED, wobei die fehlende Fähigkeit genannt wird. Eine Tool-Bestätigung ist kein Beweis für den Erfolg der Anwendung.
  5. Wenn sich der localhost-Fehler als strukturierte Zusicherung ausdrücken lässt, frieren Sie ihn als Szenario browser_workflow ein (unten), zeichnen Sie die fehlschlagende Kontrolle auf und führen Sie denselben Hash nach der Korrektur zweimal aus.

Nachweise an einen Fehlerbericht anhängen

Bei einem localhost-Fehler, der über ein eingefrorenes Szenario untersucht wurde, macht ein Nachweisbündel den Bericht prüfbar: Name und Hash des Szenarios, das Ergebnis der fehlschlagenden Zusicherung (ohne erfassten Seiteninhalt), die Beleg-IDs aus browser_workflow inspect, Snapshot-Hashes, die begrenzten Deltas von Konsolenfehlern und Netzwerk-Metadaten, Quellverweise mit ihren Bezeichnungen explicit/local_map/unresolved und der Origin. Nehmen Sie nur laufzeitbegrenzte, laufzeitbereinigte Ausgabe auf — niemals Anfrage- oder Antwortkörper, Header, Cookies, Speicher, Seiteninhalt oder werteförmige Zugangsdaten. Beleg-IDs und kopierte Belegdaten sind nur Verweise. Der maßgebliche Belegzustand bleibt im Besitz der Laufzeit.

Eine Entwicklungsänderung reproduzieren und prüfen

Das Tool browser_workflow friert Abnahmeschritte ein, bevor Sie eine Webanwendung bearbeiten, führt sie über die verbundene WebMCP-Brücke aus und zeichnet strukturierte Zusicherungen auf. Aktivieren Sie zuerst die Brücke. Die erste unterstützte Umgebung ist ein wegwerfbarer HTTP-Server auf 127.0.0.1. Jeder Lauf weist einen anderen Port und ein temporäres Datenverzeichnis zu, plus einen frischen isolierten Browserkontext. Dauerhafte Browserprofile werden abgelehnt. Leere Kontexte behält die Upstream-Brücke bis zur Trennung. Nach 32 Läufen auf einer Verbindung verbinden Sie die Brücke erneut, bevor Sie fortfahren. Der Ablauf verwendet deren Cookies oder Speicher nie wieder.

Bitten Sie den Agenten, ein Szenario mit action: "freeze" einzufrieren. Ein projektzugehöriges test/browser-server.mjs, das ein Portargument akzeptiert, kann zum Beispiel so verwendet werden:

{
  "action": "freeze",
  "manifest": {
    "version": 1,
    "name": "Search returns a matching result",
    "server": "node test/browser-server.mjs {port}",
    "path": "/",
    "setup": [],
    "reset": [],
    "cleanup": [],
    "steps": [
      { "action": "fill", "locator": { "role": "textbox", "name": "Search" }, "value": "example" },
      {
        "action": "assert",
        "assertion": {
          "locator": { "role": "status", "name": "One result" },
          "property": "count",
          "equals": 1
        }
      }
    ]
  }
}

Bewahren Sie den zurückgegebenen Hash auf. Führen Sie den Lauf mit {"action":"run","hash":"<hash>","server":"webmcp"} aus (verwenden Sie den Namen Ihrer verbundenen Brücke). Reproduzieren Sie den Fehler, nehmen Sie die Änderung vor und führen Sie denselben Hash zweimal aus. Jeder Lauf startet den erklärten Server, öffnet eine eigene Seite, prüft die Schritte, schließt die Seite und stoppt seinen Server. Lebenszyklusbefehle laufen im Repository-Wurzelverzeichnis über die normalen Shell-Berechtigungen. {port} wird zum zugewiesenen Port erweitert. {data} wird zu einem zitierten temporären Verzeichnis erweitert. Einrichtungs-, Rücksetz- und Aufräumbefehle müssen innerhalb von 15 Sekunden enden. Die Bereitschaft hat eine Frist von 15 Sekunden, der Browserlauf eine Frist von 120 Sekunden. Browseraktionen behalten ihre vorhandenen Berechtigungen und Interaktionsbudgets.

Unterstützte Schritte sind Klick, Schweben, Ausfüllen, strukturierte Zusicherung und Prüfungen des Seiten-Tool-Vertrags. Lokatoren verwenden eine genaue Rolle und einen barrierefreien Namen. Aktionen mit null oder mehreren Treffern enden als unknown. Es gibt kein geratenes UID und keinen CSS- oder Skript-Rückfall. Zusicherungen vergleichen Anzahl, Wert sowie den Zustand ausgewählt oder deaktiviert. Eine fehlende Zustandseigenschaft ist unbekannt. Fügen Sie für asynchrones Rendern timeoutMs (0–10000, Standard 0) zu einem Schritt assert hinzu. Der Runner fragt frische strukturierte Snapshots ab, bis die Zusicherung passt oder die Frist abläuft. Den vorherigen Klick oder das Ausfüllen wiederholt er nie. Die Zeitüberschreitung wird mit dem Szenario eingefroren und in seinem exportierten Test behalten. Szenarien sind auf 32 Schritte und 32 KiB begrenzt.

inspect liefert das eingefrorene Manifest und die Laufzeitbelege. Belege binden das Szenario an Revision und Inhalt des Repositorys, Operationsergebnisse, Snapshot-Hashes und begrenzte Konsolen- sowie Netzwerk-Metadaten. Geänderter Quelltext, verweigerte Operationen, fehlende Nachweise, Zeitüberschreitungen und unvollständiges Aufräumen können nicht bestehen. Diese Ergebnisse validieren die erklärten Zusicherungen. sie beweisen nicht jedes Verhalten der Anwendung. Eingefrorener Zustand und maßgebliche Belege leben in der aktuellen Laufzeitsitzung. Nach einem Neustart frieren Sie erneut ein und qualifizieren Sie erneut. Kopierte JSON-Belege werden nicht als Laufzeitautorität akzeptiert.

Einen Regressionstest exportieren

{"action":"export","hash":"<hash>"} liefert ein eigenständiges Node-Modul, das playwright-core verwendet. Speichern Sie den zurückgegebenen Code als Projekttest und führen Sie ihn mit AX_TEST_WEBMCP_CHROME aus, das auf Chrome zeigt. Er startet dasselbe Fixture und verwendet frische Browserkontexte, stabile Lokatoren aus Rolle und Name sowie die eingefrorenen Zusicherungen. Führen Sie den exportierten Test tatsächlich aus, bevor Sie ihn als validiert bezeichnen. Exportierte Tests sind ein unabhängiges Regressionsartefakt. Ihre Ausgabe ist kein Arena-Beleg. Schritte des Seiten-Tool-Vertrags verwenden das native WebMCP-Protokoll von Chrome mit genauen Deskriptor-Hashes und erwarteter Ausgabe, ohne beliebige Seitenskripte auszuwerten. Chrome muss dieses experimentelle Protokoll für Vertragsexporte unterstützen.

Einen Seiten-Tool-Vertrag entwickeln und Fehler untersuchen

Bei geöffneter Seite liefert {"action":"contracts","server":"webmcp","pageId":1} die registrierten Deskriptoren und die genauen Deskriptor-Hashes. Frieren Sie einen Schritt contract ein, der name, descriptorHash, input, resultPath und equals enthält. Hash-Änderungen lassen die Prüfung fehlschlagen. Setzen Sie expectError: true für negative Eingaben: Nur ein bestätigter Ausführungsfehler des Seiten-Tools erfüllt ihn. Abgebrochene Aufrufe, Berechtigungsverweigerung und fehlender Abschluss sind unbekannt. Fügen Sie nach Mutationen Zusicherungen hinzu, um den resultierenden Seitenzustand ebenso wie den Rückgabewert zu prüfen.

Die Aktion template nimmt name, einen relativen Anwendungspfad module, ein ausdrückliches exportName und schema entgegen. sie prüft, dass der lokale Export existiert, und liefert ein Registrierungsskelett. Prüfen Sie es gegen Eingabevalidierung, Autorisierung und Geschäftslogik der Anwendung, bevor Sie es aktivieren. Das Tool kann diese Garantien nicht aus einem exportierten Funktionsnamen ableiten.

Eine optionale Liste sources benennt repositorylokale Dateien mit einsbasierten line und nullbasierten column sowie optional eine lokale Datei map. Fehlgeschlagene Läufe liefern begrenzte Diagnosen und Quellverweise mit den Bezeichnungen explicit, local_map oder unresolved. Die Zuordnung ist beratend, nie ein Beweis für eine Ursache oder eine bestandene Zusicherung. Entfernte Karten, Pfade außerhalb des Repositorys und Dateien über 1 MiB werden nicht gelesen. Netzwerknachweise des Browsers bleiben nur Metadaten.

Browsernachweise in der Implement-Arena verlangen

Liefern Sie browserScenario: "<hash>" mit mode: "implement". Frieren Sie das Szenario ein und zeichnen Sie eine wirklich fehlschlagende Zusicherung auf der aktuellen sauberen Basis auf, bevor Sie die Arena starten. Jeder Kandidat erhält diesen eingefrorenen Vertrag in seinem isolierten Worktree und muss ihn zweimal erfolgreich über seine verbundene isolierte Brücke ausführen. Browseraktivierung und Berechtigungen bleiben beaufsichtigt. Fehlender Brückenzugriff, veralteter Inhalt, unbekannte Ergebnisse oder fehlende Belege verhindern die Beförderung, auch wenn die Repository-Prüfungen bestehen. Die normale Codeprüfung und die Mutationsprüfungen laufen weiterhin, und kein Kandidat wird automatisch zusammengeführt.

Nachweise effizient wählen

Native WebMCP-Tools beschreiben Anwendungsoperationen. Chrome DevTools MCP liefert Browserprüfung und Automatisierung. Bevorzugen Sie ein registriertes Tool der Seite für eine ausdrückliche Anwendungsoperation und prüfen Sie danach dessen Ergebnis und den resultierenden Seitenzustand. Verwenden Sie Barrierefreiheits-Snapshots für Text und stabile Elementlokatoren. Nehmen Sie bei Layout, Canvas oder nur bildlichem Inhalt einen Screenshot: Schneiden Sie auf ein frisches Snapshot-uid zu oder verwenden Sie JPEG mit verringerter Qualität, um innerhalb der Inline-Grenzen zu bleiben. Das Deuten von Pixeln verlangt ein sehfähiges Modell. Weder WebMCP noch die dokumentierte DevTools-MCP-Toolliste bietet ein eigenes OCR-Tool. Erschlossener Bildtext ist beratend und kann eine strukturierte Abnahmezusicherung nicht erfüllen.

Grenzen Sie Konsolenlesevorgänge mit types und pageSize ein. Grenzen Sie Netzwerk-Metadaten mit resourceTypes und pageSize ein. Ablaufbelege behalten Basislinien vor der Aktion und begrenzte Deltas, damit Fehler, die durch die Reproduktion entstehen, leichter zu finden sind. Netzwerkkörper und beliebige Auswertung bleiben außerhalb der gewährten Oberfläche der Brücke. Leistungsspuren, Emulation, Lighthouse, Bildschirmaufzeichnungen, Speicher- und Erweiterungstools im Upstream-DevTools-MCP sind getrennte Fähigkeiten und werden von diesem Profil nicht bereitgestellt.

Siehe die WebMCP-Debug-Anleitung von Chrome und die Upstream-DevTools-MCP-Toolreferenz. Der Upstream-Hauptzweig kann von der festgelegten Brücke von AX Code abweichen. Nur die lokalen Tool-Schemata beschreiben die unterstützten Argumente.