Audit whether ChatGPT, Gemini and Perplexity recommend your site — 11 technical checks with no API keys, plus blind multi-engine visibility. Open-source GEO/AEO auditor + MCP server.
Six tools with clear, domain-specific descriptions (avg 180 chars, within baseline 194). All have input schemas with types. However, parameter descriptions are sparse or missing entirely, most params lack guidance on format, constraints, or valid ranges. No output schemas documented. Error handling is absent; tools do not guide recovery or categorize failures. Naming is verb-forward (readiness_check, audit_visibility) but some names are compound (audit_plan + audit_score as a two-step flow). No tool annotations (readOnlyHint, etc.). Composition is reasonable, tools chain logically (audit_plan → audit_score), but the keyless flow requires user intervention between steps, increasing friction.
Step 1 of measuring AI visibility WITHOUT any API key. Fetches the site and returns what it sells, plus instructions for writing buyer questions. You then answer those questions yourself using web search, and send the results to audit_score. Use this when the user has no OPENAI_API_KEY/GOOGLE_API_KEY/PERPLEXITY_API_KEY — it measures visibility in YOU rather than in ChatGPT, which must be stated in the report.
Step 2 of the keyless flow. Give it the questions you asked and what came back; it computes visibility %, who gets recommended instead, and the citation gap. It REJECTS any prompt containing the brand name, because naming the brand guarantees it appears in the answer and makes the number meaningless. Do not compute these numbers yourself — the point of this tool is that the arithmetic is not guessed.
Measure whether AI assistants actually recommend a business. Infers what the site sells, generates the questions its buyers would ask, then asks every configured engine WITHOUT naming the brand (naming it in the prompt biases the answer). Returns visibility %, the verbatim answers, who gets recommended instead, and which third-party sources are cited on the questions the brand loses. Requires at least one of OPENAI_API_KEY, GOOGLE_API_KEY, PERPLEXITY_API_KEY in the environment; costs a few cents per run.
Show which third-party sources (directories, review sites, communities) AI engines cite on the buyer questions a brand is NOT named in — a prioritised "get listed / get reviewed here" target list. Runs a fresh audit; requires an engine key.
No output schemas documented. LLMs cannot plan downstream calls or extract structured data. audit_visibility, citation_gap, and audit_score return complex nested objects (EngineResult, CitationGapItem) but the MCP tool definitions do not expose their structure.
Parameter descriptions are missing or generic. 'url' appears in 5 tools with identical description 'Website to check, e.g. example.com', no guidance on format (domain only? with protocol?). 'promptCount' lacks min/max rationale. 'rows' in audit_score is a complex nested array with no guidance on structure or required fields.
No error handling or recovery guidance. Tools do not document what happens on network failure, invalid URL, missing API keys, or rate limits. LLMs receive raw errors with no actionable next steps.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2025-06-18+ | v2 |
Show which AI engines are configured and ready to use. Lists the environment variables that control them and whether they are set.
Run 11 technical checks on a website that determine whether AI assistants can read and understand it: HTTPS, AI crawlers allowed in robots.txt (GPTBot/ClaudeBot/PerplexityBot), schema.org markup, llms.txt, title+meta, readable without JavaScript, canonical, Open Graph, single H1, image alt text, sitemap, and broken internal links. Needs no API keys and costs nothing. Use this first for any "is my site ready for AI search" question.
audit_score rejects prompts containing the brand name but does not document this constraint in the 'prompt' parameter description. LLMs will not know this rule and will fail on first attempt.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). All tools are read-only but this is not declared, forcing LLMs to infer safety from descriptions alone.