Open-source AI brand + product visibility checker (GEO/AEO). Are your brand and products recommended by ChatGPT, Perplexity, Gemini and Claude? CLI + MCP server, BYO keys, runs locally.
Five tools with complete JSON schemas and detailed descriptions. Tool names follow verb_noun pattern (check_, audit_, generate_, shopping_, get_). Descriptions are LLM-optimized (100-300 chars) with clear when-to-use guidance and cost hints. All parameters have types and descriptions. However, output schemas are not documented in the source code, only input schemas are visible. Error handling and recovery guidance are absent. No tool annotations (readOnlyHint/destructiveHint) despite clear risk profiles (check_visibility and shopping_check are WRITE operations with financial consequences).
Zero-key, zero-cost readiness audit: robots.txt AI-bot access, llms.txt, structured data, meta, sitemap. Use for a fast free check with no API keys. COST: free (no LLM calls).
Ask real AI engines real buyer questions and score whether this brand gets recommended. Use when you want the AI Visibility Score for a domain. COST: spends real API money (roughly $0.05-$0.30/run depending on engines and prompt count); capped at $0.50 by default - pass max_cost to change it.
Generate the buyer questions this brand should be visible for (discovers the brand profile first, then writes a query pack). Use to preview or seed the prompts before a paid check_visibility run. COST: a small number of judge calls for discovery + generation (typically under $0.05).
Compare the two most recent check_visibility runs for a domain (score and per-engine deltas). Use to see what changed between runs. COST: free (reads saved snapshots).
Check whether AI engines recommend specific PRODUCTS you name (beta). Returns each product scored 0-100 on whether engines recommend it, sorted with the ones they never named first, plus the rival products filling the shelf instead. Use for SKU-level questions; use check_visibility for the brand as a whole. There is no product discovery, so the list must be supplied. COST: spends real API money and is larger than a brand check. Each product costs about 4 prompts on every engine with a key, which extrapolates from measured check runs to roughly $0.20 per product across four engines; capped at $0.20 per product by default - pass max_cost to change it.
Output schemas not documented. Tool descriptions explain what is returned (e.g., 'score and per-engine deltas' for get_snapshot_diff) but formal output schema definitions are missing from source. LLMs cannot plan downstream operations without knowing response structure.
No tool annotations despite clear risk profiles. check_visibility and shopping_check are destructive (spend real money); audit_store and get_snapshot_diff are read-only. Missing destructiveHint and readOnlyHint annotations prevent agents from reasoning about safety and retry semantics.
No error recovery guidance. Tools that spend money (check_visibility, shopping_check, generate_buyer_queries) lack error messages that tell agents what to do on failure. E.g., if API key is missing, what should the agent try next?
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 65 | 2025-06-18+ | v2 |
shopping_check products parameter uses oneOf with string | object union. While valid JSON Schema, the description is verbose (200+ chars) and could be clearer. The descriptor field is optional but its purpose ('rescues an opaque product name') is buried in prose rather than in the field description.
No confirmation or dry-run pattern for irreversible operations. check_visibility and shopping_check spend real money; no dry-run or confirmation step exists to prevent accidental expensive calls.