Skip to content

Quickstart

One command issues a free API key and wires Marrow into every agent you have:

Terminal window
npx -y marrow-setup --email you@example.com

It detects your agents (Claude Code, Cursor, Claude Desktop, VS Code, Codex, Windsurf, Antigravity), writes the MCP server config in the right format, backs up existing config, and adds the Marrow skill. Nothing is installed globally — it runs once and exits.

Ask your agent:

Search with Marrow for the latest changelog on astro.build

Behind the scenes marrow_scout maps the page’s links and structure, then marrow_read pulls clean markdown — without dumping the whole site into context.

Plain HTTP with a Bearer key. The REST API is Firecrawl-compatible — point your client at Marrow, keep your code.

Terminal window
curl -X POST https://api.marrow.navii.online/v1/scrape \
-H "Authorization: Bearer mrw_xxx" -H "Content-Type: application/json" \
-d '{"url":"https://en.wikipedia.org/wiki/Web_scraping","formats":["markdown"]}'

The page comes back in data.data.body — one read, one credit. markdown is the only format served today; anything else is refused by name rather than quietly swapped.

Prefer your terminal? Install the CLI and skip the curl — see Use from your shell.

A read with no maxAge may be answered from a stored capture up to 24 hours old. That is usually what you want — and it is the wrong setting while you are still writing a parser, because a day-old capture makes a parser bug and a source change look identical. Send maxAge: 0 to force a live capture.

The freshness default, in full — when to pin it, and how to tell which one you got.