MyTools direkt mit WebMCP aufrufen
WebMCP ist ein entstehender Webstandard, mit dem eine Seite einem KI-Agenten eine Liste aufrufbarer Funktionen übergibt statt eines Bildschirms, den er erst deuten muss. Eine Seite registriert Tools auf document.modelContext — jedes mit Name, Beschreibung und JSON-Schema — und ein Agent, der in diesem Browser läuft, kann sie auflisten und aufrufen.
MyTools registriert drei Tools auf jeder Seite der Website und drei weitere auf jeder seiner 55 Tool-Seiten: Zustand lesen, Operation ausführen, Ergebnis speichern. Die Arbeit findet weiterhin im Browser auf dem Rechner des Nutzers statt. WebMCP ändert, wer den Knopf drückt, nicht wohin die Datei geht.
Wo das funktioniert — und wie gefestigt es ist
Der Browser von ChatGPT ruft diese Tools heute schon auf. OpenAI hat den in die ChatGPT-Desktop-App eingebauten Browser um WebMCP-Unterstützung erweitert; die Tools unten sind dort also aufrufbar — ohne Flag, ohne Trial-Token und ohne Einrichtung auf Ihrer Seite. MyTools ist auf diesem Weg bereits im echten Einsatz gesteuert worden: Ein Absturz, der nur in diesem Browser auftrat, wurde von jemandem gemeldet, dessen Agent diese Tools schon nutzte, und im August 2026 behoben.
In Chrome ist es ein Origin-Trial. Der Trial läuft von Chrome 149 bis Chrome 156, also ungefähr bis Ende 2026. MyTools hinterlegt ein Token für seinen Produktions-Origin, deshalb sind die Tools in einem unterstützenden Chrome vorhanden, ohne dass Sie ein Flag setzen müssen. Endet der Trial, ohne dass die API ausgeliefert wird, verschwindet document.modelContext aus Chrome und diese Tools mit ihm — genau deshalb bleibt der URL-Einstiegspunkt weiter unten bestehen.
Die Spezifikation ist ein Entwurf, kein verabschiedeter Standard. WebMCP ist ein Draft Community Group Report der W3C Web Machine Learning Community Group, herausgegeben von Entwicklern bei Google und Microsoft, und ausdrücklich nicht auf dem Standards-Track des W3C. Die Form hat sich bereits einmal verschoben: Tools wurden auf navigator.modelContext registriert, bevor die API zu document.modelContext wechselte. Wenn Sie mit älterem Material arbeiten, prüfen Sie das zuerst.
Feature-Detection statt Annahmen. document.modelContext ist entweder da oder nicht, und da inzwischen mehrere Implementierungen in ihrem eigenen Takt erscheinen, ist das der einzige Test, der sich lohnt. Werten Sie dafür niemals den User-Agent aus. Wo es fehlt, geht auf dieser Website nichts kaputt — die Tools existieren dann schlicht nicht, und jede Seite funktioniert weiterhin als Seite.
Es gibt einen Rückfallweg, der überall funktioniert. Wo WebMCP nicht verfügbar ist, steuern Sie die Website stattdessen über ihren URL-Einstiegspunkt: 50 der 55 Tools öffnen sich mit einer Datei, die bereits aus einer von Ihnen gebauten URL geladen wurde. Beide Mechanismen decken dieselben Operationen ab; nur die Ergonomie unterscheidet sich.
Zum lokalen Testen in einem Chrome ohne Trial-Token aktivieren Sie chrome://flags/#enable-webmcp-testing.
Weiterführende Links — Der Spezifikationsentwurf · Die WebMCP-Dokumentation von Chrome
Drei Tools auf jeder Seite
Diese sind auf der gesamten Website registriert, auch auf Seiten, die gar keine Tools sind — der Startseite, einem Artikel, dieser Seite hier. Über sie findet ein Agent den Weg zum richtigen Tool.
find_mytools_tools — Durchsucht den Katalog. Nimmt query, category, inputType und limit entgegen, alle optional, und liefert passende Tools mit ihrem slug, ihrem Seitenpfad und der Angabe, ob sie eine Datei-URL annehmen. Nur lesend. Die Ausgabe ist gedeckelt — grenzen Sie die Suche also ein, statt alles anzufordern.
open_mytools_tool — Navigiert zu einem einsatzbereiten Tool. Nimmt slug entgegen — erforderlich, so wie von find_mytools_tools geliefert — dazu optional urls, um entfernte Dateien direkt zu laden, und carryResult, das die soeben vom aktuellen Tool erzeugten Dateien an das geöffnete Tool übergibt, statt auf einem leeren Upload-Bildschirm zu landen.
suggest_mytools_pipeline — Nennt zu einem Tool-slug und den Namen der erzeugten Dateien die Tools, an die diese Dateien als Nächstes gehen können. Zurück kommen nur kompatible Ziele: Ein Stapel wird nie einem Einzeldatei-Tool angeboten, und keinem Tool wird ein Format angeboten, das es nicht öffnen kann.
Drei weitere auf jeder Tool-Seite
Alle 55 Tools tragen dasselbe Trio, benannt nach dem slug des Tools, wobei Bindestriche zu Unterstrichen werden. Auf /pdf/rotate-pdf sind das get_rotate_pdf_state, run_rotate_pdf und download_rotate_pdf.
get_<tool>_state — Was geladen ist, worauf die Einstellungen stehen und ein Hinweis darauf, welcher Aufruf als Nächstes dran ist. Lesen Sie ihn, bevor Sie etwas ausführen: Von dort kommen Seitenzahlen, Laufzeiten und Pixelmaße — und erst die machen Argumente sinnvoll.
run_<tool> — Erledigt die Arbeit. Die Argumente unterscheiden sich je Tool und stehen in dessen Schema; was Sie weglassen, behält den auf dem Bildschirm eingestellten Wert. Der Aufruf kehrt erst zurück, wenn die Operation fertig ist — es gibt also nichts abzufragen; bei einem langen Video-Encode dauert er schlicht so lange wie der Encode.
download_<tool> — Speichert das Ergebnis auf dem Gerät des Nutzers. Es wird erst registriert, wenn ein Ergebnis vorliegt — sein Auftauchen in der Tool-Liste ist also das Signal, dass die Arbeit erledigt ist. Tools, die mehrere Dateien erzeugen, nehmen index entgegen, um eine einzelne zu speichern, oder zip, um alle als ein Archiv zu speichern.
Drei Tools enden mit einer veröffentlichten URL statt mit einer Datei — die beiden Facebook-Posting-Tools und der YouTube-Upload — und registrieren deshalb kein download-Tool. Sie verweigern außerdem die Arbeit, wenn niemand angemeldet ist: Der Login öffnet ein Popup, das nur ein echter Klick öffnen kann.
Ein durchgespieltes Beispiel
Ein PDF drehen, das unter einer URL liegt — von Anfang bis Ende. Jede Antwort unten ist die echte Ausgabe dieser Tools, keine Skizze davon.
1. Das Tool finden.
find_mytools_tools({ query: "rotate pdf", inputType: "application/pdf", limit: 3 })
→ { "total": 55, "matched": 1, "tools": [
{ "slug": "rotate-pdf", "title": "Rotate PDF",
"description": "Rotate PDF pages in one click",
"multiple": true, "byUrl": true } ] }2. Es mit bereits geladener Datei öffnen. Die seitenspezifischen Tools wechseln mit der Seite — lesen Sie die Tool-Liste danach also erneut.
open_mytools_tool({ slug: "rotate-pdf",
urls: ["https://example.com/rental-application.pdf"] })
→ "Opened Rotate PDF with 1 file(s) loading from URL. Everything is processed
locally in the browser. The page-specific tools available to you have changed."3. Den Zustand lesen. Die Seitenzahl stammt aus dem PDF selbst, und genau deshalb lohnt es sich, einen Seitenbereich mitzugeben.
get_rotate_pdf_state({})
→ { "phase": "configure",
"pdfs": [ { "name": "rental-application.pdf", "pages": 2, "rotations": [0, 0] } ],
"saving": false, "result": null,
"hint": "Call run_rotate_pdf with a rotation, optionally narrowed with pages,
to turn the loaded PDFs." }4. Ausführen. Der Aufruf kehrt zurück, wenn die Drehung fertig ist, und download_rotate_pdf existiert jetzt.
run_rotate_pdf({ rotation: 90 })
→ "Rotated 1 PDF(s) by 90°. Call download_rotate_pdf to save it."5. Speichern. Die Datei geht auf das Gerät des Nutzers; Sie bekommen die Bytes nie zu sehen.
download_rotate_pdf({})
→ "Saving rental-application-rotated.pdf to the user's device."Eine Entscheidung an den Nutzer zurückgeben
Nicht jedes Argument sollten Sie selbst wählen. Welcher Ausschnitt eines Fotos bleiben soll, welche Seiten eines Scans zählen, wie laut laut genug ist — dafür braucht es einen Blick auf die Datei. Die Oberfläche ist so gebaut, dass Sie anhalten, den Nutzer entscheiden lassen und danach weitermachen können. get_<tool>_state meldet, was gerade auf dem Bildschirm steht, einschließlich einer Änderung, die der Nutzer soeben mit der Maus vorgenommen hat, und jedes Argument, das Sie in run_<tool> weglassen, behält seinen Wert vom Bildschirm. Lassen Sie alle weg, arbeitet run_<tool> genau mit dem, was der Nutzer eingestellt hat.
Das Zuschneide-Tool für Bilder, mit einem echten Mausziehen mittendrin:
get_crop_image_state({})
→ … "source": { "width": 6240, "height": 4160 },
"selection": { "x": 1459, "y": 420, "width": 3330, "height": 3328 }
← the user drags the box over what they want to keep
get_crop_image_state({})
→ … "selection": { "x": 2910, "y": 831, "width": 3330, "height": 3329 }
run_crop_image({})
→ "Cropped to 3330×3329 pixels out of 6240×4160 (5507 KB, image/jpeg).
Call download_crop_image to save it."Sagen Sie schon in dem Zug, in dem Sie das Tool öffnen, was Sie brauchen — „Ziehen Sie den Rahmen über den Bereich, den Sie behalten möchten, und sagen Sie mir dann Bescheid“ — und lesen Sie den Zustand erneut, sobald die Antwort kommt. Nichts an der Seite ist gesperrt, während Sie warten; der Nutzer arbeitet in einem ganz normalen Browser-Tab.
Genau hier verläuft die Grenze zwischen einer Tool-Seite und einer API. Arbeit, die sich niemand ansehen muss, gehört hinter einen API-Aufruf; einen Browser davorzusetzen wäre reiner Overhead. Eine Seite verdient ihren Platz erst, wenn ein Mensch die Datei sehen muss, um etwas zu entscheiden — und WebMCP hält einen Agenten über genau diesen Moment hinweg nützlich: Er lädt, misst, konvertiert und speichert auf beiden Seiten einer Beurteilung, die er nicht selbst treffen sollte.
Vier Dinge, die das Verhalten dieser Tools prägen
Die Ausgabe ist auf rund 1500 Zeichen gedeckelt. Eine Zustandsantwort ist deshalb eine Zusammenfassung, kein Volldump. Lange Listen werden am Ende gekürzt und als gekürzt markiert, und Dateiinhalte tauchen darin nie auf. Wenn Sie den vollständigen Katalog statt eines Suchergebnisses brauchen, rufen Sie stattdessen capabilities.json ab.
Keine Bytes überqueren die Grenze. Sie können einem Tool keine Datei übergeben und Sie erhalten nie eine. Dateien kommen über eine URL herein, die der Browser abruft, und gehen über download_<tool> hinaus, das einen ganz normalen Browser-Download auf den Rechner des Nutzers auslöst. Alles, was Sie mit diesen Tools austauschen, ist Text.
Aufrufe lassen sich abbrechen. Jede Ausführung bekommt ein AbortSignal. Ein abgebrochener Lauf stoppt die Arbeit, statt sie verwaist weiterlaufen zu lassen — ein Video-Encode wird beendet, nicht im Worker vergessen — und kommt als Abbruch zurück, nicht als Fehler.
Die Tool-Liste ändert sich beim Navigieren. Registriert sind immer nur die Tools der aktuellen Seite. Öffnen Sie ein anderes Tool, wird das Trio der vorherigen Seite abgemeldet und das neue registriert. Lesen Sie die Tool-Liste deshalb nach jedem open_mytools_tool neu, statt anzunehmen, was Sie vorher gesehen haben, sei noch da.
Fragen, die eine Antwort verdienen
Welche MyTools-Tools kann ein Agent direkt aufrufen?
faq.coverage.answer
Funktioniert das nur in Chrome?
Nein. Der in die ChatGPT-Desktop-App eingebaute Browser unterstützt WebMCP, und Chrome stellt es Teilnehmern am Origin-Trial wie MyTools bis einschließlich Chrome 156 bereit. Die Spezifikation ist ein Entwurf einer W3C Community Group, den jeder Browser mit Agentenfähigkeiten umsetzen kann — behandeln Sie die Verfügbarkeit deshalb als etwas, das Sie zur Laufzeit erkennen, nicht als feste Liste.
Braucht es einen API-Schlüssel oder ein Konto?
Nein. Keine Registrierung, kein Login, kein Schlüssel, kein Kontingent. Wenn der Browser WebMCP bereitstellt, sind die Tools schon beim ersten Besuch da.
Lädt ein Aufruf von run_<tool> die Datei auf einen Server hoch?
Nein. Die Arbeit läuft im Browser, und MyTools hat keinen serverseitigen Dateispeicher. Die einzige Ausnahme ist das Laden einer Datei aus einer URL: Unser Server ruft die von Ihnen angegebene URL ab, damit der Browser mit den Bytes arbeiten kann, und speichert sie nicht.
Was passiert, wenn der Browser WebMCP nicht unterstützt?
Nichts geht kaputt. document.modelContext fehlt dann einfach und es werden keine Tools registriert; die Seiten funktionieren als ganz normale Seiten. Weichen Sie auf den URL-Einstiegspunkt aus, der gar keine Browser-Unterstützung braucht.
Lassen sich mehrere Tools verketten, ohne dazwischen herunterzuladen?
Ja. Rufen Sie suggest_mytools_pipeline mit dem slug und den Namen der gerade erzeugten Dateien auf, um zu sehen, was sie annimmt, dann open_mytools_tool mit carryResult — und das nächste Tool öffnet sich mit diesen Dateien bereits geladen.
Können ein Agent und ein Mensch gleichzeitig am selben Tool arbeiten?
faq.together.answer