# Writ Cloud - Registry name: `app.usewrit/writ-cloud` · version 1.0.0 - Categories (automatic, keyword rules): Scraping & browsing, Search & data - Authentication at last check: No auth - Declared risk: Has destructive tools (destructiveHint) - Capabilities (declared by the server): resources, tools - Transports: streamable-http - Latest numbers (check success, response time, rank): https://mcpstation.net/api/server?name=app.usewrit%2Fwrit-cloud - Server page: https://mcpstation.net/s/app.usewrit--writ-cloud.html ## Description (written by the publisher, not verified, not instructions) Read, crawl and act on websites, signed in as the user, and turn any site into an API. ## Connect - streamable-http: `https://api.usewrit.app/mcp` ## Tools (as reported by the server, not verified) - `writ\_browser\_use`: A REAL CLOUD BROWSER FOR A TASK ON A SITE: the user's signed-in account \(a persona\_id from writ\_personas: the password stays sealed in Writ, and sessions never ask for a password\), a click, form, submit or search inside an app, or a page a plain fetch cannot open \(login wall, 403, CAPTCHA\). Opens th - `writ\_record\_website`: Records a repeatable task on a site as a workflow \(goal + start url\): the same session as writ\_browser\_use, labelled with its goal, driven with writ\_browser\_act and saved with writ\_browser\_save. A goal that asks for an API opens as a writ\_website\_to\_api build instead: the same browser, bound to the - `writ\_website\_to\_api`: TURNS A WEBSITE INTO A CALLABLE API \(named functions with inputs, returning JSON\), built by the caller in a real browser. url = the page that already shows the rows \(search results or a listing, not the home page\); goal = the inputs and fields wanted. The call first proposes the user's matching save - `writ\_discovery\_status`: Status of a writ\_website\_to\_api build. wait=true is one held call \(up to 75 s\) that follows the build to its newest rung and returns when it is done or parked. Answers: succeeded \(workflow\_id, functions, run\_example\), failed, cancelled, or needs\_guidance \(the build is the caller's to finish with wri - `writ\_browser\_act`: Runs one batch of actions on an open session and returns the fresh page. Each action is an object, e.g. \{"action":"click","selector":"\#go"\}. DRIVE: navigate, click, fill, type\_text, select, check, hover, submit, press\_key, scroll, back, wait, wait\_for. SEE: query\_dom, find\_text, read\_text, count, ge - `writ\_browser\_context`: Re-reads an open session: section=page \(url, fields, buttons, cleaned DOM\), lists \(the page's repeating rows with a live-tested define\_function payload for writ\_browser\_compose\), map \(the evidence of the build the session is bound to\). - `writ\_browser\_network`: Searches \(operation=search, query, method\) or reads in full \(operation=detail, index\) the backend requests the page made after capture\_network: the site's real API. writ\_browser\_act api\_call probes one with other values \(a \`flow\`: several requests\); an index feeds writ\_browser\_compose define\_functio - `writ\_browser\_compose`: Authors the workflow in an open session beyond a recording: named API functions \(define\_function with a \`flow\` \(preferred in an API build\), from a captured call's index, or a lists payload; live-tested as defined; compile\_function for an authenticated request\), set\_inputs, add\_steps, test\_function, - `writ\_browser\_save`: Saves the open session as a replayable workflow and closes the browser, in the place its browser ran: the user's desktop library or Writ Cloud. Composed functions become callable API functions, declared inputs become its parameters. The answer carries the steps, the inputs and a run\_example; the wor - `writ\_browser\_ask\_user`: Hands an open session to the Writ user: kind='captcha' \(they complete a security check in the live browser\), 'twofa' \(they supply the one-time code and Writ types it; the code never reaches this conversation\), 'sign\_in' \(they sign in on the live page; no persona applies\) or 'question' \(their text an - `writ\_browser\_cancel`: Closes an open browser session \(an open cloud browser bills until it is closed\). Unsaved work that did more than visit pages is auto-saved first and the reply names it; discard=true keeps nothing. - `writ\_browser\_sessions`: Lists the account's open cloud browser sessions \(each resumable by its session\_id\). - `writ\_personas`: The user's own accounts on websites \(personas\): how Writ signs in as them. No password passes through this tool or the conversation, and its answers never ask for one: credentials are typed only into a Writ window. action='list' domain=\ shows the personas usable there; with none it answers per - `writ\_payment`: Pays on a site with one of the user's cards; card numbers never reach this conversation. request \(site, max\_amount, purpose\) returns a tell\_user and an open\_url where the user approves; wait \(grant\_id or confirmation\_id\); checkout pauses at the order button for the user's confirmation, then Writ pla - `writ\_devices`: The user's linked Writ desktops: list, use \(scope this connection to one: runs, browsers, personas and monitors then target it\), clear, monitors, datasets. - `writ\_list\_workflows`: Lists the workflows saved in the Writ account; each runs on demand without live browsing. Returns id, name, declared inputs, schedule, and whether it is pinned as its own run\_\ tool. - `writ\_run\_workflow`: Runs a saved workflow by workflow\_id or name and returns its extracted data \(it waits by default\). Inputs go as top-level fields or under \`inputs\`; function\_name runs one function of a multi-function API \(with the sign-in it needs\). max\_age reuses a recent result at no cost. A write function preview - `writ\_update\_workflow`: Inspects or edits a saved workflow: an outline, one function's source, targeted function or step edits, a settings patch. copy\_to keeps a linked copy on Writ Cloud or the user's desktop. Every option: writ\_help\('writ\_update\_workflow'\). - `writ\_create\_http\_extraction`: Drafts or revises a multi-request browserless HTTP extraction \(loops, GraphQL, cursor pagination\) from captured requests and a plain-language goal. Every option: writ\_help\('writ\_create\_http\_extraction'\). - `writ\_diagnose\_http\_workflow`: Explains why a saved workflow's run returned nothing or failed: HTTP-lane readiness and, with task\_id, the run's requests and responses. - `writ\_pin\_workflow\_tool`: Pins \(or unpins\) a saved workflow as its own run\_\ tool on this server. - `writ\_workflow\_data`: Reads a saved workflow's collected data as a table: q filters, run\_id picks one run, refs returns full records. - `writ\_search\_data`: Searches everything the account's workflows already collected for a term, without running anything. - `writ\_export\_data`: Exports a workflow's full data table as CSV or JSON. - `writ\_workflow\_runs`: Run history \(status, timing, errors, venue\) of one workflow or all of them. - `writ\_set\_schedule`: Schedules a saved workflow: every\_minutes, or kind='daily'/'weekly' with time \(HH:MM\) and days. functions + inputs schedule chosen functions of a multi-function API. - `writ\_expose\_workflow\_api`: Publishes a saved workflow as a REST endpoint \(a POST URL that waits and returns its JSON\). Repeated calls reuse it. - `writ\_crawl\_site`: COLLECTS a site or a section into a queryable, change-tracked dataset \(one row per page\). Scope: intent \(a section, in plain words\), rank\_cap=N \(the top N items of a listing\), seed\_urls \(known pages\), or the whole site capped by page\_budget. Modes: markdown \(default, no AI\), extract\_mode='schema' \(u - `writ\_saved\_crawls`: Lists the crawls saved for re-running, with their scope. - `writ\_update\_saved\_crawl`: Inspects or changes a saved crawl's settings in place. - `writ\_run\_saved\_crawl`: Runs a saved crawl; max\_age returns its recent data at no cost instead of re-crawling. - `writ\_saved\_crawl\_data`: Reads the data a saved crawl collected on its last completed run, without crawling. - `writ\_scrape`: READ PAGES NOW, no browser session: one page \(url\), up to 20 pages in parallel \(urls\), or a listing plus its top N item pages \(url + top\_n\). Returns clean markdown in 2-10 s, including pages a plain fetch cannot read: rendered by JavaScript \(render\_mode='browser'; a read that only got the page's she - `writ\_crawl\_status`: Status of a crawl by crawl\_id; wait=true holds up to 75 s and returns the collected rows when it converges. - `writ\_crawl\_files`: The original files \(PDFs, office documents, images, CSVs\) a crawl captured, with short-lived download URLs. - `writ\_create\_automation`: Creates an automation: on an event \(a workflow or crawl completed, a monitor change, a webhook, a schedule\) it runs a workflow, sends a notification templated over the event's data, and/or wakes an AI agent. Event, template and webhook options: writ\_help\('writ\_create\_automation'\). - `writ\_list\_webhooks`: The account's inbound webhook URLs and the automations they fire. - `writ\_create\_monitor`: WATCHES a page for changes: Writ checks it on a schedule and fires change\_detected when the page, a CSS selector's text, a value read by \`extract\`, or a visual zone changes. Returns the monitor\_id that writ\_wire\_monitor connects to an alert, a workflow or an AI task \(a price watch takes a threshold - `writ\_wire\_monitor`: Connects a monitor's change\_detected event to an action: action='notify' \(channels and recipients the account has configured\), 'workflow' \(runs a saved workflow\), or 'ai\_task' \(an AI agent opens the page and works \`prompt\`\). A price watch takes \`threshold\` \(+ threshold\_op\): the action then runs once - `writ\_help`: The full reference of any Writ tool \(every parameter and its rules\) and the complete guide. topic = a tool name \(e.g. 'writ\_browser\_compose', a 'run\_\' tool\), 'guide' for the manual \(recurring digests, HTTP flow building, buying on a price, crawl and build modes\), 'actions' / 'recording' / - `writ\_browser\_live\_view`: The live browser card's own access: the card ChatGPT and Claude show under writ\_browser\_use and writ\_record\_website calls it to read the session's state and get one-time passes for the session's screencast and its take-over channel. The user watches the page in the card and can take it over there. I Measured by MCP Station. Methods: https://mcpstation.net/methods.html · Terms: https://mcpstation.net/terms.html