ai newsMi., 4. Nov.

My MCP server lets Claude audit any website for AI visibility. Here's how to set it up

I run most of my AI visibility checks inside Claude Code. Not by copy-pasting URLs into a web tool, but by asking Claude to run the audit directly. GEO Optimizer exposes its core functionality as an MCP (Model Context Protocol) server, so Claude, Cursor, and Windsurf can call audit, fix, and citati

dev.toMittwoch 09:00 · 04.11.5 Min. Lesezeit
Bild: dev.to

I run most of my AI visibility checks inside Claude Code. Not by copy-pasting URLs into a web tool, but by asking Claude to run the audit directly. GEO Optimizer exposes its core functionality as an MCP (Model Context Protocol) server, so Claude, Cursor, and Windsurf can call audit, fix, and citation tools without leaving the editor.

Here is how to set it up and what it does.

pip install geo-optimizer-skill[mcp] Enter fullscreen mode Exit fullscreen mode This installs the geo-mcp entry point alongside the MCP Python SDK. If you use uvx for one-shot runs, you can skip the install and run the CLI directly:

uvx --from geo-optimizer-skill geo audit --url https://yoursite.com Enter fullscreen mode Exit fullscreen mode Setup in Claude Code One command:

claude mcp add geo-optimizer -- geo-mcp Enter fullscreen mode Exit fullscreen mode The tools are immediately available in your Claude Code session. No config file editing, no restart.

{ "mcpServers": { "geo-optimizer": { "command": "geo-mcp", "args": [] } } } Enter fullscreen mode Exit fullscreen mode Setup in Windsurf Same format as Cursor, in ~/.codeium/windsurf/mcp_config.json:

{ "mcpServers": { "geo-optimizer": { "command": "geo-mcp", "args": [] } } } Enter fullscreen mode Exit fullscreen mode What you get The MCP server exposes 12 tools. Here are the ones I use most:

geo_audit: Run a full audit on a URL. Returns a 0-to-100 score, 9 category scores, a list of findings ranked by priority, and a JSON output for programmatic use. This is the same engine as the CLI and the web audit on geoready.dev.

geo_access: Check which AI crawlers can reach the site. Simulates browser vs bot access and reports whether robots.txt blocks any of the 27 known AI crawlers. This is the first check I run on any new site, because if GPTBot is blocked, nothing else matters.

geo_fix: Generate fixes for the issues found in the audit. Outputs a plan with specific changes (robots.txt rules, schema markup, meta tags) and an estimated score after applying each fix.

geo_citations: Check whether a domain appears in AI engine citations. Requires a Perplexity API key for the citation check. This is the closest thing to "am I being cited" that the open-source tool offers.

geo_drift: Compare two audit snapshots and report what changed. Useful for monitoring whether a site's AI visibility signals are improving or degrading over time.

geo_perception: Extract how an AI model might perceive the page's content. Deterministic, not probabilistic. It reads the page the way a retrieval system would and reports what it finds.

geo_llms: Check llms.txt presence, validity, and content. Also generates a starter llms.txt from the site's sitemap.

geo_author: Check brand entity clarity and Knowledge Graph signals. Reports whether the page has consistent entity references across schema, metadata, and content.

In Claude Code, after adding the MCP server, I can type:

Audit https://example.com and tell me what's blocking AI visibility Enter fullscreen mode Exit fullscreen mode Claude calls geo_audit on the URL, gets back the score (8/100 for example.com, which has no robots.txt, no llms.txt, and no structured data), and summarizes the findings. Then I can type:

Generate fixes for the top 5 issues Enter fullscreen mode Exit fullscreen mode Claude calls geo_fix, gets back the fix plan (create robots.txt with Allow rules for GPTBot, ClaudeBot, PerplexityBot, add WebSite JSON-LD schema, add Organization schema, add FAQPage schema, create /llms.txt), and presents it. The entire flow happens without leaving the terminal.

For a site I have already audited, I can type:

Check if https://yoursite.com's AI visibility has changed since last week Enter fullscreen mode Exit fullscreen mode Claude calls geo_drift, compares the latest audit against the stored snapshot, and reports what improved, what regressed, and what is new.

The traditional way to use an audit tool is: open a browser, paste a URL, read a report, copy findings into a ticket, assign the ticket, wait for a fix, re-run the audit. The MCP way is: ask Claude to audit, ask Claude to generate fixes, ask Claude to apply them, ask Claude to re-audit. The loop is tighter. The human is in the loop for decisions, not for data entry.

This is also why I built the MCP server before building a full dashboard. A dashboard is a read-only view. An MCP server is a read-and-act interface. Claude can show you the score and also write the robots.txt, generate the schema markup, and create the llms.txt. The audit becomes the first step in a workflow, not a dead-end report.

The MCP server runs locally. It does not have access to the GeoReady platform's monitoring history, scheduled audits, or citation tracking. For those, you need the SaaS layer at app.geoready.dev. The MCP server is for developers who want to audit and fix sites from their editor. The SaaS is for teams who want to monitor and track over time.

The citation check ( geo_citations ) requires a Perplexity API key. The other 11 tools do not require any API keys. They run deterministic checks against the page itself.

If you want to try the MCP server, install it and add it to your editor:

pip install geo-optimizer-skill[mcp] claude mcp add geo-optimizer -- geo-mcp Enter fullscreen mode Exit fullscreen mode Then ask Claude to audit any URL. The full documentation is at geoready.dev/docs/mcp-server. The CLI and source code are on GitHub, MIT licensed, 1,137 stars.

If you just want to run a single audit without installing anything, paste a URL into the free web audit on geoready.dev. Same engine, no signup.

Quelle: dev.to (dev.to). Original öffnen