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.
The six tools
aeo_auditFetches a live domain as an AI crawler and scores it: 5 retrieval gates, 8 headline checks, a band and a ranked fix list.
aeo_fix_filesGenerates robots.txt, llms.txt and JSON-LD for the site, ready to write into your static root.
aeo_fix_htmlTakes a page's HTML and adds the missing head elements. It only adds; it never rewrites your page content.
aeo_check_htmlScores a page you already have in hand, so the agent can verify its own fix before you deploy it.
aeo_packetProduces an ordered engineering packet: tickets with the failing check, the change, and an acceptance command.
aeo_fix_my_siteFor sites with no codebase. Detects Squarespace, Wix, Webflow, WordPress, Shopify, Framer, Ghost or Carrd and returns click-by-click steps for that admin.
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.
A typical run
- Ask your agent to audit your domain. It reports the score, the band, and which checks failed.
- It generates robots.txt and llms.txt and writes them into your public or static root.
- It runs the head fixer on your key pages and writes the results back.
- 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?+
How do I add the OpenAEO MCP server to Claude Code?+
How do I add it to Cursor or another MCP client?+
Does the agent change my files without asking?+
What if my site is on Squarespace or Shopify and I have no codebase?+
Is the MCP server free, and how does it relate to the paid plans?+
MIT licensed · openaeo-audit on npm · no telemetry, no account, no API key