MCP server
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
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.
Everything still open across all eight categories, most severe first, filterable by category, severity or page. This is where an agent starts a session.
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.
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.
Scores across eight dimensions, every detected issue, the quick wins and priorities, and what the page already does well.
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.
Recent scans with their URLs and scores, so you can say "compare my last two runs" instead of hunting for an ID.
Setup
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. 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. Hand it the queue
“Work through the open critical issues on our pricing page.” What happens next is below.
A real session
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.
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.
The analysis and the code live in the same conversation. Free to connect, and the citability checker does not spend credits.