# Writ Cloud MCP server

> Enables AI assistants to execute recorded browser workflows, crawl websites, and convert web pages into callable APIs.

- Repository: https://github.com/usewrit/writ-mcp
- Page: https://hostedmcp.org/servers/usewrit/writ-mcp
- Transport: stdio, remote
- Stars: 1
- License: MIT
- Latest version: 1.0.0

## Install

### Claude Code

```sh
claude mcp add --env 'WRIT_API_KEY=<YOUR_WRIT_API_KEY>' writ-mcp -- npx -y writ-mcp
```

### Cursor (`~/.cursor/mcp.json`)

```json
{
  "mcpServers": {
    "writ-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "writ-mcp"
      ],
      "env": {
        "WRIT_API_KEY": "<YOUR_WRIT_API_KEY>"
      }
    }
  }
}
```

### VS Code (`.vscode/mcp.json`)

```json
{
  "servers": {
    "writ-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "writ-mcp"
      ],
      "env": {
        "WRIT_API_KEY": "<YOUR_WRIT_API_KEY>"
      }
    }
  }
}
```

### VS Code CLI

```sh
code --add-mcp '{"name":"writ-mcp","type":"stdio","command":"npx","args":["-y","writ-mcp"],"env":{"WRIT_API_KEY":"<YOUR_WRIT_API_KEY>"}}'
```

### Claude Desktop (`claude_desktop_config.json`)

```json
{
  "mcpServers": {
    "writ-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "writ-mcp"
      ],
      "env": {
        "WRIT_API_KEY": "<YOUR_WRIT_API_KEY>"
      }
    }
  }
}
```

### Codex

```sh
codex mcp add writ-mcp --env 'WRIT_API_KEY=<YOUR_WRIT_API_KEY>' -- npx -y writ-mcp
```

### Codex config.toml (`~/.codex/config.toml`)

```toml
[mcp_servers.writ-mcp]
command = "npx"
args = ["-y", "writ-mcp"]

[mcp_servers.writ-mcp.env]
WRIT_API_KEY = "<YOUR_WRIT_API_KEY>"
```

### Gemini CLI

```sh
gemini mcp add -s user -e 'WRIT_API_KEY=<YOUR_WRIT_API_KEY>' writ-mcp npx -- -y writ-mcp
```

### Gemini settings.json (`~/.gemini/settings.json`)

```json
{
  "mcpServers": {
    "writ-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "writ-mcp"
      ],
      "env": {
        "WRIT_API_KEY": "<YOUR_WRIT_API_KEY>"
      }
    }
  }
}
```

## Environment variables

| Name | Required | Secret | Description |
|---|---|---|---|
| `WRIT_API_KEY` | yes | yes | A Writ API key with the mcp scope (Settings -> Developers). |
| `WRIT_COORDINATOR_URL` | no | no |  |

## Tools (32)

- `writ_list_workflows`
- `writ_run_workflow`
- `writ_pin_workflow_tool`
- `writ_update_workflow`
- `writ_diagnose_http_workflow`
- `writ_create_http_extraction`
- `writ_workflow_data`
- `writ_search_data`
- `writ_export_data`
- `writ_workflow_runs`
- `writ_set_schedule`
- `writ_expose_workflow_api`
- `writ_scrape`
- `writ_crawl_files`
- `writ_update_saved_crawl`
- `writ_personas`
- `writ_payment`
- `writ_devices`
- `writ_create_automation`
- `writ_list_webhooks`
- `writ_browser_use`
- `writ_record_website`
- `writ_website_to_api`
- `writ_discovery_status`
- `writ_browser_compose`
- `writ_browser_ask_user`
- `writ_browser_sessions`
- `hit`
- `miss`
- `writ_saved_crawls`
- `writ_run_saved_crawl`
- `writ_saved_crawl_data`

## FAQ

### What is Writ Cloud?

Writ Cloud is a service that allows your assistant to run saved browser workflows, read collected data, search past results, and perform site crawls.

### Can I use this with sites that require a login?

Yes, you can use 'personas' which are saved sign-in identities that include credentials and warm signed-in sessions.

### How do I prevent unnecessary re-crawling of websites?

You can use the 'max_age' argument in workflow tools to reuse recent results, or use 'saved crawls' to reuse previously collected data.
