关于 Ai Visibility Mcp
Ai Visibility Mcp 是面向网站运营者和营销团队的 MCP 服务,用于评估网站对 AI 爬虫和搜索的可见性。它还可生成 robots.txt、JSON-LD 和 llms.txt 修正内容,形成审计与复查流程。
主要功能
- 01检查 22 种 AI 爬虫的访问规则
- 02评估网站 AI 可见性并解释扣分
- 03比较多个网站的审计结果
- 04检查品牌在多个 LLM 中的提及
- 05生成 robots.txt、JSON-LD 和 llms.txt
适用场景
- 01排查 robots.txt 或 Cloudflare 对 AI 爬虫的限制
- 02识别缺少结构化数据或 llms.txt 的页面
- 03比较自有网站与竞争者的 AI 可见性
- 04检查品牌是否出现在 LLM 回答中
MCP 相关
作为 MCP 服务向客户端提供网站审计、品牌提及检查和修正文件生成工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
ai-visibility-mcp
可审计并修复 AI 如何看待你的网站的 MCP 服务。Robots、架构标记、LLM 提及情况、Cloudflare 的 AI 默认设置——审计问题、生成修复方案,并在一个循环中重新审计。
大多数网站都在不知不觉中无法被 AI 搜索发现。Cloudflare 的机器人管理默认设置会拦截 GPTBot / ClaudeBot / PerplexityBot。对于不会运行 JS 的爬虫,SPA 渲染的内容只是一个空的 <div id="root">。营销团队不知道自己的品牌没有出现在 ChatGPT、Claude 或 Perplexity 的回答中,直到流量开始枯竭。
ai-visibility-mcp 可在单次 Agent 会话中完成审计和修复闭环:
- 审计 — 找出阻碍 AI 发现网站的因素
- 修复 — 生成用于解决问题的内容
- 粘贴 — 网站所有者应用生成的内容
- 重新审计 — 验证修复是否生效
工具
审计工具
| 工具 | 用途 | 是否需要 API 密钥? |
|---|---|---|
check_ai_bot_access(domain) | 针对 22 个 AI 用户代理检查各机器人对应的 robots.txt 规则及 Cloudflare AI 默认标记 | 否 |
audit_ai_visibility(domain) | 0-100 的综合评分,并说明各项扣分原因(robots、meta、JSON-LD、sitemap、llms.txt、SPA 外壳) | 否 |
check_llm_mention(brand, query, aliases?, models?) | 跨模型品牌曝光情况(默认使用 Perplexity sonar、OpenAI gpt-4o-mini 和 Gemini 2.0 Flash) | 是 |
compare_competitors(your_domain, competitor_domains[]) | 并行排名审计,最多同时执行 10 个 | 否 |
生成工具(v0.3)
| 工具 | 用途 | 是否调用 LLM? |
|---|---|---|
generate_robots_patch(domain, allow_bots?, deny_bots?) | 修正后的 robots.txt,开放 AI 机器人的访问权限;保留现有规则;检测 Cloudflare | 否 |
generate_json_ld(url, page_type?) | 适用于任意页面的 Schema.org JSON-LD 代码块;自动检测类型(Product/Article/Organization/FAQPage/SoftwareApplication/WebSite);验证必填字段 | 是(gpt-4o-mini) |
generate_llms_txt(domain, crawl_depth?, max_pages?) | 符合规范的 llms.txt;爬取首页和 sitemap;无法获取时回退到链接提取 | 是(gpt-4o-mini) |
为什么要做这个项目
- Cloudflare 在 2024-2025 年更改了默认设置,以拦截 AI 爬虫。大多数网站所有者从未更新配置,因此 AI 机器人会遭到质询并离开。
- MCP 市场在 2026 年上线(MCP Hive、Smithery、mcp.so、Glama)。每个 AI Agent 都需要能审计真实网络的工具。本项目就是其中之一。
- 品牌在 LLM 回答中的曝光度已成为新的 SEO。 目前还没有一套完整方案,能通过单次 MCP 调用衡量品牌曝光度。
安装
需要 Python 3.10+ 和 uv。
git clone https://github.com/bestaiinsider/ai-visibility-mcp
cd ai-visibility-mcp
uv sync
cp .env.example .env # fill in PERPLEXITY_API_KEY / OPENROUTER_API_KEY
运行
# stdio transport — Claude Desktop / Claude Code
uv run ai-visibility-mcp
# HTTP transport — remote agents
uv run ai-visibility-mcp --http --port 8000
Claude Desktop / Claude Code 配置
将配置添加到 ~/Library/Application Support/Claude/claude_desktop_config.json(Desktop)或 ~/.claude.json(CLI):
{
"mcpServers": {
"ai-visibility": {
"command": "uv",
"args": ["--directory", "/absolute/path/to/ai-visibility-mcp", "run", "ai-visibility-mcp"]
}
}
}
审计和修复循环
# Step 1 — audit
> audit_ai_visibility(domain="example.com")
score: 55
warnings:
- "9/22 AI bots disallowed — site largely invisible to AI search"
- "no JSON-LD structured data — LLMs lose entity grounding"
- "no /llms.txt found at root"
# Step 2 — generate fixes
> generate_robots_patch(domain="example.com")
→ new_robots: "User-agent: GPTBot\nAllow: /\n\nUser-agent: ClaudeBot\nAllow: /\n..."
→ diff: unified diff of exactly what changed
→ paste_target: "/robots.txt at site root, replaces existing"
> generate_json_ld(url="https://example.com/")
→ page_type_detected: "Organization"
→ script_tag: '<script type="application/ld+json">{"@context":"https://schema.org","@type":"Organization"...}</script>'
→ paste_target: "inside <head> of the page"
> generate_llms_txt(domain="example.com")
→ content: "# Example Corp\n\n> One-sentence summary...\n\n## Pages\n- [Home](...): ..."
→ paste_target: "/llms.txt"
# Step 3 — site owner pastes the three artifacts
# Step 4 — re-audit
> audit_ai_visibility(domain="example.com")
score: 95 ← was 55
会话示例
> check_ai_bot_access(domain="bandcamp.com")
summary: { total: 22, allowed: 13, disallowed: 9 }
warnings: ["9/22 AI bots disallowed — site largely invisible to AI search"]
blocked: ["GPTBot", "ClaudeBot", "Google-Extended", "Bytespider",
"CCBot", "Meta-ExternalAgent", "FacebookBot", "Amazonbot", "Diffbot"]
> audit_ai_visibility(domain="bandcamp.com")
score: 49
reasons:
-36: 9 AI bots disallowed in robots.txt
-10: no JSON-LD structured data
-5: no /sitemap.xml
> check_llm_mention(brand="Anthropic", query="Who makes the leading foundation AI models?")
share_of_voice: 0.667
by_model:
perplexity/sonar mentioned=true citations=3
openrouter/gpt-4o-mini mentioned=true citations=0
openrouter/gemini-flash mentioned=false citations=0
est_total_cost_usd: 0.00088
daily_spend_usd: 0.00088 / $5.00 cap
安全措施
此服务会向调用方提供的域名和 LLM 服务商发起出站 HTTP 请求。v0.2 加固措施:
- SSRF 防护。 所有出站 HTTP 请求都会拒绝环回地址、链路本地地址(AWS / GCP / Azure 元数据 IP)、RFC1918 地址、CGNAT 地址和 IPv6 ULA 地址。重定向会重新验证。
- 每日支出上限。 LLM 调用受
MAX_DAILY_USD限制(默认 $5.00),支出数据会保存到~/.cache/ai-visibility-mcp/spend.json。循环放大不会耗尽你的 Perplexity / OpenRouter 额度。 - 单次调用费用上限。
MAX_COST_PER_CALL(默认 $0.10)和LLM_MAX_OUTPUT_TOKENS(默认 1024)会严格限制任意单次工具调用的费用和输出量。 - 不持久化用户内容。 除每日支出总额外,不会将任何内容记录到磁盘。
配置
| 环境变量 | 默认值 | 用途 |
|---|---|---|
PERPLEXITY_API_KEY | — | check_llm_mention 中的 Perplexity 模型必需 |
OPENROUTER_API_KEY | — | 通过 OpenRouter 使用 OpenAI / Gemini / Claude 时必需 |
MAX_COST_PER_CALL | 0.10 | 每次工具调用的 USD 费用上限 |
MAX_DAILY_USD | 5.00 | 每个 UTC 日的 USD 费用上限,持久化保存 |
LLM_MAX_OUTPUT_TOKENS | 1024 | 每次大模型调用的输出令牌硬性上限 |
AI_VISIBILITY_SPEND_FILE | ~/.cache/ai-visibility-mcp/spend.json | 覆盖支出记录文件的位置 |
开发
uv sync --extra dev
uv run pytest # 40 tests
uv run ruff check . # lint
状态
v0.3 — 审计与修复循环已完成。7 个工具(4 个审计工具 + 3 个生成工具),测试全部通过(40/40),已强化 SSRF 防护并设置支出上限。已针对 tealhq.com / bandcamp.com / anthropic.com 完成冒烟测试。
许可证
MIT。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。