Writ Cloud logo

Writ Cloud

Read, crawl and act on websites, signed in as the user, and turn any site into an API.

Install Writ Cloud

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "writ-cloud": {
      "command": "npx",
      "args": [
        "-y",
        "writ-mcp"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

We couldn’t confirm it starts correctly

The install command installed and started the server, which then stopped for configuration (such as an API key) that our sandbox does not have — expected for servers that connect to your account.

npx -y writ-mcp

Process exited before answering initialize.

This is an experimental automated check and can have false negatives — missing environment variables, a slow cold install, etc. It doesn’t necessarily mean something’s wrong. Last checked 20d ago.

Overview

Tools34

What Writ Cloud lets your agent do. Expand a tool for its parameters.

Self-reported~631 tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 2d ago

Recent health check succeeded.

6/6 checks healthy over the last 24d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 11d ago via OSV.dev · writ-mcp (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars1Stargazers on the source repository.
npm downloads359Package downloads in the last 30 days.
Last commit1mo agoMost recent push to the default branch.
Install checkRunsOur sandbox started it; it then asked for an API key or config.
Tools exposed34Callable tools this server registers over MCP.
Directory activity1 viewsConfig copies, upvotes, and views on AllMCPs.

From the project README

writ-mcp — the official Writ MCP server connector

CI npm version License: MIT Node 18+ Zero dependencies Published with npm provenance PRs welcome

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.

Terminal: claude mcp add writ-selfhost, then claude mcp list reporting Connected

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 /mcp endpoint with an Authorization: Bearer <key> header.

Quick start

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:

Terminal
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:

Terminal
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):

Terminal
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.

Terminal
claude mcp list

Writ Cloud is the default target when you pass no --url (https://api.usewrit.app). Pass --url to 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:

The Connect page of a self-hosted Writ coordinator, showing the writ-mcp one-liner and the tools it exposes

Claude Desktop / Cursor (config file)

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:

config.json
{
  "mcpServers": {
    "writ-selfhost": {
      "command": "npx",
      "args": ["-y", "writ-mcp"],
      "env": {
        "WRIT_COORDINATOR_URL": "https://writ.example.com",
        "WRIT_API_KEY": "<YOUR_API_KEY>"
      }
    }
  }
}

Without npm

A self-host install bundles this connector at connectors/writ-mcp. There is no build step, so you can run it straight from disk:

bash
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 is writ-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.

Tools you get

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.

ToolWhat it doesWrit CloudSelf-hosted
writ_list_workflowsYour saved workflows (a run_<name> tool is added only for workflows you pin)yesyes
writ_run_workflowRun one and wait for the extracted datayesyes
writ_pin_workflow_toolPin or unpin a workflow as its own run_<name> tool — off by default, capped; everything still runs via writ_run_workflowyesyes
writ_update_workflowRead a workflow's outline or edit it in place (settings, steps, functions, its agent skill)yesyes
writ_diagnose_http_workflowShow what every request of a run was answered with, and whether it ran without a browseryesno
writ_create_http_extractionAuthor a multi-request browserless extraction from captured requestsyesno
writ_workflow_dataRead a workflow's accumulated data tableyesyes
writ_search_dataSearch across everything already collectedyesyes
writ_export_dataExport a workflow's data as CSV/JSONyesyes
writ_workflow_runsRun history and statusyesyes
writ_set_scheduleSchedule a workflow (interval / daily / weekly)yesyes
writ_expose_workflow_apiPublish a workflow as a callable REST endpointyesyes
writ_scrapeRead a page, or several, as clean markdown (Cloud also reads a listing's top N)yesyes
writ_crawl_site / writ_crawl_statusStart and poll a distributed site crawlyesyes
writ_crawl_filesThe original documents a crawl captured (PDFs, office files, images)yesno
writ_saved_crawls / writ_run_saved_crawl / writ_saved_crawl_dataSaved crawls (see below)yesyes
writ_update_saved_crawlInspect or change a saved crawl's settingsyesno
writ_personasSee your saved sign-in identities and get them ready (see below)yesyes
writ_paymentPay with a card the user approves; Writ places the order once they confirmyesno
writ_devicesYour linked Writ desktops: list them, or point this connection at oneyesno
writ_create_automationEvent or clock → run a workflow, notify, or wake an agentyesyes
writ_list_webhooksYour inbound webhook URLs and the automations they fireyesyes
writ_create_monitor / writ_wire_monitorWatch a page and react to changesyesyes
writ_browser_useOpen a real browser your assistant drives turn by turnyesyes
writ_record_websiteRecord a repeatable task as a workflowyesyes
writ_website_to_apiTurn a website into a callable APIyesyes
writ_discovery_statusFollow an API build to its resultyesno
writ_browser_act / _context / _network / _save / _cancelAct in the browser, read the page and its network calls, save or close the sessionyesyes
writ_browser_composeDefine named functions, inputs and explicit steps in a sessionyesno
writ_browser_ask_userHand a CAPTCHA, a code or a decision to the user in the live browseryesno
writ_browser_sessionsOpen browser sessions you can resumeyesno
writ_record_start / _act / _context / _network / _save / _cancelOlder names of the browser loop, kept for compatibilitynoyes

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.

Reusing a recent result (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:

JSON Config
{ "name": "run_price_check", "arguments": { "sku": "B0C123", "max_age": 300 } }
  • omitted or 0 — always run fresh (the default; nothing goes stale on its own).
  • N — reuse a result younger than N seconds, otherwise run.

A reused answer carries _cache: {hit: true, age_seconds: N} so the assistant can tell how current it is.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Writ Cloud

Writ Cloud is an MCP server that connects stdio MCP clients to Writ, enabling assistants to run saved browser workflows, read collected data, search past results, schedule workflows, expose them as REST endpoints, and start site crawls while signed in as the user.

Connect by creating a Writ API key and running the connector with that key in the WRIT_API_KEY environment variable. For example, use `npx -y writ-mcp` without `--url` to target Writ Cloud at `https://api.usewrit.app`, then verify the connection with your client.

The Writ MCP server lets an assistant call your saved browser workflows, read their collected data, search past results, schedule workflows, expose workflows as REST endpoints, and initiate site crawls. The available tools and schemas come from the connected Writ instance.

Provide the API key through the `WRIT_API_KEY` environment variable rather than the command line. The `--api-key` option also works, but it can expose the key through the local process argument list and shell history.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewWrit Cloud AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/writ-cloud?style=directory)](https://allmcps.com/mcp/writ-cloud)
HTML Embed
<a href="https://allmcps.com/mcp/writ-cloud"><img src="https://allmcps.com/api/badge/writ-cloud?style=directory" alt="Writ Cloud on AllMCPs" /></a>