Connect Claude Code or Codex to FixVis
Give your coding agent your FixVis issues. It reads the evidence, fixes the problem in your repo, moves the ticket, and asks FixVis to verify the live page — and it can check AI visibility across markets, create and draft content from gaps, review delivered-fix outcomes, and start scans.
MCP is available on Starter and above. On the Free plan you can see what it does, but you can't connect a client — see plans.
What it does
FixVis runs an MCP server at https://api.fixvis.ai/mcp. Once your coding agent is connected, it can:
- read your FixVis issues, worst first, with the evidence from your live site;
- fix them in your repo — FixVis supplies the facts and a reference snippet, your agent makes the code change;
- move the ticket on your FixVis board (To Do, Doing, Done);
- ask FixVis to verify the fix on the live page;
- show AI visibility (Share of Discovery, citations, competitors) for one market or compare across every market you track;
- find content gaps, put one on the board, and write a brief or draft for it;
- summarize what delivered fixes and content achieved — indexing, citations, clicks, referral visits;
- start a new scan of one market or all of them, and generate a content brief or draft — an extra scan and content use credits (today's included scan of a market is free), always after you confirm (see Credits and the confirm step).
It covers technical and on-page issues, markets and AI visibility, content and outcomes.
Before you start
- A FixVis workspace on Starter or above, with at least one audited project.
- Claude Code or Codex (the CLI or the desktop app).
Connecting costs nothing extra on any paid plan.
Connect Claude Code
Run this in your terminal:
claude mcp add --transport http fixvis https://api.fixvis.ai/mcp
Then, in Claude Code, run /mcp, choose fixvis and pick Authenticate. Your browser opens:
- Sign in to FixVis (skipped if you are already signed in).
- On the consent screen, choose the organisation.
- Tick the projects this connection may use.
- Pick Read your FixVis data or Read and update (move and verify issues, create content tasks; extra scans and content generation use credits, always after you confirm).
- Click Approve.
Back in Claude Code, /mcp shows fixvis as connected. Nothing is pasted — there is no token to copy.
Connect Codex
Add the server, then sign in:
codex mcp add fixvis --url https://api.fixvis.ai/mcp
codex mcp login fixvis
codex mcp login fixvis opens the same browser sign-in and consent screen as above. Check the connection with:
codex mcp list
The Codex desktop app uses the same configuration (~/.codex/config.toml). In the app, Settings → Plugins → MCPs shows fixvis with a toggle, and typing /mcp in a thread shows it connected.
The tools
Read tools work on every connection. Write tools need a connection approved with Read and update; run_market_scan and generate_content can use credits and always ask you to confirm first (see Credits and the confirm step).
| Tool | Access | What it does |
|---|---|---|
list_projects | Read | The projects in this connection, with the latest audit and open technical / on-page counts. |
list_issues | Read | A worst-first list of issues for a project, filterable by area, severity and status. |
get_issue | Read | Everything needed to fix one issue: why it matters, the solution, a reference snippet, the evidence, affected URLs and how it will be re-checked. |
explain | Read | A plain-language explanation of an issue or a term (such as JSON-LD) and why it matters for your business. |
move_issue | Write · free | Moves an issue to To Do, Doing or Done on your board and returns its new status. |
verify_fix | Write · free | Re-checks the live page and returns the outcome with its evidence (see How verification works). |
list_markets | Read | The markets (country + language) this project is tracked in, which is primary, whether each one's AI prompts are confirmed, and its latest scan. |
get_market_visibility | Read | Share of Discovery with its trend, citation share, open and critical issues, content-gap count and which tracked prompts the brand wins or loses — one market, default primary. |
get_markets_rollup | Read | Every market side by side: Share of Discovery, citation share, issues, content gaps, a portfolio score and prompts won in some markets but missing in others. |
list_competitors | Read | The competitors FixVis tracks for this project in one market, with where they come from and the latest standing against the brand. |
list_content_gaps | Read | Content opportunities for one market — topics competitors rank or are cited for that the brand is missing — ranked by opportunity score. |
get_content_gap | Read | One opportunity in full: keywords, the AI prompts competitors are cited for, competitor URLs to beat, why the brand isn't winning, and the brief a content task would carry. |
get_content | Read | A generated brief or draft — the Markdown, title, slug, meta description, Content Score and Brand Fit — or its status while still being written. |
create_content_task | Write · free | Puts a content piece on the board, from a content-gap opportunity or as a manual topic. |
set_published_url | Write · free | Records the live URL a content task's piece was published at, so FixVis can measure it in Outcomes. |
get_outcomes | Read | What delivered fixes and content achieved over a period: fixes shipped and verified, pages newly indexed, new AI citations, incremental clicks and referral visits. |
list_delivered_fixes | Read | The fixes and content tasks delivered in a period with their outcome, attribution and confidence. |
get_fix_outcome | Read | One delivered fix's full before/after readings, the deltas, and why it's still awaiting if it is. |
run_market_scan | Write · credits | Starts a new scan (crawl, checks and AI visibility) for one market or all of them. Preview shows the cost and what will run; confirm to submit. |
generate_content | Write · credits | Writes a brief or full draft for a content task in its market's language. Preview shows the cost; confirm to submit. |
Credits and the confirm step
run_market_scan and generate_content can use credits: today's included scan of a market is free, an extra scan beyond it uses 1 credit, and so does a content piece. Call one WITHOUT confirm_token first — it previews the cost, your current balance, and exactly what would run, and returns a confirm_token. Nothing is spent or queued yet. Show the preview to whoever is driving the agent; if they agree, call the SAME tool again with the SAME arguments plus confirm_token to actually run it.
- A scan is charged by the scheduler once it starts; a content piece is charged only if generation succeeds — a failed draft is never billed.
- The token is single-use and expires after 10 minutes. If the plan or price changed since the preview (for example a market was added), confirm refuses with
preview_changedand nothing is charged — preview again. - If a generate_content preview finds the piece already exists or is already generating, it tells you that directly and doesn't offer a token — there would be nothing new to confirm.
- Confirmed paid calls are limited to 10 per hour per connection. Previews don't count against this.
Workflows, with copy-ready prompts
Paste these into Claude Code or Codex, replacing <your-site> with your domain.
Find what to fix first
Use fixvis to list my projects, then show the open technical and on-page issues for <your-site>, worst first.
Understand one issue before touching code
Get the full details of the top issue, explain why it matters for my business, and find where in this repo it comes from. Don't change code yet.
Fix it and move the ticket
Apply the fix, then move that issue to Doing in FixVis.
Verify after you deploy
I've deployed. Verify that fix with fixvis.
Learn a concept
Explain JSON-LD for my business.
Plan content from a gap
What should we write next for Germany?
Create and draft in one go
Create a task for the top gap and draft it.
Check what fixes delivered
How did last month's fixes do?
Run a scan across every market
Run a scan of all markets.
How verification works
Verification checks the public URL, so deploy your fix first — a change that only exists on localhost can't be checked. The outcome is one of:
verified- The fix is live. The card moves to Done.
failed_verification- The issue is still failing on the live page.
partial- The page improved, but the check doesn't fully pass yet.
blocked- The check couldn't run, for example because the page wasn't reachable. The reason is included.
not_verifiable- This issue can't be re-checked automatically. Mark it done on the board yourself.
Verification is free.
Permissions and security
- A connection only sees the organisation and the projects you approved on the consent screen.
- Read your FixVis data can't change anything.
- Read and update can also move and verify issues, create content tasks, and — after you confirm — run scans and generate content, which can use credits.
- Confirmed paid calls (scans, content generation) are limited to 10 per hour per connection.
- Text from crawled or competitor pages, and generated content, is passed to your agent as data, never as instructions.
- Disconnect any time in FixVis → Settings → Developer. The agent loses access on its next call.
- If you leave the organisation, the connection's access ends automatically.
Troubleshooting
- The browser didn't open
- Copy the URL the CLI prints and open it in your browser.
- Asked to sign in again, or a 401 error
- Run
codex mcp login fixvis, or re-authenticate from/mcpin Claude Code. - A project is missing
- It wasn't ticked for this connection, or it hasn't been audited yet. To change the projects, disconnect in Settings → Developer and connect again.
- Wrong organisation
- Disconnect in Settings → Developer, reconnect, and pick the right organisation on the consent screen.
- “out_of_scope”
- That issue type isn't available through MCP yet. Open it in the FixVis app.
- “confirm_invalid”
- The confirm token is wrong, expired (10 minutes) or already used for a different call. Preview again and confirm with the exact same arguments.
- “preview_changed”
- The plan or price changed since the preview (for example a market was added). Nothing was charged — preview again.
- “scan_in_progress”
- One of the markets you asked to scan already has a scan running from the last few hours. Wait for it to finish, or check with
list_markets. - “content_locked”
- The content task is no longer in To Do (it's In Progress or Done). Move it back, or use the app.
- “rate_limited”
- More than 10 confirmed scans or content generations ran on this connection in the last hour. Wait, or finish the rest from the FixVis app.
- “plan_required”
- MCP is available on Starter and above. A Free workspace can't connect, and a workspace that moves back to Free stops answering until it upgrades — see plans.