# The MCP server

> One Streamable HTTP endpoint at /mcp speaking JSON-RPC. Connect a client and scan from a conversation.

## Connect a client

Codex:

```bash
codex mcp add axrush --url https://axrush.com/mcp
```

Claude Code:

```
claude mcp add --transport http axrush https://axrush.com/mcp
```

Cursor, and any client that reads an mcp.json:

```json
{
  "mcpServers": {
    "axrush": { "url": "https://axrush.com/mcp" }
  }
}
```

In Claude Desktop, add it as a custom connector with the same URL, under Settings and Connectors.

## Anonymous tools

Available to every connection, no key and no account, rate limited like the public API because a scan sends real traffic:

- `scan_site` with `{ "domain": "example.com" }`: measures a domain and returns text and structured findings, with measurement date, engine version and applicability
- `get_report` with `{ "host": "example.com" }`: reads the stored public report without sending the site any traffic
- `get_agent_tasks` with `{ "host": "example.com" }`: reads the task replays a site's owner published

## Your sites, authenticated

An organization API key unlocks your sites, scans, fixes, comparisons, verification records, Answers and private agent runs. API access is part of the paid plan. Reading existing Answers and agent runs never starts a model call or spends credits.

An anonymous connection never sees these tools, so an agent is never taught about a door it cannot open. [Create keys on your account page](https://axrush.com/account/api)

- `list_my_sites` with `{}`: lists your sites with their ids and latest scores
- `get_my_report` with `{ "site_id": "..." }`: the latest full report for one of your sites, pages included
- `get_my_history` with `{ "site_id": "..." }`: the score history with the engine version on every row
- `scan_my_site` with `{ "site_id": "..." }`: queues a scan of your own site and returns its id at once
- `get_my_scan` with `{ "scan_id": "..." }`: polls one scan until it settles; succeeded carries the full report
- `get_my_fixes` with `{ "site_id": "..." }`: the open work on one site, ordered by the points each fix returns
- `get_my_fix` with `{ "site_id": "...", "check_id": "llms-txt" }`: every finding behind one check, its guide, and the whole fix as one prose block
- `get_my_artifact` with `{ "site_id": "...", "kind": "llms_txt" }`: the bytes of a generated file, with the path and headers to serve it at
- `compare_my_scans` with `{ "site_id": "..." }`: compares the latest two finished scans; optionally supply both before_scan_id and after_scan_id. Reports resolved origin checks, regressions, and warnings when the engine or coverage changed
- `get_my_verifications` with `{ "site_id": "..." }`: reads existing fix verification records without scheduling work
- `get_my_answers` with `{ "site_id": "..." }`: lists stored Answers passes and reads the latest finished one; pass_id selects another pass, including one still running
- `get_my_agent_runs` with `{ "site_id": "..." }`: reads stored agent runs, including unpublished ones, with verdicts, answers and evidence; run_id selects one run

## Read, fix, verify

Start with list_my_sites and get_my_report. Read get_my_fixes, then get_my_fix for the selected check. After publishing your changes, call scan_my_site and poll get_my_scan after pollAfterSeconds. Use the baseline and completed scan ids with compare_my_scans. Comparisons cover origin findings; a changed engine or page coverage prevents declaring fixes or regressions confirmed.

Every tool returns readable text and structuredContent matching its outputSchema, with a nextStep. Check isError first: errors contain an error code and message. N/A checks have applicable=false and score=null, and do not count as failures.

list_my_sites, get_my_history, get_my_verifications, get_my_answers and get_my_agent_runs accept limit (1–50, default 20) and offset (default 0). Repeat with nextOffset as offset and the same limit until nextOffset is null. In Answers, pagination applies to the pass list; selectedPass identifies the pass whose results are returned.

Native clients need no Origin header. Browser clients must use the site origin or an origin explicitly allowed by the deployment. Supported MCP protocol versions: 2025-06-18 and 2025-03-26. The endpoint is stateless and accepts JSON requests up to 64 KiB.

### Connect with your key

Codex:

```bash
codex mcp add axrush --url https://axrush.com/mcp --bearer-token-env-var AXRUSH_API_KEY
```

Set AXRUSH_API_KEY to your organization API key in the environment that launches Codex, then restart the client. Codex sends it as a bearer token.

Claude Code:

```
claude mcp add --transport http axrush https://axrush.com/mcp \
  --header "Authorization: Bearer axr_..."
```

```json
{
  "mcpServers": {
    "axrush": {
      "url": "https://axrush.com/mcp",
      "headers": { "authorization": "Bearer axr_..." }
    }
  }
}
```

---

Markdown representation of https://axrush.com/developers/mcp
