Purpose
ai-visibility-mcp is an MCP (Model Context Protocol) server whose goal is to audit and fix "how AI sees a website." The material states that many websites unintentionally become invisible to AI search, with possible causes including: Cloudflare's default bot management settings blocking GPTBot, ClaudeBot, and PerplexityBot; single-page applications (SPAs) returning an empty <div id="root"> to crawlers that do not execute JavaScript; and marketing teams not knowing that their brand does not appear in answers from ChatGPT, Claude, or Perplexity. The tool attempts to complete the closed loop of auditing and fixing within a single agent session.
Main Capabilities
According to the material, the tool provides the following auditing and generation capabilities:
- Check robots.txt by bot: give a pass-or-block determination for each AI crawler one by one.
- Check JSON-LD structured data.
- Check sitemap.
- Check llms.txt.
- SPA detection: identify the problem where a single-page application outputs an empty root node to crawlers that do not execute JS.
- Cross-model brand mentions: check the brand's mentions in LLM answers.
- Competitor comparison.
- Generate fix artifacts: v0.3 provides 3 generator tools for generating files or configurations that correct the problems, for the site owner to paste and apply.
- Re-audit: verify whether the fixes have been adopted and taken effect.
v0.3 includes a total of 7 tools (4 audit tools + 3 generator tools), with tests passing 40/40. The material states that it has been smoke-verified against tealhq.com, bandcamp.com, and anthropic.com.
How to Use
The audit-fix loop is roughly: Audit (find the issues blocking AI visibility) -> Fix (generate fix artifacts) -> Paste (the site owner applies the output) -> Re-audit (verify whether the fixes are recognized).
Configuration: Python 3.10+ and uv are required. In Claude Desktop, you can edit ~/Library/Application Support/Claude/claude_desktop_config.json, or for the Claude Code CLI edit ~/.claude.json, adding the MCP server configuration. The specific JSON configuration snippet is not provided in the material and is not yet available.
Use Cases
- Website owners or marketing teams want to understand whether AI crawlers can access the site normally.
- Need to troubleshoot AI invisibility issues caused by robots.txt, Cloudflare default settings, or SPA rendering.
- Need to generate files for fixes (such as robots.txt, llms.txt, structured data, etc.) and re-verify them.
- Need to measure the brand's mentions in LLM answers and perform competitor comparisons.
Limitations and Security Design
The server makes external HTTP requests to domains provided by the caller as well as to LLM providers. Since v0.2, the following hardening has been added:
- SSRF protection: all external HTTP requests reject loopback, link-local (AWS/GCP/Azure metadata IPs), RFC1918, CGNAT, and IPv6 ULA addresses; redirects are also revalidated.
- Daily spending cap: LLM calls are limited by MAX_DAILY_USD (default 5.00 USD), persisted to ~/.cache/ai-visibility-mcp/spend.json, to prevent loop amplification from exhausting Perplexity/OpenRouter quota.
- Per-call cost cap: MAX_COST_PER_CALL (default 0.10 USD) and LLM_MAX_OUTPUT_TOKENS (default 1024) impose hard limits on a single tool call.
- No persistence of user content: except for the daily spending total, nothing is recorded to disk.
The material does not provide the specific license agreement, the complete list of supported LLM providers, more deployment details beyond the installation command, or pricing or charging model; these are not yet available.