Ranki.io SEO/AEO consultant
官方免费的SEO和AEO MCP服务器,可将您的Claude/Cursor/ChatGPT桌面版转变为高级SEO+AEO顾问。可审计任意URL,生成sitemap.xml/llms.txt/robots.txt,发现关键词缺口,并精确告知您的AI需要修复的内容——全程使用您自己的AI积分,绝不消耗我们的资源。
你可以用 Ranki Io SEO AEO Consultant MCP 做什么?
- 审计页面SEO — 对任意URL运行
audit_seo,获取0–100分的评分卡,涵盖标题、元描述、规范链接、图片alt覆盖率和JSON-LD存在性,并附带每项失败的修复方案。 - 审计答案引擎优化 — 使用
audit_aeo检查FAQPage结构化数据、定义性引言、llms.txt、AI机器人权限以及答案式标题,确保您的网站能被ChatGPT和Claude引用。 - 衡量核心网页指标与速度 — 调用
audit_speed或audit_core_web_vitals获取真实的Lighthouse评分及LCP/CLS/INP指标,然后通过optimize_images获得精确的图片优化指令。 - 生成必备SEO文件 — 通过
seo_starter_kit或单独的generate_*工具,一步生成可直接部署的robots.txt、sitemap.xml、llms.txt和JSON-LD结构化数据。 - 发现内容机会 — 使用
find_topic_ideas获取按意图分类的15个文章主题的结构化简报,或通过find_keyword_gap发现竞争对手已排名而您尚未覆盖的关键词。 - 分类隐藏页面 — 在域名上运行
audit_hidden_pages,识别管理路由、草稿页和noindex页面,随后获得可直接粘贴的robots.txt代码块。
文档
Ranki MCP — 面向 Cursor、Claude Code、Windsurf 和 ChatGPT 的免费 SEO、AEO、速度与图像优化 MCP
这款 MCP 不止于报告——你的智能代理会直接修复问题。对任意 URL 进行 SEO 和答案引擎优化审计,通过 Google PageSpeed Insights 测量真实的 Core Web Vitals,并指导你的代理将图像转换为 AVIF 和 WebP 格式,将
<img>标签重写为带有srcset和alt的响应式<picture>,嵌入 JSON-LD 结构化数据,生成sitemap.xml/llms.txt/robots.txt,对隐藏页面进行分类——然后重新运行审计以证明评分得到了提升。所有这些都在 Claude Code、Claude Desktop、Cursor、Windsurf 和 ChatGPT Desktop 中完成。
一行命令安装
npx @ranki.io/cli install
CLI 会自动检测你安装了哪个 AI 编辑器(Claude Code、Claude Desktop、Cursor、Windsurf、ChatGPT Desktop),在正确的位置写入正确的 MCP 配置,并从 ranki-seo-skills 仓库下载配套的 Skill 文件。之后重新运行 npx @ranki.io/cli update 即可刷新 Skill;npx @ranki.io/cli check 用于验证设置。
更喜欢手动配置 JSON 代码段?每个编辑器的示例见下方安装部分。
两种实现,同一套工具
本仓库以两种对等实现提供 MCP,你可以选择最适合你技术栈的那一个:
server/— PHP 8.4 参考实现,为mcp.ranki.io提供支持的生产部署版本。托管、加固、零依赖,运行在 Cloudflare 之后。这是mcp.ranki.io的构建基础。ts-server/— Node / TypeScript 参考实现,以@ranki.io/seo-aeo-mcp的形式发布在 npm 上。为偏好 JavaScript 工具链的开发者提供的原生 Node 替代方案,可通过npx -y @ranki.io/seo-aeo-mcp(stdio) 或npx @ranki.io/seo-aeo-mcp --serve(HTTP) 安装。
两者都暴露相同的 22 个工具,具有相同的 JSON 输出、SSRF 防护、速率限制语义和安全态势。TS 实现会在 Node 中原生运行 15 个免费工具,并将 7 个付费桥接工具代理到 PHP 服务器使用的同一个 REST API app.ranki.io。两者都不会打开数据库——付费工具通过 Laravel 的 ApiKeyAuth 中间件,并限定为调用用户的数据。
它实际做什么——22 个工具
MCP 服务器暴露 22 个工具。你的代理会像调用其他 MCP 工具一样调用它们;它们会返回 Markdown 报告,你的代理会内联渲染这些报告,然后据此采取行动——转换文件、重写 HTML、生成新文件、提交结果。
审计
audit_seo(url)— 10 项检查的页面 SEO 评分卡:标题长度、元描述、H1 唯一性、规范链接、视口、HTTPS、OpenGraph 完整性、图像 alt 覆盖率、内部链接数量、JSON-LD 存在情况。返回 0–100 的评分,并附带每项失败的修复方案。audit_aeo(url)— 8 项检查的答案引擎优化评分卡:FAQPage / Article JSON-LD、80 词以内的定义性引言、作者署名、llms.txt存在情况、robots.txt允许 GPTBot / ClaudeBot / PerplexityBot、答案式 H2/H3 标题、对比表格。audit_hidden_pages(urls, domain)— 将每个路径分类为robots-disallow、noindex、keep或unsure,并附上理由。能识别管理路由、API 端点、草稿、登录页面、账户仪表盘、感谢页面、构建产物和搜索结果 URL。返回一个可直接粘贴的robots.txt代码块。
速度与图像——这是其他工具做不到的部分
audit_speed(url, strategy)— 通过 Google PageSpeed Insights 获取真实的 Lighthouse 评分(性能、可访问性、SEO、最佳实践)和 Core Web Vitals(LCP、CLS、INP、FCP、TTFB)。返回图像优化机会(含每个文件节省的字节数)、阻塞渲染的 JS / CSS,以及未通过的页面 SEO 审计项。默认策略是mobile(Google 以移动端优先进行排名)。audit_core_web_vitals(url)— 每个指标一段话,附带具体的修复方案。“LCP 元素是 hero.png,大小为 2.4 MB,转换为 WebP 可节省 1.8 MB → LCP 减少 1.1 秒。” 从 Lighthouse 中提取 LCP 元素的 URL,以便代理确切知道要优化哪个文件。optimize_images(images, max_width)— 针对每张图像:目标格式(AVIF + WebP)、响应式 1×/2× 宽度、alt 文本建议、具体的sharp-cli/cwebp/avifenc命令,以及一个带有srcset的、可直接粘贴的<picture>代码块。你的代理会在仓库本地运行转换,并重写<img>标签。
生成
generate_sitemap_xml(urls)— 根据 URL 列表构建一个可直接部署的sitemap.xml,并带有当前的lastmod时间戳。generate_llms_txt(site_name, summary, key_pages)— 生成llms.txt,这是一种新兴标准,用于告知 AI 爬虫你的网站内容以及应引用哪些页面。generate_robots_txt(sitemap_url, allow_ai, disallow_paths)— 构建一个robots.txt,明确允许或拒绝 GPTBot、ChatGPT-User、ClaudeBot、anthropic-ai、PerplexityBot 和 Google-Extended。
内容与策略
seo_starter_kit(domain)— 返回大多数快速构建的网站所缺失的四个基线文件(robots.txt、sitemap.xml、llms.txt、JSON-LD),可直接粘贴到你的仓库中。find_topic_ideas(url)— 读取你的主页,推断你的细分领域,并返回一个结构化的简报,用于生成涵盖信息性、商业性和交易性意图的 15 个文章主题,并附带优先级排序标准。find_keyword_gap(url, competitors)— 返回一个分步方法,用于查找竞争对手有排名但你却没有的关键词。如果未提供竞争对手,会指示你的编辑器先询问。propose_titles_metas(urls, focus_keyword)— 从每个 URL 中提取实际的标题、h1 和第一段(或接受未部署页面的自由文本描述),然后返回一个 Markdown 表格,为每个页面提供 5 个标题和元描述候选方案,涵盖 5 个角度(描述性、利益导向、问题格式、具体数字、关键词优先)。每个候选方案都会标注是否符合长度要求。explain_seo_terms(category)— 包含 40 多个 SEO 和 AEO 术语的参考词汇表:SEO、AEO、GEO、JSON-LD、FAQPage、规范链接、llms.txt、Core Web Vitals、E-E-A-T、有用内容更新、桥页等。可按类别筛选:基础、AEO、技术、分析、惩罚。
安装
install_skill(agent)— 返回在 Claude Code、Claude Desktop、Cursor、Windsurf、Claude.ai 网页项目以及通用AGENTS.md代理中安装 ranki-seo-skills Skill 的命令。
你的 Ranki.io 账户——IDE 中的真实排名数据(付费 API 密钥)
get_account()— 查询你的 API 密钥的 whoami 信息:姓名、邮箱、套餐、每日和每月限额、当前使用量。list_projects()— 列出你 Ranki.io 账户中的项目。list_articles(project_id)— 项目中文章的分页索引:nano_id、标题、状态、语言、focus_keyword[]、目录大纲、字数、SEO 评分。可选状态筛选。get_article(article_id)— 通过文章的nano_id获取单篇文章:标题、HTML、焦点关键词、目录、嵌入图片 URL、SEO 评分。list_rank_tracking(project_id)— 项目的 Google Search Console 摘要:28 天总计、按点击量排名前 20 的关键词、前 20 个机会关键词(排名 > 10 但有展示量——容易获得的成果)。list_gsc_keywords(project_id)— 完整的 GSC 关键词分页列表,可按点击量 / 展示量 / 排名 / CTR 排序。ai_visibility(project_id)— 记录的 AI 引用快照:在捕获时,你追踪的主题中有哪些出现在 ChatGPT、Claude、Perplexity 和 Google AI Overviews 的搜索结果页中。
典型会话是什么样的
You: audit my site speed and fix the slow images
Claude: → Calling ranki.audit_speed(url="https://myapp.dev")
← Lighthouse: 42 perf · LCP 4.8s · 3 images blocking the paint.
→ Calling ranki.optimize_images([hero.png, banner.jpg, card.png])…
← 3 files, recipes returned.
→ Running sharp-cli to convert hero.png → hero.avif + hero.webp + hero@2x.avif…
→ Editing app/page.tsx — rewriting <img> as <picture srcset>, adding alt text…
→ Calling ranki.audit_speed again to verify…
← Lighthouse: 96 perf · LCP 1.4s.
You: now find pages that shouldn't be in Google
Claude: → Calling ranki.audit_hidden_pages(domain="https://myapp.dev")
← 8 robots-disallow, 12 noindex, 118 keep, 4 unsure.
→ Editing public/robots.txt to disallow /admin /dashboard /checkout /account…
→ Adding <meta name="robots" content="noindex"> to app/search/page.tsx…
Done. Submit URL-removal requests in Search Console for the 8 admin pages.
Skill 文件(位于 ranki-seo-skills 中)会告诉你的代理何时调用哪个工具、以什么顺序调用,以及在你的仓库中何处应用每项修复。
速率限制
| 层级 | 每日上限 | 范围 | 可用工具 |
|---|---|---|---|
| 无密钥 | 5 次调用 | 每个 IP | 15 个免费工具(审计、生成器、速度、图像优化、内容策略、安装) |
| Ranki.io API 密钥 | 500 次调用 | 每个密钥 | 全部 22 个工具,包括 7 个桥接工具,可读取你 Ranki.io 账户中的真实 GSC 关键词、排名追踪、AI 引用、项目列表和文章库 |
在 app.ranki.io/developer 获取密钥。每次响应都会返回 X-RateLimit-Limit、X-RateLimit-Remaining 和 X-RateLimit-Reset。调度器的错误消息会包含重置倒计时和升级路径。
安装
Claude Desktop / Claude Code(推荐大多数快速构建者使用)
添加到 ~/.claude/claude_desktop_config.json:
{
"mcpServers": {
"ranki": {
"command": "npx",
"args": ["-y", "@ranki.io/mcp"],
"env": { "RANKI_API_KEY": "rk_live_..." }
}
}
}
重启 Claude Desktop。MCP 指示器应显示 ranki 及 22 个工具。
Cursor(HTTP 传输,无需 npx)
项目中的 .cursor/mcp.json:
{
"mcpServers": {
"ranki": {
"url": "https://mcp.ranki.io",
"headers": { "X-API-Key": "rk_live_..." }
}
}
}
ChatGPT Desktop、Continue.dev、Zed,以及任何支持 MCP 的工具
如果客户端支持 stdio MCP,请使用 Claude Desktop 的代码段。如果支持 HTTP MCP,请使用 Cursor 的代码段。
获取你的免费 API 密钥
访问 app.ranki.io/developer 并点击 Reveal。你的密钥已经存在——每个 Ranki.io 账户都会自动创建一个。免费的顾问工具无需密钥即可使用(5 次调用/IP/天);list_projects 和 get_article 桥接工具则需要密钥。
快速构建者如何使用它
场景 1:“我刚发布了一个网站,该做什么?”
You: I just shipped my Next.js app at https://myapp.com. What SEO do I need?
Claude (via Ranki MCP):
→ Calling seo_starter_kit(domain="myapp.com")
← [Returns robots.txt + sitemap.xml + llms.txt + JSON-LD templates]
→ Writing public/robots.txt
→ Writing public/sitemap.xml (enumerating pages from app/ directory…)
→ Writing public/llms.txt
→ Adding JSON-LD <script> to app/layout.tsx
→ Calling audit_seo to verify…
← Score: 92/100. 🎉
场景 2:“为什么 ChatGPT 没有引用我的文档?”
You: Why doesn't ChatGPT cite my docs site?
Claude (via Ranki MCP):
→ Calling audit_aeo(url="https://docs.myproduct.com")
← Score 38/100. Failing: no FAQPage schema, no llms.txt, robots.txt blocks ClaudeBot.
→ Fixing each failure in your repo…
← Score 88/100. Re-deploy and ChatGPT should pick it up within 7-14 days.
场景 3:“我不知道该写什么博客文章”
You: I have a Stripe alternative landing page but the blog is empty. Help.
Claude (via Ranki MCP):
→ Calling find_topic_ideas(url="https://mystripe-alt.com")
← [Returns brief with topic generation methodology + 15-topic structure]
→ [Generates 15 topics organized by intent, picks top 3]
← Recommended first 3 articles:
1. "How to switch payment processors without losing customers" (transactional)
2. "Stripe vs us: side-by-side fee comparison for $10K/mo MRR" (commercial)
3. "What is interchange-plus pricing and why most SaaSes overpay" (informational)
场景 4:“我错过了哪些差距关键词?”
You: My competitors are stripe.com and lemonsqueezy.com. What am I missing?
Claude (via Ranki MCP):
→ Calling find_keyword_gap(url="https://mystripe-alt.com",
competitors=["stripe.com","lemonsqueezy.com"])
← [Returns methodology + per-competitor analysis steps]
→ Crawling /blog on both competitors…
→ Cross-referencing against your sitemap…
← 5 high-value gaps found:
- "PCI compliance for small SaaS" (covered by Stripe, not you)
- "How to handle subscription dunning" (covered by both, not you)
- … 3 more
架构
┌────────────────────────┐ ┌──────────────────────────┐
│ Claude / Cursor / etc │ │ mcp.ranki.io (PHP) │
│ │ │ │
│ 1. Sees 22 tools │ JSON-RPC│ - 22 tool definitions │
│ 2. Decides to use one ├────────►│ - HTTP + stdio (npx) │
│ 3. Receives advice │ │ - 5/IP or 500/key per │
│ 4. Acts on the repo │ │ UTC day rate limit │
│ │ │ - REST API bridge │
└────────────────────────┘ └────────────┬─────────────┘
│ (only for keyed tools)
▼
┌──────────────────────────┐
│ app.ranki.io REST API │
│ /api/v1/projects │
│ /api/v1/articles/... │
└──────────────────────────┘
两种传输方式
- stdio(Claude Desktop、Claude Code、大多数 MCP 客户端)——安装
@ranki.io/mcpnpm 包,这是一个 50 行的 Node.js 垫片,将 stdio JSON-RPC 代理到https://mcp.ranki.io。 - HTTP(Cursor、自定义客户端)——直接指向
https://mcp.ranki.io。无需安装 Node。
仓库布局
ranki-mcp/
├── server/ # PHP MCP server (deployed to mcp.ranki.io)
│ ├── public/index.php # GET → marketing landing page (HTML)
│ ├── index.php # POST → JSON-RPC 2.0 dispatcher
│ ├── lib/
│ │ ├── jsonrpc.php # JSON-RPC reply helpers
│ │ ├── registry.php # Tool registry + REST API bridge
│ │ └── ratelimit.php # Per-IP rate limit (5/day for free tier)
│ └── tools/
│ ├── seo_starter_kit.php
│ ├── find_topic_ideas.php
│ ├── find_keyword_gap.php
│ ├── audit_aeo.php
│ ├── audit_seo.php
│ ├── generate_sitemap_xml.php
│ ├── generate_llms_txt.php
│ ├── generate_robots_txt.php
│ ├── list_projects.php
│ └── get_article.php
└── npx/ # Node.js stdio shim (published as @ranki.io/mcp)
├── package.json
├── index.js # ~50 lines: stdin→POST→stdout
└── README.md
SEO 与 AEO——有什么区别?
SEO(搜索引擎优化) 是让你的网站在 Google 经典的 10 个蓝色链接中排名靠前。其信号包括:标题标签、元描述、H1、规范链接、站点地图、内部链接、页面速度、移动端友好性、HTTPS。Ahrefs / SEMrush / SurferSEO 等工具会对这些进行评分。
AEO(答案引擎优化) 是让你的网站在 ChatGPT、Claude、Perplexity 或 Google AI Overviews 回答用户问题时被引用。其信号不同:
- FAQPage JSON-LD——最大的单一引用信号。
- 定义性引言——第一段是简洁的“X 是……”式回答。
- 作者署名 + E-E-A-T——LLM 更倾向于引用有署名作者的来源。
llms.txt——明确邀请 LLM 使用你的内容。robots.txt允许 AI 机器人——GPTBot / ClaudeBot / PerplexityBot 绝不能 被屏蔽。- 答案式标题——以问题形式表述的 H2/H3(“什么是 X?”、“X 如何工作?”)。
- 对比表格——AI Overviews 中引用率最高的 HTML 元素。
audit_aeo 会检查所有这 8 项,并确切告诉你的 AI 要修复什么。截至 2026 年,AEO 流量是增长最快的 SEO 渠道,而大多数网站的覆盖率为零。
llms.txt——新兴的 AI 搜索标准
受 robots.txt 启发,但面向 LLM。位于 /llms.txt 的 Markdown 文件会告知 AI 爬虫:
- 你的网站是关于什么的(用通俗的英语,而非元数据)。
- 哪些页面最重要。
- 如何引用你。
# Acme Corp
> Acme makes the SDK for shipping React Native apps faster.
## Key pages
- [Homepage](https://acme.dev/)
- [Documentation](https://acme.dev/docs)
- [Pricing](https://acme.dev/pricing)
- [Blog](https://acme.dev/blog)
## About
- Founded 2024, based in Berlin.
- Used by 12,000+ teams including Linear and Notion.
- Open source SDK on github.com/acme/sdk.
使用 generate_llms_txt 在 5 秒内创建一个。
自托管
MCP 服务器是纯 PHP 8.4——无框架、无数据库、无 Composer 依赖。将 server/ 目录放到一个服务于 public/index.php 的 Nginx 虚拟主机后面,即可完成。
server {
server_name mcp.yourdomain.com;
root /var/www/ranki-mcp/server/public;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/run/php/php8.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
}
}
lib/ratelimit.php 使用 /tmp/ 中的文件进行 IP 速率限制——开箱即用。对于大规模场景下基于 Redis 的速率限制,可替换实现。
贡献
欢迎为新的顾问工具提交 PR。要添加工具:
- 创建
server/tools/your_tool.php,返回一个可调用的function (array $args, string $apiKey): array。 - 返回
rk_mcp_text_content("...your structured advice...")。 - 在
server/lib/registry.php的rk_mcp_tool_definitions()下注册该工具。
工具命名:<verb>_<noun> snake_case(例如 audit_aeo、find_topic_ideas)。
工具理念:返回数据 + 给调用 AI 的指令,绝不自行调用 LLM。
常见问题
这需要花钱吗?
顾问工具(除 list_projects / get_article 之外的所有工具)免费——每个 IP 每个 UTC 日可调用 5 次。要解除该限制,请在 app.ranki.io/developer 获取免费 API 密钥。桥接工具需要密钥,因为它们会拉取你的私有 Ranki.io 数据。
Ranki MCP 会消耗我的 Claude 额度吗?
会——且仅消耗你的额度。 我们从不发起 LLM 调用。MCP 服务器返回结构化建议;你的 Claude / Cursor 使用你自己的额度来评估并执行这些建议。
数据流向哪里?
- 顾问工具(
audit_*、generate_*、seo_starter_kit、find_*)会抓取你传入的 URL(无其他网络调用)。 - 桥接工具(
list_projects、get_article)通过 HTTPS 调用app.ranki.io/api/v1/...,并使用你的X-API-Key。 - 我们不记录请求体。我们会记录 IP + 工具名称 + 响应状态,用于速率限制和调试。
它是开源的吗?
是的——MIT 许可证,完整源代码在此仓库中。
我可以在公司 VPC 内运行它吗?
可以——server/ 是纯 PHP,除了桥接工具所需的 app.ranki.io 外,没有其他外部服务依赖(你可以通过删除这些工具文件来禁用它们)。
这与 Surfer / Frase / Outrank 等竞品有何不同?
那些是 SaaS 仪表板,一次审计一个 URL 并推荐更改。Ranki MCP 是一个协议层,让你的 AI 在 IDE 中编写代码时,能够内联使用这些审计结果。形态不同,价格点不同(免费),受众不同(氛围编程者,而非 SEO 专业人士)。
我是一名氛围编程者,完全不知道 AEO 是什么意思。
这正是为这类人准备的。从 seo_starter_kit("yourdomain.com") 开始——你的 Claude 会引导你了解一切。
你们会用我的数据训练 AI 吗?
我们不训练模型。我们也没有模型。我们只是一个基于确定性检查的轻量级顾问。
许可证
MIT。详见 LICENSE。
由 Ranki.io 用心构建——面向创始人、代理机构和创作者的 AI SEO + AEO 自动化。