内容
# 开放AEO
一款开源的AEO(答案引擎优化)引用监测工具,构建为MCP服务器。在Claude中直接跟踪您的域名是否被像Perplexity这样的AI答案引擎引用。
## 功能
- **`aeo_check`** — 单个查询的实时引用检查
- **`aeo_report`** — 跨多个查询的批量检查
- **`aeo_history`** — 查看随时间变化的历史引用数据
- **`aeo_analyse`** — 获取并分析击败您的竞争对手页面
- **`aeo_recommend`** — 引用检查加上优先内容推荐
- **`aeo_gap_report`** — 查找竞争对手被引用但您未被引用的查询
- **`aeo_gap_history`** — 查看历史差距分析数据
## 为什么
像Profound和Conductor这样的企业工具为大型团队解决了这个问题,但价格昂贵。开放AEO是自托管、开源的替代方案 — 在本地运行,每份报告的成本仅为几分钱,无需订阅。
## 先决条件
- Node.js >= 20
- [Perplexity API密钥](https://www.perplexity.ai/api-platform)(约5美元/1000次请求)
- [Claude Desktop](https://claude.ai/download) 或 [Claude Code](https://claude.ai/code)
## 安装
### 选项1 — npx(推荐)
```bash
npx -y open-aeo install
```
这将提示您输入Perplexity API密钥,询问您是否正在使用Claude Code、Claude Desktop或两者,并自动写入配置。完成后请重启Claude。
---
### 选项2 — 手动(git clone)
需要pnpm >= 9。
```bash
git clone https://github.com/open-aeo/open-aeo.git
cd open-aeo
pnpm install && pnpm run build
```
然后添加到您的Claude Desktop配置(替换路径):
```json
{
"mcpServers": {
"open-aeo": {
"command": "node",
"args": ["/绝对路径/to/open-aeo/dist/index.js"],
"env": {
"PERPLEXITY_API_KEY": "您的密钥"
}
}
}
}
```
---
## 验证
开始一个新的对话并询问: *"您有哪些可用的MCP工具?"* — Claude将列出所有连接的工具。
## 用法
询问Claude:
- *"检查linear.app是否在'软件团队最佳项目管理工具'中被引用"*
- *"为这5个查询运行AEO报告"*
- *"显示我上周的引用历史"*
- *"分析这个一直击败我的竞争对手页面"*
- *"我应该怎么做才能被引用这个查询?"*
- *"查找竞争对手被引用而我未被引用的空白点"*
## 工具
| 工具 | 描述 |
|------|-------------|
| `aeo_check` | 运行单个查询的实时引用检查。返回您的域名或品牌是否被引用、其位置以及哪些竞争对手出现。 |
| `aeo_report` | 跨多个查询的批量引用检查。返回摘要和每个查询的结果。在请求之间添加2秒的延迟以避免速率限制。 |
| `aeo_history` | 从本地存储中检索过去的引用检查结果。可按查询和域名过滤。 |
| `aeo_gap_report` | 运行一组查询的引用检查,并仅返回竞争对手出现但您的域名未出现的查询。 |
| `aeo_gap_history` | 从本地存储中检索历史空白分析结果。 |
| `aeo_analyse` | 获取并分析特定的竞争对手URL。返回页面的结构分解 — 常见问题部分、模式标记、内容深度、更新信号 — 以便您了解为什么它被引用。 |
| `aeo_recommend` | 为查询运行新的引用检查,然后自动获取并分析出现而不是您的竞争对手页面。返回优先的内容和模式任务列表,以提高您的引用机会。 |
## 架构
代码库遵循端口/适配器模式。接口定义契约;实现可以在不更改任何工具逻辑的情况下进行交换。
```
src/
index.ts 入口点,读取环境变量,启动MCP服务器
core/
types.ts 所有共享接口
citationParser.ts 在引擎响应中检测引用
contentAnalyser.ts 获取竞争对手页面,生成推荐任务
ports/
IAnswerEngine.ts 答案引擎适配器的接口
IStorage.ts 存储适配器的接口
adapters/
PerplexityApi.ts 答案引擎:通过声纳模型获取Perplexity
JSONStorage.ts 存储:写入~/.open-aeo/
PageFetcher.ts 获取竞争对手网址,提取页面信号
mcp/
tools.ts 工具处理函数
server.ts MCP服务器,工具注册
```
## 数据存储
所有数据都存储在本地的`~/.open-aeo/`中。没有云存储,没有遥测。
- `~/.open-aeo/history.json` — 引用检查历史
- `~/.open-aeo/competitor-history.json` — 竞争对手页面分析历史
使用`OPEN_AEO_STORE_PATH`覆盖存储位置(必须是绝对路径)。
## 环境变量
| 变量 | 是否必需 | 描述 |
|----------|----------|-------------|
| `PERPLEXITY_API_KEY` | 是 | 您的Perplexity API密钥。在https://www.perplexity.ai/api-platform获取 |
| `OPEN_AEO_STORE_PATH` | 否 | 自定义数据存储的绝对路径。默认为`~/.open-aeo/` |
## 常见问题
**为什么我应该关心AI引用?**
AI搜索引擎越来越多地成为人们直接获取答案而非链接列表的地方。如果您的品牌未在该答案中被引用,则无论您的Google排名如何,您对该用户都是不可见的。传统的SEO工具无法跟踪这一点。
**为什么只有Perplexity?ChatGPT和Gemini呢?**
Perplexity先行,因为其API返回一个干净的`citations`数组,使得检测变得可靠。ChatGPT Search和Gemini Grounding具有不同的API形状。多引擎支持是下一个计划的里程碑 — 代码库使用端口/适配器模式,因此添加新引擎意味着实现一个接口。
**引用检测的准确性如何?**
检测是精确的 — 它直接检查Perplexity的引用数组和答案文本。限制在于AI搜索是非确定性的:相同的查询运行两次可能会返回不同的结果。单个检查是一个快照。随着时间的推移运行报告会给出一个可靠的信号。
**API输出是否与真实用户看到的结果匹配?**
方向上是的,确切地说不是。API使用与Web产品相同的模型,但没有Web UI的额外排名层。将它视为一个可靠的代理,而不是一个完美的镜像。
**成本是多少?**
Perplexity每1000次请求收取约5美元。20查询的报告成本约为0.10美元。50查询的每日报告运行约75美元/年。
**我的数据会被发送到其他地方吗?**
不会。所有数据都存储在本地的`~/.open-aeo/`中。没有遥测,没有云同步。
## 文档
完整文档位于[`docs/`](docs/)文件夹中,包括工具参考、引用检测工作原理、存储参考以及带有证据图表的研究数据。
## 贡献
参见[CONTRIBUTING.md](./CONTRIBUTING.md)。
## 许可证
MIT