Browser Use
Browser agents and stealth cloud browsers for AI: run web tasks, fill forms, extract data.
Beschreibung vom Entwickler (englisches Original)
Read, crawl and act on websites, signed in as the user, and turn any site into an API.
Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.
Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
WRIT_API_KEYAls geheim markierte Werte sind Schlüssel zu deinem Konto. Gib sie nie weiter und füge sie nie in einen Chat ein.
Du brauchst
Welche App nutzt du?
Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.
Funktioniert in Claude im Web, auf dem Desktop und auf dem Handy:
https://api.usewrit.app/mcpÖffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein
{
"mcpServers": {
"writ-cloud": {
"command": "npx",
"args": [
"-y",
"writ-mcp"
],
"env": {
"WRIT_API_KEY": "your-value"
}
}
}
}Führe das in deinem Terminal aus
claude mcp add --transport http writ-cloud https://api.usewrit.app/mcpclaude mcp add writ-cloud --env WRIT_API_KEY=your-value -- npx -y writ-mcpTrag die leeren Werte ein, bevor du ihn startest.
In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"writ-cloud": {
"url": "https://api.usewrit.app/mcp"
}
}
}In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"writ-cloud": {
"command": "npx",
"args": [
"-y",
"writ-mcp"
],
"env": {
"WRIT_API_KEY": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"writ-cloud": {
"type": "http",
"url": "https://api.usewrit.app/mcp"
}
}
}In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"writ-cloud": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"writ-mcp"
],
"env": {
"WRIT_API_KEY": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
ChatGPT verbindet sich nur mit Servern im Internet:
https://api.usewrit.app/mcpMenünamen können sich je nach Tarif und mit der Zeit leicht unterscheiden.
Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.
Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Die Tool-Liste dieses Servers haben wir noch nicht gelesen; wir prüfen die Endpunkte reihum.
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 7. Nov. 2026
Der Registry-Name wurde über die Domain usewrit.app bestätigt (die Registry prüft, wem die Domain gehört)
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieses Repo haben wir noch nicht von GitHub gelesen
Noch nicht geprüft; wir prüfen die Endpunkte reihum
Noch nicht geprüft; wir prüfen die Endpunkte reihum
Noch nicht geprüft; wir lesen die Tool-Liste, wenn wir den Endpunkt prüfen
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Das musst du eintragen: WRIT_API_KEY
Beides geht: Installiere ihn auf deinem Computer oder verbinde dich mit der Cloud-Version.
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (1.0.0) kam vor 27 Tagen in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Er verbindet sich per URL, also funktionieren auch Apps, die Remote-MCP-Server akzeptieren, zum Beispiel ChatGPT im Entwicklermodus.
In derselben Kategorie: Browser Use, Chrome DevTools MCP, MCP Server Browser
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
Browser agents and stealth cloud browsers for AI: run web tasks, fill forms, extract data.
MCP server for Chrome DevTools
MCP server for browser use access
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
Your saved browser workflows, as tools your assistant can call.
Quick start · Tools · Configuration · Security · Troubleshooting · Contributing
writ-mcp connects a stdio MCP client — Claude Code, Claude Desktop, Cursor, Windsurf, Codex — to Writ, so the browser workflows you already recorded become tools your assistant can call: run them, read the data they collected, search past results, schedule them, expose them as REST endpoints, and kick off site crawls.
It is a transparent stdio↔HTTP proxy and nothing else. Every tool, schema and rule lives server-side, so what you get always matches what your instance can do — and a new tool never requires upgrading this package. Zero dependencies, one file, Node core only.
Clients that speak Streamable HTTP natively don't need this at all — point them
straight at the
/mcpendpoint with anAuthorization: Bearerheader.
1. Get an API key. In the Writ app: Settings → Developers → API keys. Keys look like wt_….
2. Add the server.
Against a self-hosted coordinator:
claude mcp add writ-selfhost -e WRIT_API_KEY=<YOUR_API_KEY> -- npx -y writ-mcp --url https://writ.example.com
Against a coordinator on this machine:
claude mcp add writ-selfhost -e WRIT_API_KEY=<YOUR_API_KEY> -- npx -y writ-mcp --url http://localhost:8000
Against a published per-workflow endpoint (an "Expose as MCP" slug URL is used verbatim — no path rewriting):
claude mcp add my-tools -e WRIT_API_KEY=<YOUR_API_KEY> -- npx -y writ-mcp --url https://mcp.example.com/mcp/my-tools
3. Check it.
claude mcp list
Writ Cloud is the default target when you pass no
--url
(
https://api.usewrit.app). Pass--urlto point the connector at your own
coordinator instead. See Status.
Pass the key through the environment, not the command line.
--api-key
works, but it puts your key in the process's argument list where any local
process can read it via
ps, and your shell records it in history. The
connector prints a note when you use it.
Your running coordinator also hands out these one-liners, pre-filled, on its Connect page and at GET /api/mcp/connect-info:
Add to claude_desktop_config.json (Claude Desktop) or ~/.cursor/mcp.json (Cursor). The env form is recommended — it keeps the key out of the argument list:
{
"mcpServers": { "writ-selfhost": { "command": "npx", "args": ["-y", "writ-mcp"], "env": { "WRIT_COORDINATOR_URL": "https://writ.example.com", "WRIT_API_KEY": " " } } } }
A self-host install bundles this connector at connectors/writ-mcp. There is no build step, so you can run it straight from disk:
node /path/to/writ/connectors/writ-mcp/index.js --url https://writ.example.com
It coexists with the other Writ servers. Each surface registers under its
own slug on purpose — the desktop app is
writ, Writ Cloud iswrit-cloud, a
self-hosted coordinator is
writ-selfhost— and each identifies itself to the
assistant with a distinct title. Keep any combination connected at once.
Served by the server you connect to, not by this package, so a new server tool reaches you without a connector update. Writ Cloud lists the 39 tools below; a self-hosted coordinator lists the ones marked in its column.
| Tool | What it does | Writ Cloud | Self-hosted |
|---|---|---|---|
writ_list_workflows | Your saved workflows (a run_ tool is added only for workflows you pin) | yes | yes |
writ_run_workflow | Run one and wait for the extracted data | yes | yes |
writ_pin_workflow_tool | Pin or unpin a workflow as its own run_ tool — off by default, capped; everything still runs via writ_run_workflow | yes | yes |
writ_update_workflow | Read a workflow's outline or edit it in place (settings, steps, functions, its agent skill) | yes | yes |
writ_diagnose_http_workflow | Show what every request of a run was answered with, and whether it ran without a browser | yes | no |
writ_create_http_extraction | Author a multi-request browserless extraction from captured requests | yes | no |
writ_workflow_data | Read a workflow's accumulated data table | yes | yes |
writ_search_data | Search across everything already collected | yes | yes |
writ_export_data | Export a workflow's data as CSV/JSON | yes | yes |
writ_workflow_runs | Run history and status | yes | yes |
writ_set_schedule | Schedule a workflow (interval / daily / weekly) | yes | yes |
writ_expose_workflow_api | Publish a workflow as a callable REST endpoint | yes | yes |
writ_scrape | Read a page, or several, as clean markdown (Cloud also reads a listing's top N) | yes | yes |
writ_crawl_site / writ_crawl_status | Start and poll a distributed site crawl | yes | yes |
writ_crawl_files | The original documents a crawl captured (PDFs, office files, images) | yes | no |
writ_saved_crawls / writ_run_saved_crawl / writ_saved_crawl_data | Saved crawls (see below) | yes | yes |
writ_update_saved_crawl | Inspect or change a saved crawl's settings | yes | no |
writ_personas | See your saved sign-in identities and get them ready (see below) | yes | yes |
writ_payment | Pay with a card the user approves; Writ places the order once they confirm | yes | no |
writ_devices | Your linked Writ desktops: list them, or point this connection at one | yes | no |
writ_create_automation | Event or clock → run a workflow, notify, or wake an agent | yes | yes |
writ_list_webhooks | Your inbound webhook URLs and the automations they fire | yes | yes |
writ_create_monitor / writ_wire_monitor | Watch a page and react to changes | yes | yes |
writ_browser_use | Open a real browser your assistant drives turn by turn | yes | yes |
writ_record_website | Record a repeatable task as a workflow | yes | yes |
writ_website_to_api | Turn a website into a callable API | yes | yes |
writ_discovery_status | Follow an API build to its result | yes | no |
writ_browser_act / _context / _network / _save / _cancel | Act in the browser, read the page and its network calls, save or close the session | yes | yes |
writ_browser_compose | Define named functions, inputs and explicit steps in a session | yes | no |
writ_browser_ask_user | Hand a CAPTCHA, a code or a decision to the user in the live browser | yes | no |
writ_browser_sessions | Open browser sessions you can resume | yes | no |
writ_record_start / _act / _context / _network / _save / _cancel | Older names of the browser loop, kept for compatibility | no | yes |
The build tools (writ_browser_use, writ_record_website, writ_website_to_api, then writ_browser_act / _context / _network / _save / _cancel) are on both targets; neither has a writ_build tool, so use writ_record_website. Your assistant opens a real browser, drives it turn by turn, and saves the session as a reusable workflow that afterwards replays with no model in the loop. Writ Cloud runs it on Writ's fleet; a self-hosted coordinator runs it on your own fleet agent. Either way your assistant is the brain — no second model key is involved.
max_age)Running a workflow drives a real browser, so asking the same question twice in one session costs two full runs and two waits. Every workflow tool takes an optional `max_age` (seconds) meaning *a recent answer is good enough*:
{ "name": "run_price_check", "arguments": { "sku": "B0C123", "max_age": 300 } }
N seconds, otherwise run.A reused answer carries _cache: {hit: true, age_seconds: N} so the assistant can tell how current it is.
max_age works identically against Writ Cloud and a self-hosted coordinator, and on a pinned workflow's own run_ tool as well as writ_run_workflow.
writ_run_saved_crawl)A whole-site crawl is slow and metered, so re-crawling to answer the same question is the most expensive mistake an assistant can make. A saved crawl is a stored crawl configuration with a stable name, and the same max_age contract applies to it:
{ "name": "writ_run_saved_crawl", "arguments": { "crawl": "docs", "max_age": 86400 } }
writ_crawl_status (a crawl outlives a single tool call).Three tools cover the surface:
| Tool | What it does |
|---|---|
writ_saved_crawls | List saved crawls. Check here before crawling a site again. |
writ_run_saved_crawl | Run one, reusing recent data when max_age allows. |
writ_saved_crawl_data | Read what one already collected, at any age. Never crawls. |
To create one, pass save_as to writ_crawl_site — that saves the settings *and* runs them, so the crawl becomes callable by REST as well. Re-using the same save_as updates that saved crawl instead of piling up duplicates. Saving needs an admin-scoped credential (it creates reusable, callable configuration); running one needs only run.
writ_personas)A persona is a saved sign-in identity — username, credentials sealed server-side, optional 2FA, and a warm signed-in session. writ_personas lists yours (with per-persona readiness), inspects one (get), refreshes its session by running its login workflow (sign_in), or has the AI record the sign-in flow once so the persona can sign itself in from then on (record_login). The assistant then passes a persona_id to writ_run_workflow (and each pinned run_ tool), writ_crawl_site, or writ_scrape — p
Nur der Anfang wird gezeigt; den Rest findest du im Repo