Skip to content
MCP4 min read2026-07-13

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.

Connect AgentGEO to Claude Code

bash
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):

json
{
  "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_answers posts 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 answerText and sources[] 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 failed with a providerFields.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 for google_ai_overview).
Claude Code without AgentGEOClaude Code + AgentGEO MCP
How answers get inScreenshots and pasted blobsA tool call mid-session
CitationsRetyped by hand, positions guessedStructured sources[] - title, URL, position
FreshnessWhatever you last pastedFetched live, inside the task
CoverageOne engine per browser tabUp to six engines in one call
Cost of checkingYour time, every timeOne 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

FAQ

Direct answers to the questions this page raises.

Run claude mcp add agentgeo -- npx -y agentgeo-mcp --key ag_live_... with your own key. The agentgeo-mcp package speaks MCP over stdio, has zero npm dependencies and needs Node.js 18+. Restart the session and the agentgeo tools appear in the tool list. Live keys are minted in the console and come with a plan; a zero-credit ag_test_ key works for a dry run; --api-url defaults to https://api.agentgeo.org.

One per-surface record for each engine you asked for: surfaceKey, status (delivered or failed), the full answerText, sources with title, URL and position, fetchedAt, latencyMs, providerRecordId and the raw providerFields. Records are returned unchanged - no rankings, sentiment or visibility scores are added.

The analysis stays in Claude Code: raw answer records come in as tool results, and everything derived from them - diffs, reports, doc edits, PRs - happens in your agent with your context. What does go out is the query text itself: it is sent to AgentGEO's managed scrapers so they can fetch each engine's answer.

One credit per delivered record; failed records cost zero. An ag_test_ key always returns clearly labelled demo records at zero credits - handy for verifying the install - while ag_live_ keys fetch real data and need a plan. Paid usage is billed by the run, never per-seat.

Six: ChatGPT, Perplexity, Gemini, Google AI Overviews, Google AI Mode and Copilot - surface keys chatgpt, perplexity, gemini, google_ai_overview, google_ai_mode and copilot. Ask for one to six of them per call; the record shape is identical across all of them.

Keep reading

Where this page leads next.

Your brand, next

Run these checks on your own brand

Send a URL for a free human-run audit, or connect your agent over MCP and run the same records yourself.