# krissanders/ai-visibility-mcp [Health: Active]

**Category:** 🎯 Marketing  
**Repository:** https://github.com/krissanders/ai-visibility-mcp  
**GitHub Stars:** 1  
**Views:** 4  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/krissanders-ai-visibility-mcp

## Description
Audit how AI sees your website. Per-bot robots.txt verdicts for 22 known AI user-agents (GPTBot, ClaudeBot, PerplexityBot, Google-Extended, Bytespider, etc), Cloudflare AI-default flags, on-page schema, sitemap, llms.txt, SPA-shell detection, and cross-model brand mentions via Perplexity + OpenRouter. 0-100 score with explainable deductions; parallel competitor compare. SSRF-guarded, per-call and daily LLM spend caps. MIT, 24 tests, stdio + HTTP.

## Claude Desktop Quick Installation
Heuristic fallback — verify the package name and runner against the repository README before running it. Uses `npx` (confidence: low):

```json
"mcpServers": {
  "ai-visibility-mcp": {
    "command": "npx",
    "args": ["-y","krissanders-ai-visibility-mcp"],
    "env": {
      "PERPLEXITY_API_KEY": "",
      "OPENROUTER_API_KEY": "",
      "MAX_COST_PER_CALL": "",
      "MAX_DAILY_USD": "",
      "LLM_MAX_OUTPUT_TOKENS": "",
      "AI_VISIBILITY_SPEND_FILE": ""
    }
  }
}
```

**Requires environment variables:** `PERPLEXITY_API_KEY`, `OPENROUTER_API_KEY`, `MAX_COST_PER_CALL`, `MAX_DAILY_USD`, `LLM_MAX_OUTPUT_TOKENS`, `AI_VISIBILITY_SPEND_FILE` — the values above are empty placeholders; fill in real credentials before running (see the repository for what each one is for).

## Documentation

## What krissanders/ai-visibility-mcp MCP server does

The krissanders/ai-visibility-mcp MCP server evaluates whether a website is accessible and understandable to AI crawlers and answer-generation systems. It audits robots.txt rules for 22 known AI user-agents, including GPTBot, ClaudeBot, PerplexityBot, Google-Extended, and Bytespider. It also checks for Cloudflare AI-related defaults, JSON-LD structured data, sitemap availability, a root-level llms.txt file, and signs that a single-page application exposes only an empty shell to crawlers.

The main audit returns a score from 0 to 100 with deductions that explain findings across those areas. A competitor comparison can run audits for multiple domains in parallel, with up to 10 domains in flight. The brand-mention check queries Perplexity and providers accessed through OpenRouter, then reports whether the brand appeared, model-level results, citations, share of voice, and estimated cost.

## How it works

The server exposes MCP tools over stdio or HTTP. Audit requests make outbound HTTP requests to the supplied website, while LLM-backed requests call the configured providers. The intended workflow is to audit a domain, generate corrective artifacts, have the site owner publish them, and run the audit again.

The krissanders/ai-visibility-mcp MCP server applies SSRF protections to outbound site requests. It rejects loopback, private, link-local, CGNAT, and IPv6 ULA destinations, and validates redirects again. LLM usage is restricted by a per-call cost ceiling and a daily USD budget. Daily totals are stored in a spend ledger, while user content is not written to disk.

## Setup and configuration

Python 3.10 or newer and uv are required. The repository instructions use `uv sync` to install dependencies, then start the stdio service with `uv run ai-visibility-mcp`. HTTP mode uses the same entry point with `--http --port 8000`.

Perplexity requests require `PERPLEXITY_API_KEY`. OpenAI, Gemini, and Claude requests through OpenRouter require `OPENROUTER_API_KEY`. These credentials are needed for the LLM-dependent tools, not for robots, site audits, or competitor comparisons.

The available safeguards are configurable with `MAX_COST_PER_CALL`, `MAX_DAILY_USD`, and `LLM_MAX_OUTPUT_TOKENS`. `AI_VISIBILITY_SPEND_FILE` changes the location of the daily spend ledger. The documented defaults are $0.10 per call, $5.00 per UTC day, 1,024 output tokens, and `~/.cache/ai-visibility-mcp/spend.json`.

## Tools and capabilities

- `check_ai_bot_access`: reports allowed and disallowed status for the supported AI user-agents and identifies Cloudflare AI-default settings.
- `audit_ai_visibility`: produces the explainable 0–100 website visibility score.
- `check_llm_mention`: checks brand visibility across selected models, with Perplexity and OpenRouter models available by default.
- `compare_competitors`: ranks a domain against competitor domains using parallel audits.
- `generate_robots_patch`: creates revised robots.txt rules while preserving existing rules and detecting Cloudflare.
- `generate_json_ld`: generates and validates Schema.org JSON-LD, with automatic page-type detection for types such as Product, Article, Organization, FAQPage, SoftwareApplication, and WebSite.
- `generate_llms_txt`: crawls the homepage and sitemap to create an llms.txt document, falling back to link extraction when needed.

The generator tools return artifacts and placement guidance rather than publishing changes directly. The site owner must apply the output before re-auditing.

## Limitations and notes

The server does not directly modify the target website. Generated robots.txt, JSON-LD, and llms.txt content must be reviewed and pasted or deployed by the site owner. LLM-backed features can incur provider costs and are constrained by the configured budgets. Results also depend on the target site's reachable HTTP responses and on the behavior of the selected external models.

The project is MIT-licensed and documents 40 tests for its v0.3 audit-and-fix release. The krissanders/ai-visibility-mcp MCP server is therefore best suited to diagnostic and artifact-generation workflows, not as a replacement for a site's deployment or Cloudflare configuration system.

_Full upstream README: https://allmcps.com/mcp/krissanders-ai-visibility-mcp/readme_

