MCP.Market

writ MCP server

by withwrit·io.github.withwrit/writ·v0.2.0·1 stars

Policy checks for AI agent writes (ALLOW/DENY/STEP_UP) with a tamper-evident audit log.

B82/100grade B
What users say
No reviews yet
Be the first
Safety scan
B82/100

not scanned yet

Adoption
Growing

1 stars371 downloads/wk

Reviews

Write one

Nobody has reviewed writ yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

writ tools

No tool declarations could be read from the package source. They show once the server is installed.

Not scanned yet. New listings are scanned within a day or two of arriving.

How writ compares

Against every graded AI and agents MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
82/100
higher than 65% of 4,460 AI and agents servers
GitHub stars
1
more than 50% of 2,711 AI and agents servers
Downloads a week
371
more than 82% of 1,538 AI and agents servers with a package

Release history: 2 versions in the registry since 2026-10-01, latest 2026-11-02, typically one every 32 days.

Install writ in Claude Code, Cursor or VS Code

claude mcp add writ -- uvx writ-mcp
Add to Cursor

What the publisher says

From the writ repository's README, as published. We do not edit it. Read it on GitHub

pywrit

Find the dangerous writes in your Python agent's code, then gate it. pywrit is the Python client and writ CLI for Writ: an allow/deny gate that sits in front of your agent's consequential writes (database, HTTP, files, email, queues, AWS) and records a hash-chained receipt for every decision.

writ scan is local, deterministic, and free: it parses your code with Python's ast module, makes no network calls, and needs no API key.

Install

pip install pywrit

Requires Python 3.9+. Installs the writ command and the pywrit Python client.

JavaScript/TypeScript devs: run the scanner with no Python setup via npm:

npx writ-scan .

The writ-scan package wraps the same scanner (including TS/JS support). On first run it installs pywrit[polyglot] from PyPI using your Python 3.9+ (one-time); afterwards it starts instantly. See npm/ for details, environment overrides (WRITPYTHON, WRITSCANNOINSTALL), and the install test.

60-second quickstart: scan → apply → gate

1. Scan. See which functions write, and how many of them are gated.

writ scan .
writ scan: /path/to/support-agent
  files scanned: 4  skipped: 0
  write sites: 4 in 3 function(s)
  gated: 0/4 (0%)
  verbs discovered: 3
    crm.update
    payments.refund
    tickets.close

It also prints a risk report (0-100, weighted by risk tier), writes the discovered verbs to writ-policy.json, and shows the instrumentation it would add as a unified diff. Nothing in your code changes yet. writ scan . --score prints just the risk report.

2. Apply. Insert a gate at the top of each writing function.

writ scan . --apply        # shows the diff, then asks before writing
writ scan . --apply --yes  # no prompt (e.g. in CI)

Each gated function now asks Writ before it writes, and fails closed:

def issue_refund(charge_id, amount_cents):
    if _writ_check("payments.refund") != "ALLOW":
        raise PermissionError("writ denied payments.refund")
    ...

Re-run writ scan . and you'll see gated: 4/4 (100%).

3. Gate. Get a free API key, load the discovered policy, and run your agent.

writ key --email you@example.com                  # free API key + tenant
export WRIT_API_KEY=writ_...                      # read by the inserted gate
export WRIT_SPONSOR=acme WRIT_AGENT=support-agent # optional: who is acting
writ scan . --push-policy --key "$WRIT_API_KEY"   # upload the discovered verb policy

Every gated write now gets ALLOW, DENY, or STEP_UP (a human sponsor must approve), and every decision is written to your tenant's tamper-evident audit log:

writ receipts --key "$WRIT_API_KEY"       # latest receipts
writ verify-chain --key "$WRIT_API_KEY"   # verify the receipt hash chain
writ stream --key "$WRIT_API_KEY"         # tail decisions live
writ report --key "$WRIT_API_KEY"         # Agent Action Report

What writ scan detects

Python (.py) files, parsed with the stdlib ast (no extra dependencies):

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

writ: common questions

Is writ MCP server safe?
Mostly: it is graded B (82/100). Read the writ safety report
How do I install writ?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does writ need an API key?
Yes. The registry entry asks for WRIT_API_KEY, WRIT_SPONSOR_TOKEN.
Is writ maintained?
The last commit was 33 days ago (2026-10-02). The latest release is v0.2.0.
What can I use instead of writ?
Servers from other publishers that do the same job: three.ws Provenance MCP server, Roast My Design System MCP server and Kiln MCP server.
How does writ compare with other AI and agents MCP servers?
safety score 82/100 (higher than 65% of 4,460 AI and agents servers); github stars 1 (more than 50% of 2,711 AI and agents servers); downloads a week 371 (more than 82% of 1,538 AI and agents servers with a package). Full comparison.

Alternatives to writ

Same job from other publishers: the closest match first, then the best rated.

  • three.ws Provenance
    Append-only, signed, on-chain-verifiable agent action log — record and audit what agents did.
    B
  • Roast My Design System
    Audit your Design System and serve your Agent the rules that keep AI-written UI on-system.
    A
  • Kiln
    Spawn an object into existence: describe it, and your agent designs it, checks it, and 3D prints it.
    B
  • Roast My Design System
    Audit your Design System and serve your Agent the rules that keep AI-written UI on-system.
    A
  • Vibe Check
    Metacognitive AI agent oversight: adaptive CPI interrupts for alignment, reflection and safety
    B