
Writ MCP server
Which servers in the official MCP registry are Writ's own, whether they answer, and what they offer. A program checked each of these, nobody copied them from a product page.
read 2026-10-20
- Registry nameapp.usewrit/writ-cloudverified in the MCP registry
The registry name sits under usewrit.app. The registry only lets a publisher use that namespace after proving control of the domain through DNS or HTTP.
- Stateanswerschecked 2026-10-20
- Tools41
- Server calls itselfWrit Cloud
- Server version1.0.0
- Protocol version2025-06-18
On 2026-10-20 the server answered initialize and tools/list without a sign-in. First answer in 343 ms.
- Its tools do every use case we checked: crawl a whole site into one dataset; monitor a page and alert on changes.
Once connected
- For "crawl a whole site into one dataset", the likely first call is writ_crawl_site.
- For "monitor a page and alert on changes", the likely first call is writ_create_monitor.
- writ_update_workflow, writ_create_http_extraction, writ_set_schedule, writ_update_saved_crawl, writ_create_automation change data without a sign-in: anyone with the address can call them.
- Parameters are untyped or undescribed in 36 of 41 tools: check arguments before calling.
Said by rules from the measurements above. The likely first call is a model's pick from the tool list; read its description before relying on it.
- INITE MCP score67 of 100answers 100 · does the job 100 · definitions 85 · context 71 · use 29 · lowered by the warning signs below
- What an agent can do with it2 of 2 use cases
- Use28 npm downloads a week1 GitHub stars
- Answered100% of days7 of 7 daily checks
- Median first answer351 ms
- Space in an agent's context≈ 8,854 tokensthe definitions of all its tools (41), which an agent carries on every turn
- Tool definitionsB · 85 of 100
- Typed results0 of 41 toolsdeclared outputSchema: results come typed, read once
- Parameters without a description: in 36 of 41
What an agent can do with it
- can do · crawl a whole site into one dataset
- can do · monitor a page and alert on changes
- not sure · automate logins to legacy internal systems
Each of the product's use cases, put to Jev against this server's tool list: can an agent do it with these tools?
Worth a look
- Tools that change data, on a server that answers without a sign-in: writ_update_workflow, writ_create_http_extraction, writ_set_schedule, writ_update_saved_crawl, writ_create_automation
A program checks the server once a day: initialize and tools/list, no model. Tokens are the definitions' length at about four characters a token. The grade averages six checks of every tool's name, description, schema and annotations; it says how well the tools are described, not whether they work. The score weighs what was measured and nothing else: answering (30%), doing the product's job (25%), definitions (20%), context (10%) and use (15%). A part that was not measured is left out, and a hidden instruction caps the score at 40. The state of vendors' MCP servers: method and numbers →
writ_browser_useA 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…
writ_record_websiteRecords 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_apiTURNS 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…
writ_discovery_statusStatus 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…
writ_browser_actRuns 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…
writ_browser_contextRe-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_networkSearches (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…
writ_browser_composeAuthors 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…
writ_browser_saveSaves 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…
writ_browser_ask_userHands 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…
writ_browser_cancelCloses 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_sessionsLists the account's open cloud browser sessions (each resumable by its session_id).
writ_personasThe 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'…
writ_paymentPays 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…
writ_devicesThe 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_workflowsLists 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_<name> tool.
writ_run_workflowRuns 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)…
writ_update_workflowInspects 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_extractionDrafts 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_workflowExplains 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_toolPins (or unpins) a saved workflow as its own run_<name> tool on this server.
writ_workflow_dataReads a saved workflow's collected data as a table: q filters, run_id picks one run, refs returns full records.
writ_search_dataSearches everything the account's workflows already collected for a term, without running anything.
writ_export_dataExports a workflow's full data table as CSV or JSON.
writ_workflow_runsRun history (status, timing, errors, venue) of one workflow or all of them.
writ_set_scheduleSchedules 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_apiPublishes a saved workflow as a REST endpoint (a POST URL that waits and returns its JSON). Repeated calls reuse it.
writ_crawl_siteCOLLECTS 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…
writ_saved_crawlsLists the crawls saved for re-running, with their scope.
writ_update_saved_crawlInspects or changes a saved crawl's settings in place.
writ_run_saved_crawlRuns a saved crawl; max_age returns its recent data at no cost instead of re-crawling.
writ_saved_crawl_dataReads the data a saved crawl collected on its last completed run, without crawling.
writ_scrapeREAD 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…
writ_crawl_statusStatus of a crawl by crawl_id; wait=true holds up to 75 s and returns the collected rows when it converges.
writ_crawl_filesThe original files (PDFs, office documents, images, CSVs) a crawl captured, with short-lived download URLs.
writ_create_automationCreates 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…
writ_list_webhooksThe account's inbound webhook URLs and the automations they fire.
writ_create_monitorWATCHES 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…
writ_wire_monitorConnects 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…
writ_helpThe 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_<workflow>' tool), 'guide' for the manual (recurring digests, HTTP flow building, buying…
writ_browser_live_viewThe 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…
How to connect
Add the server to your MCP client config. Claude Desktop, Cursor and most other clients read this shape:
{
"mcpServers": {
"writ-cloud": {
"type": "http",
"url": "https://api.usewrit.app/mcp"
}
}
}Add it
Claude Code, in a terminal
claude mcp add --transport http usewrit https://api.usewrit.app/mcpclaude.ai, ChatGPT and other clients: add https://api.usewrit.app/mcp as a custom connector in the settings.
Also shipped through: npm
Each line is something a program found when it went looking: the registry entry, the server's own answer, a spec that parses. A missing line means we did not find it, not that it does not exist.
Cookies
Before we count this visit
Analytics and ad measurement tell us which pages and which of our ads do their job: Google Analytics and Google Ads, the Meta pixel, Yandex Metrica, and one first-party id of our own. Nothing is stored until you answer, and declining changes nothing about the site.