Home / MCP server
Open source

The OpenAEO MCP server: audit your site for AI search without leaving your editor

OpenAEO ships a free, MIT-licensed MCP server in the openaeo-audit npm package. Add it to Claude Code, Cursor, or any MCP client, and your coding agent can audit a live domain against 5 retrieval gates and 8 headline checks, then generate the fixes as real files: robots.txt, llms.txt, JSON-LD and answer-ready copy. It writes them into your project the way any other change arrives, as a diff you read before you commit. There is no API key, no account and no telemetry. If your site is on a hosted platform and you have no codebase at all, one of the six tools returns click-by-click steps for your platform's admin instead. The paid plans exist for the part that recurs, weekly citation testing across assistants, which cannot run on your laptop. The audit and the fixes are free forever.

claude code
claude mcp add openaeo -- npx -y openaeo-audit mcp
Node.js 18 or newer is the only requirement. npx fetches the package on first run.
cursor, or any MCP client
{ "mcpServers": { "openaeo": { "command": "npx", "args": ["-y", "openaeo-audit", "mcp"] } } }
no agent, just the terminal
npx openaeo-audit yoursite.com
Add --json for CI, and fail the build when the score drops below your ship floor.

The six tools

aeo_audit

Fetches a live domain as an AI crawler and scores it: 5 retrieval gates, 8 headline checks, a band and a ranked fix list.

reads the live site
aeo_fix_files

Generates robots.txt, llms.txt and JSON-LD for the site, ready to write into your static root.

writes files
aeo_fix_html

Takes a page's HTML and adds the missing head elements. It only adds; it never rewrites your page content.

writes files
aeo_check_html

Scores a page you already have in hand, so the agent can verify its own fix before you deploy it.

closes the loop
aeo_packet

Produces an ordered engineering packet: tickets with the failing check, the change, and an acceptance command.

for a team
aeo_fix_my_site

For sites with no codebase. Detects Squarespace, Wix, Webflow, WordPress, Shopify, Framer, Ghost or Carrd and returns click-by-click steps for that admin.

no repo needed

It will not invent your facts

Structured data rewards specifics: prices, review counts, founding years, refund windows. Those are exactly the values a language model will happily fabricate to fill a template, and a fabricated price in your JSON-LD is worse than no JSON-LD, because it is a claim you did not make and cannot honour.

So the generated files carry [bracketed] placeholders wherever a real number belongs, and the server's instructions tell the agent never to fill one in on its own. It asks you, or it leaves the bracket for you to fill. The audit also treats an unresolved placeholder in live copy as something that caps your score, so shipping the brackets by accident is itself a finding. A tool that sells legibility should not be the thing that puts an invented number on your site.

llms.txt, as generated
# Acme Coffee > [One line: what Acme Coffee does, who it's for]. ## Facts - [category], [one verifiable number] - Contact: [email protected]
The brackets are the point. It does not guess your category, and it does not invent a number to look complete.

A typical run

  1. Ask your agent to audit your domain. It reports the score, the band, and which checks failed.
  2. It generates robots.txt and llms.txt and writes them into your public or static root.
  3. It runs the head fixer on your key pages and writes the results back.
  4. It re-checks each page locally, and re-audits the live domain after you deploy to confirm the score moved.

A failing retrieval gate caps the whole score, so the agent is told to clear those first. Blocked crawlers, JavaScript-only rendering and a robots.txt disallow are worth more than any amount of schema tuning underneath them.

Step four is the one most tools skip. A report is a list of things you now have to do; aeo_check_html lets the agent score its own edit and know whether it worked before it opens the pull request.

Questions

Is there an MCP server that audits my site for AI search?+
Yes. OpenAEO ships one in the openaeo-audit npm package, MIT licensed and free. It exposes six tools to any MCP client, including Claude Code and Cursor: aeo_audit, aeo_fix_files, aeo_fix_html, aeo_check_html, aeo_packet and aeo_fix_my_site. It needs no API key and no OpenAEO account, and it sends no telemetry.
How do I add the OpenAEO MCP server to Claude Code?+
Run: claude mcp add openaeo -- npx -y openaeo-audit mcp. That is the whole setup. Node.js 18 or newer is the only requirement, and npx fetches the package on first run.
How do I add it to Cursor or another MCP client?+
Add a server whose command is npx and whose arguments are -y, openaeo-audit, mcp. In a JSON config that is: mcpServers, openaeo, command npx, args -y openaeo-audit mcp.
Does the agent change my files without asking?+
No. The tools return file contents; your MCP client decides what to write, and every client shows you the change before it lands. The server also instructs the agent to show each file and let you confirm it. Generated files carry bracketed placeholders for facts the tool cannot know, and the server tells the agent never to invent a price, a review count, a founding year or an address.
What if my site is on Squarespace or Shopify and I have no codebase?+
Use the aeo_fix_my_site tool. It detects the platform and returns click-by-click steps for that platform's own admin, with the exact text to paste at each step. It covers Squarespace, Wix, Webflow, WordPress, Shopify, Framer, Ghost and Carrd.
Is the MCP server free, and how does it relate to the paid plans?+
It is free and open source under MIT, with no account required. The paid plans cover the part that recurs and cannot run on your laptop: weekly citation testing across assistants, tracked history, drift alerts and competitor share-of-voice. Fixing a site is mostly a one-time job. Finding out whether an assistant names you changes every week.

Read the source on GitHub

MIT licensed · openaeo-audit on npm · no telemetry, no account, no API key