mcpField
O
OpenAEO

OpenAEO

本地服务
openaeo.dev商业与营销011 周前更新

关于 OpenAEO

OpenAEO 是面向开发者和网站所有者的网站审计命令行工具、库及 MCP 服务,用于检查 AI 问答引擎能否抓取并引用网页。它评估可检索性和内容信号,给出优先修复项,并提供应用与验证修复的工具。

主要功能

  1. 01检查 HTML、机器人访问、结构化数据和更新情况
  2. 02评分并排列修复优先级
  3. 03生成 robots.txt、llms.txt 和 JSON-LD
  4. 04在本地读取爬虫访问日志
  5. 05通过 MCP 应用并验证修复

适用场景

  1. 01检查 AI 爬虫能否访问网站
  2. 02为 AI 引用优化网站内容
  3. 03在 CI 中设置评分门槛
  4. 04检查服务器日志中的爬虫请求

MCP 相关

MCP 服务提供审计域名和 HTML、生成或应用网站修复、验证结果及检查爬虫日志的工具。它还提供需 API 密钥的托管工具,用于引用测试、历史记录、变化检测和竞争者分析。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"dev-openaeo-audit": {
"command": "npx",
"args": [
"-y",
"openaeo-audit"
],
"env": {
"OPENAEO_API_KEY": "<OPENAEO_API_KEY>"
}
}
}
}
启动命令npx -y openaeo-audit
需要配置的环境变量
OPENAEO_API_KEY密钥Optional. Unlocks the hosted tools (crawler intelligence, citation testing, history, drift, competitors). The six local tools work without it. Create one at https://openaeo.dev/dashboard

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmopenaeo-audit1.6.4

工具

15

收录的工具列表 · 更新于 3 周前

参数类型必填说明
domainstring是域名或完整 URL,例如 example.com

详细介绍

OpenAEO Audit

在终端中只需一条命令,即可检查你的网站能否被 AI 答案引擎——ChatGPT、Claude、Gemini 和 Perplexity——检索和引用。

npx openaeo-audit yoursite.com

无需安装、注册或依赖项。它会像 AI 爬虫那样抓取你的页面,按 100 分制评分,并给出提升分数的具体修复建议。

AEO(答案引擎优化)和 GEO(生成式引擎优化)是 SEO 的新形态:你的客户越来越常向助手提问,而不再翻阅十条蓝色链接;能够胜出的,是 AI 可以 读取、信任并推荐 的内容。此工具会告诉你目前的情况。


快速开始

# pretty report
npx openaeo-audit example.com

# machine-readable JSON (for CI, dashboards, scripts)
npx openaeo-audit example.com --json

输出示例:

  example.com
  54/100  ·  AI-ready
  AI-ready, not yet cited.
  Retrievable, but thin on quotable specifics and structured data. Fixable without a redesign.

  ✓ Content readable in raw HTML  — 1,240 visible words
  ✗ robots.txt allows GPTBot, ClaudeBot, PerplexityBot  — robots.txt disallows gptbot
  ✗ llms.txt index present  — missing
  ⚠ Organization + WebSite JSON-LD  — Organization
  ⚠ Product / Offer schema with price  — no priced Offer
  ⚠ Answer + a number in the first 100 words  — vague / no title or meta
  ✗ FAQPage schema present  — missing
  ✓ Freshness (dateModified) present  — dateModified set

  6 fixes to raise your score:
  1. Unblock AI crawlers in robots.txt
     Why:  A single inherited Disallow line can hide you from ChatGPT and Perplexity entirely.
     How:  Explicitly Allow GPTBot, OAI-SearchBot, ClaudeBot, ... and link your sitemap.
  ...

检查内容

此审计会执行最常决定 AI 助手能否引用你网站内容的检查:

检查项重要性
原始 HTML 中的内容可读不同爬虫对渲染的支持各不相同。Googlebot 会执行 JavaScript;GPTBot、ClaudeBot 和 PerplexityBot 不会。如果内容仅在水合后才出现,不会渲染页面的爬虫看到的就会是空页面。
robots.txt 允许 AI 机器人访问一条继承的 Disallow 规则就可能让 ChatGPT 和 Perplexity 完全无法访问你的网站。
逐个机器人检查边缘节点可访问性robots.txt 是一项请求;CDN 才是执行者。我们会分别以 GPTBot、OAI-SearchBot、ClaudeBot、Claude-SearchBot、PerplexityBot、Googlebot、Bingbot 和 Applebot 的身份抓取,并记录每个机器人收到的状态码。Google-Extended 是 robots.txt 中的一个标记,并没有对应的爬虫,因此我们会读取它,而不是对它发起抓取。
存在 llms.txt 索引这是一项新兴惯例,可为助手提供简洁、便于引用的网站摘要。
Organization + WebSite JSON-LD结构化身份信息能让助手知道你是谁。
包含价格的 Product / Offer 架构让助手能够用真实价格回答“X 多少钱?”
前 100 个词中包含答案和数字助手会摘取第一个具体、明确的句子。形容词不会被引用,数字才会。
FAQPage 架构与人们在助手中输入的问句形式查询直接对应。
内容时效性(dateModified)助手更倾向于引用表明内容当前有效的来源。
评分

每项检查的得分为 pass(1.0)、warn(0.4)或 fail(0.0),取平均值后换算为 0–100 分,并划分到相应等级:

得分等级
0–25无法检索
26–45部分可检索
46–64已适配 AI
65–82AI 竞争力强
83–100完全可读

某些失败项会封顶分数,无论其他项表现如何,因为它们会完全阻断检索:

  • 内容在未启用 JavaScript 时不可见 → 最高 25 分
  • 机器人在边缘节点被拦截(4xx/403)→ 最高 25 分
  • robots.txt 禁止 AI 机器人访问 → 最高 40 分

诚实反映问题、便于采取行动的低分,胜过掩盖实际问题的虚高分数。


将其用作库

const { audit, remediationPlan } = require("openaeo-audit");

const result = await audit("example.com");
console.log(result.score, result.band);      // 54 "AI-ready"

const fixes = remediationPlan(result);        // ordered, highest-leverage first
fixes.forEach(f => console.log(f.title));

audit(url) 返回:

{
  "domain": "example.com",
  "score": 54,
  "band": "AI-ready",
  "verdict": "AI-ready, not yet cited.",
  "sub": "Retrievable, but thin on quotable specifics ...",
  "fixCount": 2,
  "edgeOk": true,
  "bots": [ { "name": "GPTBot", "surface": "ChatGPT", "kind": "fetched", "status": 200, "ok": true }, ... ],
  "checks": [ { "label": "...", "status": "pass|warn|fail", "detail": "..." }, ... ]
}
在 CI 中使用

如果得分低于阈值,则让构建失败:

score=$(npx openaeo-audit yoursite.com --json | node -e "process.stdin.on('data',d=>console.log(JSON.parse(d).score))")
[ "$score" -ge 65 ] || { echo "AEO score $score below 65"; exit 1; }

在 Cursor 或 Claude Code 中使用(MCP)

OpenAEO 附带一个 MCP 服务,因此你的 AI 编码 Agent 可以审计 你的网站,并直接修改实际文件——每项编辑都由你审阅。不会上传任何内容,无需账户,也不会触碰生产环境。

Cursor — 添加到 ~/.cursor/mcp.json(或项目中的 .cursor/mcp.json):

{
  "mcpServers": {
    "openaeo": { "command": "npx", "args": ["-y", "openaeo-audit", "mcp"] }
  }
}

Claude Code / Claude Cowork — 在项目中运行:

claude mcp add openaeo -- npx -y openaeo-audit mcp

……或者将 examples/.mcp.json 复制到项目根目录。

如需可重复执行的工作流,请将 examples/aeo-fix-pass/ 放入 .claude/skills/——之后,/aeo-fix-pass 就会运行完整的审计、修复和验证流程,包括 安全防护规则(合并 robots.txt,而不是覆盖;绝不为占位内容编造数字)。

然后只需提出请求:

“审计 example.com 并修复我的网站。”

Agent 会运行审计、编写 robots.txt 和 llms.txt、将 JSON-LD 注入你的 <head>,并重新检查结果。

不是开发者?你只需要提供网址。

如果你的网站使用 Squarespace、Wix、Webflow、WordPress、Shopify、Framer、Ghost 或 Carrd,你就没有文件可编辑——所以只需这样询问:

"My website is remyfilm.co — help me show up in AI search."

OpenAEO 会检测你使用的平台,并针对你的管理后台提供逐步点击说明(“Settings → Advanced → Code Injection → paste this in the Header”),以及可直接复制的准确文本。它还会如实告诉你平台何时无法实现某项功能,这样你就不会去寻找根本不存在的设置。

它提供的工具
工具功能
aeo_fix_my_site**一步到位,无需代码库。**检查网站、检测你使用的平台,并返回该平台管理后台中的粘贴步骤
aeo_audit检查在线域名——评分、等级、每项检查结果和优先修复项
aeo_fix_files生成可直接粘贴的 robots.txt、llms.txt、JSON-LD 和开篇段落
aeo_fix_html接收页面的 HTML,并返回注入了 <title>、meta description 和 JSON-LD 的版本——只添加缺失内容,绝不改写你的内容
aeo_check_html为 HTML 评分但不做更改,以验证修改是否生效
aeo_read_log读取服务器访问日志,并报告爬虫实际获取了什么:哪些爬虫到访、返回了什么状态、访问了哪些路径,以及每个请求是否确实来自它所声称的运营方。日志在你的机器上解析;绝不会离开你的机器
aeo_verify_crawler根据运营方公布的 IP 范围检查单个 IP。结果为已验证、冒充者或无法验证;没有确凿证据时,绝不会判定为冒充者

**托管工具。**这五个工具会调用 openaeo.dev,因此需要 OPENAEO_API_KEY,因为它们无法在本地运行:引用测试需要六个助手的服务商密钥,而爬虫情报读取的是从所有人运行的每次审计中收集的语料。没有密钥时,它们会说明所需条件,而不会直接失败;上面列出的八个工具不受影响。

这两组工具的界限并非出于商业顾虑,而是由各自的需求决定。只需要你自己的网站和公开数据的功能都在你的机器上运行,包括爬虫验证和日志读取。需要他人的域名,或需要对比今天与昨天数据的功能,则需要一个持续监测的服务器。

工具功能
aeo_crawler_intel此网站的 CDN 是否开始拒绝 AI 爬虫?这一变化发生在什么时候?
aeo_citations向助手提问买家关心的问题,并记录是否提到了你
aeo_history评分随时间的变化情况
aeo_drift哪些项目之前通过了,现在却不再通过
aeo_competitors哪些域名被提及来代替你
阅读服务器日志

审计会使用每种爬虫的用户代理,从这台机器抓取你的页面。这只是一个迹象,并非证据:真正的爬虫会从其运营方自己的网络发起请求;检查地址的防火墙可能会拒绝我们的请求,却允许真正爬虫的请求,反之亦然。

访问日志才能给出定论。

npx openaeo-audit log /var/log/nginx/access.log
  Googlebot           refused        2 requests, 2 paths
    403 x2
    2 confirmed from the operator's own network
    /docs x1  /pricing x1

  GPTBot              impostor-only  1 request, 1 path
    200 x1
    1 request claimed to be GPTBot from outside its published range: 45.83.12.9

由此可知,有两件事是抓取无法告诉你的。第一,我们的判断有时完全错了,而日志可以纠正判断。第二,日志中的“GPTBot”只是一个声明,并不代表真实身份:任何人都可以发送带有该用户代理的请求,而且这样做的人很多,正是因为网站允许这类请求。我们会将每个请求与 OpenAI、Anthropic、Google、Microsoft、Perplexity 和 Apple 专门为此发布的地址范围进行核对。

只有在有确凿证据时,才会将爬虫认定为冒名者。如果运营方没有发布任何信息,或信息源加载失败,结论就是“无法验证”,绝不会是“冒名者”:错误指控的代价,是你屏蔽了原本想要的流量。

日志会从磁盘读取,在进程中解析,然后丢弃。唯一的网络调用是获取这些公开的地址范围。日志中的任何内容都不会上传,这正是它被放在软件包中、而不是放在登录后才能使用的服务中的原因。


要求

  • Node.js 18+(使用内置的 fetch)
  • 零 npm 依赖

这是什么——又不是什么

这个代码仓库包含什么。 审计引擎:5 道检索关卡、8 项重点检查,以及一个按机器人划分的边缘矩阵;它会以 8 个具名 AI 爬虫的身份抓取你的网站,并记录每个爬虫收到的 HTTP 状态码。此外还包括用于生成 robots.txt、llms.txt 和 JSON-LD 的生成器、CLI 和 MCP 服务。永久免费,采用 MIT 许可证,无需账户,不收集遥测数据。它与 openaeo.dev 免费版使用的是同一套引擎。

不包含什么。 托管服务:完整的 49 项加权评分标准(持续追踪)、每周在六种助手平台上进行的引用测试、偏移提醒、竞争对手的声量份额分析,以及审计历史。这些功能运行在我们的基础设施上,而非你的设备上。

这种划分并不是为了藏起有用的部分。修复网站大多只需做一次,这里已经提供了所需的一切。助手是否会提及你每周都在变化,而这件事无论有没有人关注,都需要持续追踪。我们卖的是服务,而不是使用权限。

如果 CLI 对你有帮助,托管版本就是下一步。两者都会告诉你实情;托管版本还会持续追踪变化。


参与贡献

欢迎提交问题和 PR,尤其是新增检查项、改进检测启发式规则,以及修复框架渲染方式中的边缘情况。请保持引擎零依赖。

许可证

MIT © OpenAEO。可自由使用、分叉并在此基础上构建。

商标

“OpenAEO”和 OpenAEO 徽标是 OpenAEO 的商标,不受 MIT 许可证授权。分叉和衍生作品可以自由使用此代码,但不得以暗示获得认可、存在关联,或属于 OpenAEO 官方产品或服务的方式使用 OpenAEO 名称或徽标。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。