MCP server

Your agent works the queue.

FixRoast speaks the Model Context Protocol, so Claude and Cursor can read your issue queue, ship the fix, close the issue and verify it without you switching windows. The queue is writable, not just readable: your agent marks what it fixed and snoozes what does not apply, and the next scan skips it.

What your agent gets

Seven tools. No ceremony.

Check AI citability

Can ChatGPT and Perplexity quote this page?

Reads the live HTML and scores schema markup, answer structure, heading hierarchy, trust signals and brand identity. Returns the checks that failed and the fix for each. Runs on any public URL and costs no credits.

List issues

Pull the work queue into the conversation.

Everything still open across all eight categories, most severe first, filterable by category, severity or page. This is where an agent starts a session.

Get an issue

Read the specifics before writing the fix.

The recommended change plus the evidence behind it, suggested copy alternatives, generated FAQ questions, ready-to-paste JSON-LD, along with how long it has been open and any notes left on it.

Update an issue

Record what you did.

Mark it in progress, fixed or won’t fix, snooze it so upcoming scans skip it, and leave a note. Marking something fixed records your claim; only a rescan can verify it.

Open a report

Pull a full analysis into the conversation.

Scores across eight dimensions, every detected issue, the quick wins and priorities, and what the page already does well.

Run a scan

Close the loop from the editor.

Re-runs all eight categories, updates the queue, and closes the issues whose checks now pass. Returns what changed rather than a wall of findings. Spends a credit and takes 60-90 seconds.

Browse your history

Find the scan you mean.

Recent scans with their URLs and scores, so you can say "compare my last two runs" instead of hunting for an ID.

Setup

Two minutes, one key.

  1. 1. Create a key in Settings

    It is shown once and stored only as a hash. Revoke it any time, and anything using it stops immediately.

  2. 2. Point your client at it

    Claude Code

    claude mcp add --transport http fixroast https://fixroast.com/api/mcp \
      --header "x-api-key: YOUR_KEY"

    Claude Desktop, Cursor and other clients

    {
      "mcpServers": {
        "fixroast": {
          "url": "https://fixroast.com/api/mcp",
          "headers": { "x-api-key": "YOUR_KEY" }
        }
      }
    }
  3. 3. Hand it the queue

    “Work through the open critical issues on our pricing page.” What happens next is below.

A real session

Read, fix, record, verify.

The point is not that your agent can fetch a report. It is that the queue is writable: it closes what it fixed, defers what does not apply, and the next check decides whether it was right.

claude code

you › Work through the open critical issues on our pricing page.

    → list_issues { url: "https://acme.com/pricing", severity: "CRITICAL" }

2 open · most severe first

CONVERSION Two competing CTAs in the hero split the primary action

AEO No FAQ schema, assistants have nothing question-shaped to quote

    → get_issue { issueId: "cmv2q…" }

No FAQ schema · open 24 days · seen in 4 scans

evidence.suggestedQuestions [ "What does it cost?", "Is there a free tier?", … ]

evidence.codeSnippet <script type="application/ld+json"> … </script>

The questions and the JSON-LD come back with the issue, so there is nothing to go and look up.

… edits pricing/page.tsx, adds the FAQ block and the schema …

    → update_issue { issueId: "cmv2q…", status: "FIXED", comment: "Added FAQ block + FAQPage JSON-LD" }

status: FIXED

Recorded as fixed. It stays unverified until a scan re-runs the check.

Marking it done records your claim. It does not mark it verified, only a passing check does that.

you › The second one is intentional, we A/B test two CTAs. Leave it alone for a quarter.

    → update_issue { issueId: "cmv2r…", status: "SNOOZED", snoozeDays: 90 }

status: SNOOZED · returns 10 Jan 2027

Snoozed issues drop out of the queue and the next scan will not raise them again.

you › Did the schema fix land?

    → check_ai_citability { url: "https://acme.com/pricing" }

score 84/100 (was 71)

failed,

passed FAQ schema, Direct answer blocks, Question headings, …

Free, and instant. Enough to confirm a structural fix without spending a credit.

you › Good. Run the full scan so the queue is current.

    → scan { url: "https://acme.com/pricing" }

overall 78 (was 66)

issuesFound 31 · newIssues 2 · verifiedFixed 4

next: Call list_issues to see what is still open.

verifiedFixed counts checks that were failing and now pass. Those four closed themselves; nobody had to claim it.

The AEO re-check above runs live and costs nothing, which is usually enough to confirm a structural fix. For the full picture your agent can call scan, which re-runs all eight categories, closes the issues whose checks now pass and tells you how many. It takes 60–90 seconds and spends one credit, so it is worth calling after a batch of fixes rather than between each one.

Stop copying reports into your editor.

The analysis and the code live in the same conversation. Free to connect, and the citability checker does not spend credits.

FAQ

MCP questions