AI Visibility MCP for Claude Code
In Claude Code, your agent can pull the raw answers ChatGPT, Perplexity, Google AI Overviews, Google AI Mode, Copilot and Gemini actually give. Ask in plain language in the terminal; the answer text and every cited source come back as a tool result. One MCP server, one deliberately narrow tool: fetch_raw_answers. AgentGEO is the answer-access layer for AI agents. The MCP server hands Claude Code raw records - no scores, no conclusions - and Claude Code, which already holds your repo and your context, runs the GEO analysis. When a citation is missing, the same session can read the page, draft the fix and open the PR.
Read this page with an AI
In Claude Code, the raw answers the six engines actually give are one ask away: type a plain-language request and fetch_raw_answers returns the answer text plus every cited source as a tool result. One MCP server, one deliberately narrow tool - and the analysis happens where your context already lives: in the agent, in your terminal, in the repo that ships your site.
Get a free AI-visibility audit → · Read the quickstart → - No card, no account.
Get my free auditConnect AgentGEO to Claude Code
claude mcp add agentgeo -- npx -y agentgeo-mcp --key ag_live_...That is the whole install. claude mcp add registers the server, npx pulls agentgeo-mcp from npm (stdio transport, zero npm dependencies, Node.js 18+), and on your next session the agentgeo tools appear in Claude Code's tool list. A live ag_live_ key comes with a plan. Want to test the wiring before fetching anything real? An ag_test_ key always returns clearly labelled demo records at zero credits.
When Claude Code calls fetch_raw_answers, each engine comes back as its own per-surface record - the raw answer, its sources in cited order, timing and provider metadata (the full record also carries the raw providerFields):
{
"surfaceKey": "perplexity",
"status": "delivered",
"answerText": "...",
"sources": [
{ "title": "...", "url": "https://...", "position": 1 }
],
"fetchedAt": "2026-07-13T09:12:04Z",
"latencyMs": 8412,
"providerRecordId": "..."
}What to ask once it's connected
No arguments to memorize - describe the check and Claude Code shapes the call. Say "in Germany" and it passes country through (it defaults to US). One caveat worth knowing: language only reaches Google AI Overviews, where it drives the search locale - the chatbot surfaces take a country and no language field at all. Asks that do real GEO work:
- "Fetch what ChatGPT and Gemini answer for 'best invoicing software for freelancers' and list which domains each cites."
- "Run 'how to add a payment link to an invoice' across all six surfaces and tell me which engines cite docs.ourdomain.com - and at what position."
- "Pull Perplexity's answer for our main category query. If our docs aren't cited, read docs/, propose changes that would earn the citation, and open a PR."
- "Diff the citation sets between google_ai_overview and google_ai_mode for 'best proposal software' and summarize what AI Mode adds."
- "Fetch Copilot's answer for 'best alternatives to QuickBooks' - do we appear in the answer text, or only in the sources?"
- "Pull Perplexity's answer for our category, compare it against last week's fetch in geo-log.md, and append what changed." Put that instruction in CLAUDE.md and the sweep becomes part of the loop.
Six engines, one contract: the same ask diffs citation sets across chatgpt, perplexity, gemini, google_ai_overview, google_ai_mode and copilot. Who gets cited, where, and who doesn't - that diff is the core of GEO/AEO analysis, and here the agent runs it in-context instead of you eyeballing six browser tabs.
What the MCP server gives you
Deliberately thin - an answer-access layer for your agent, not an analytics product bolted onto your terminal.
- One narrow tool -
fetch_raw_answersposts to AgentGEO's API and returns the run envelope verbatim. Nothing else to learn, nothing else to break. - Six engines behind one contract - ChatGPT, Perplexity, Gemini, Google AI Overviews, Google AI Mode and Copilot with an identical record shape, so adding an engine to a check is one more word in the ask.
- Structured
sources[]- every citation with its title, URL and position, ready for the agent to diff, count or grep against your domain. No links regexed out of prose. - Raw records only - no rankings, sentiment or visibility scores. The conclusions come from your agent, which knows your site, your competitors and your history.
- Managed-scraper engine, maintained for you - under the hood the server talks to
POST https://api.agentgeo.org/v1/fetches; keeping six collection paths healthy is AgentGEO's job, not a headless browser living in your repo. - Usage-based billing - one credit per run, failed runs cost zero, priced by usage rather than per seat.
What it doesn't do
The narrowness is the point. Claude Code holds your repo, your positioning and your judgment; conclusions computed outside that context would be worth less than raw records analyzed inside it - that is the whole GEO data layer argument. So, honestly:
- No dashboards. Records arrive as tool results; the report is whatever your agent writes from them, in your repo.
- No visibility scores or sentiment. Raw
answerTextandsources[]only - the judgment layer is deliberately left to your agent. - No recommendations engine. Claude Code drafts fixes with your actual pages in context, which beats generic advice every time.
- Not instant. Requests wait up to 180 seconds - live surfaces are slow. An AI Overview SERP round-trip runs 40-90s, and some chatbot scrapes exceed the sync budget entirely: those records come back
failedwith aproviderFields.snapshot_id, and a follow-up call with that id and the same single surface redeems the finished answer without paying for a re-scrape (not valid forgoogle_ai_overview).
| Claude Code without AgentGEO | Claude Code + AgentGEO MCP | |
|---|---|---|
| How answers get in | Screenshots and pasted blobs | A tool call mid-session |
| Citations | Retyped by hand, positions guessed | Structured sources[] - title, URL, position |
| Freshness | Whatever you last pasted | Fetched live, inside the task |
| Coverage | One engine per browser tab | Up to six engines in one call |
| Cost of checking | Your time, every time | One credit per delivered record; failed = 0 |
AgentGEO is the answer-access layer, nothing more. The analysis Claude Code runs on the records - the reports it writes, the doc fixes it opens PRs for - is yours, versioned in your repo, not locked in a vendor dashboard.
Prefer the REST API?
The MCP server is a thin wrapper over the same endpoint your code can hit directly: POST https://api.agentgeo.org/v1/fetches. Script the sweep in Python or curl and you get the identical contract - same surfaces, same records, same credits - so a check born in Claude Code can graduate to CI unchanged.
Who builds on this
Developers who live in the terminal and ship the marketing site from the same repo as the product. If Claude Code already builds your features, it can also check how the six engines answer for your category, notice your docs missing from a citation list, and close the loop - read the page, draft the fix, open the PR - in one session. Some teams wire a recurring sweep into CLAUDE.md so every release gets a citation check. See where you stand first with the free audit, or see how the approaches compare.
Ready to see what the engines already say about you? Get a free audit → · Read the 5-minute quickstart →
Get my free audit