Ranki.io SEO/AEO consultant

公式

無料のSEOおよびAEO MCPサーバーで、Claude / Cursor / ChatGPT DesktopをシニアSEO+AEOコンサルタントに変えます。任意のURLを監査し、sitemap.xml / llms.txt / robots.txtを生成し、キーワードギャップを発見し、AIに修正すべき点を正確に指示します。すべてあなた自身のAIクレジットを使用し、当社のクレジットは一切使いません。

Ranki Io SEO AEO Consultant MCPで何ができますか?

  • Audit on-page SEO — 任意のURLでaudit_seoを実行すると、タイトル、メタディスクリプション、正規URL、画像のalt属性の網羅率、JSON-LDの有無を0~100点で評価し、失敗項目ごとに修正方法を提示します。
  • Audit Answer Engine Optimizationaudit_aeoを使用して、FAQPageスキーマ、定義的な導入文、llms.txt、AIボットの権限、回答形式の見出しをチェックし、あなたのサイトがChatGPTやClaudeに引用されるようにします。
  • Measure Core Web Vitals and speedaudit_speedまたはaudit_core_web_vitalsを呼び出して、実際のLighthouseスコアとLCP/CLS/INP指標を取得し、optimize_imagesで正確な画像最適化コマンドを得ます。
  • Generate essential SEO filesseo_starter_kitまたは個別のgenerate_*ツールを使用して、デプロイ可能なrobots.txtsitemap.xmlllms.txt、JSON-LDスキーマを一度に生成します。
  • Find content opportunitiesfind_topic_ideasに依頼して、意図別に15の記事トピックを構造化された概要で取得するか、find_keyword_gapを使用して競合が順位を持ち、あなたのサイトが持っていないキーワードを発見します。
  • Classify hidden pages — ドメイン全体でaudit_hidden_pagesを実行し、管理ルート、下書き、noindexページを特定した後、コピー&ペースト可能なrobots.txtブロックを受け取ります。

ドキュメント

Ranki MCP — Cursor、Claude Code、Windsurf、ChatGPT向け無料SEO/AEO/速度/画像最適化MCP

単にレポートするだけではないMCP — あなたのエージェントが修正します。任意のURLをSEOおよびアンサーエンジン最適化(AEO)について監査し、Google PageSpeed Insightsを通じて実際のCore Web Vitalsを測定し、画像をAVIFやWebPに変換し、<img>タグをsrcsetaltを含むレスポンシブな<picture>に書き換え、JSON-LDスキーマを追加し、sitemap.xml / llms.txt / robots.txtを生成し、隠しページを分類するようエージェントに指示します。その後、監査を再実行してスコアが向上したことを証明します。すべてClaude Code、Claude Desktop、Cursor、Windsurf、ChatGPT Desktop内で完結します。

MCP 2024-11-05 License: MIT npm @ranki.io/mcp live mcp.ranki.io Skill repo

ワンラインでインストール

npx @ranki.io/cli install

CLIは、インストールされているAIエディター(Claude Code、Claude Desktop、Cursor、Windsurf、ChatGPT Desktop)を自動検出し、適切な場所に適切なMCP設定を書き込み、ranki-seo-skills リポジトリから付属のスキルファイルをダウンロードします。後でnpx @ranki.io/cli updateを再実行してスキルを更新し、npx @ranki.io/cli checkでセットアップを検証します。

手動のJSONスニペットをお好みですか?各エディター向けの例は、以下のインストールセクションにあります。

2つの実装、同じツール

このリポジトリは、2つの同等な実装でMCPを提供しているため、スタックに合った方を選択できます。

  • server/ — PHP 8.4リファレンスmcp.ranki.ioを支える本番デプロイメント。ホスト型、堅牢化、依存関係ゼロ、Cloudflare背後で動作。これがmcp.ranki.ioの基盤です。
  • ts-server/ — Node / TypeScriptリファレンス。npmで@ranki.io/seo-aeo-mcpとして公開。JavaScriptツールを好む開発者向けのネイティブNode代替手段。npx -y @ranki.io/seo-aeo-mcp(stdio)またはnpx @ranki.io/seo-aeo-mcp --serve(HTTP)経由でインストール可能。

どちらも同じ22のツールを同じJSON出力、SSRFガード、レート制限セマンティクス、セキュリティ体制で公開します。TS実装は15の無料ツールをNodeでネイティブ実行し、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-disallownoindexkeepunsureに理由付きで分類。管理ルート、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) — 各指標について、文字通りの修正レシピを含む1段落。「LCP要素はhero.png(2.4 MB)、WebPに変換すると1.8 MB節約 → -1.1秒 LCP」 LighthouseからLCP要素のURLを抽出し、エージェントが最適化すべきファイルを正確に把握できるようにします。
  • optimize_images(images, max_width) — 各画像について:ターゲットフォーマット(AVIF + WebP)、レスポンシブ1×/2×幅、altテキストの提案、文字通りのsharp-cli / cwebp / avifencコマンド、srcsetを含むすぐに貼り付け可能な<picture>ブロック。エージェントはリポジトリ内でローカルに変換を実行し、<img>タグを書き換えます。

生成

  • generate_sitemap_xml(urls) — 現在のlastmodタイムスタンプを持つURLリストから、デプロイ可能なsitemap.xmlを構築します。
  • generate_llms_txt(site_name, summary, key_pages) — AIクローラーにサイトの内容と引用すべきページを伝えるための新しい標準であるllms.txtを生成します。
  • generate_robots_txt(sitemap_url, allow_ai, disallow_paths) — GPTBot、ChatGPT-User、ClaudeBot、anthropic-ai、PerplexityBot、Google-Extendedを明示的に許可または拒否するrobots.txtを構築します。

コンテンツと戦略

  • seo_starter_kit(domain) — 多くのVibeコーディングされたサイトに欠けている4つのベースラインファイル(robots.txtsitemap.xmlllms.txt、JSON-LD)を返し、リポジトリに貼り付け可能な状態にします。
  • find_topic_ideas(url) — ホームページを読み取り、ニッチを推測し、情報、商業、トランザクションの意図にわたる15の記事トピックを優先順位付け基準とともに生成するための構造化されたブリーフを返します。
  • find_keyword_gap(url, competitors) — 競合他社がランク付けしているが、自社がランク付けしていないキーワードを見つけるためのステップバイステップの方法論を返します。競合他社が指定されていない場合は、最初に尋ねるようエディターに指示します。
  • propose_titles_metas(urls, focus_keyword) — 各URLから実際のタイトル、h1、最初の段落を抽出し(または未デプロイのページについてはフリーテキストの説明を受け入れ)、5つの角度(記述的、ベネフィット主導、質問形式、具体的数字、キーワード優先)にわたって、ページごとに5つのタイトルとメタディスクリプションの候補を含むMarkdownテーブルを返します。各候補は長さの準拠についてフラグが付けられます。
  • 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 Webプロジェクト、一般的なAGENTS.mdエージェント向けのranki-seo-skillsスキルのインストールコマンドを返します。

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のSERPに表示されたもの。

典型的なセッションの流れ

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.

スキルファイル(ranki-seo-skills内)は、どのツールをいつ、どの順序で呼び出し、各修正をリポジトリのどこに適用するかをエージェントに指示します。

レート制限

ティア1日の上限スコープ利用可能なツール
キーなし5コールIPごと15の無料ツール(監査、ジェネレーター、速度、画像最適化、コンテンツ戦略、インストール)
Ranki.io APIキー500コールキーごと実際のGSCキーワード、ランク追跡、AI引用、プロジェクトリスト、Ranki.ioアカウントの記事ライブラリを読み取る7つのブリッジツールを含む全22ツール

app.ranki.io/developerでキーを取得してください。X-RateLimit-LimitX-RateLimit-RemainingX-RateLimit-Resetはすべてのレスポンスで返されます。ディスパッチャーのエラーメッセージには、リセットカウントダウンとアップグレードパスが含まれます。


インストール

Claude Desktop / Claude Code(ほとんどのVibeコーダーに推奨)

~/.claude/claude_desktop_config.jsonに追加:

{
  "mcpServers": {
    "ranki": {
      "command": "npx",
      "args": ["-y", "@ranki.io/mcp"],
      "env": { "RANKI_API_KEY": "rk_live_..." }
    }
  }
}

Claude Desktopを再起動します。MCPインジケーターに22ツールを持つrankiと表示されるはずです。

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ブリッジツールにはキーが必要です。


Vibeコーダーによる使用方法

シナリオ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/...    │
                                   └──────────────────────────┘

2つのトランスポート

  • stdio(Claude Desktop、Claude Code、ほとんどのMCPクライアント) — @ranki.io/mcp npmパッケージをインストールします。これは、stdio JSON-RPCをhttps://mcp.ranki.ioにプロキシする50行のNode.jsシムです。
  • 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 vs 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はIPレート制限に/tmp/内のファイルを使用します — すぐに動作します。大規模向けのRedisベースのレート制限には、実装を交換してください。


貢献

新しいアドバイザーツールのPRを歓迎します。ツールを追加するには:

  1. 呼び出し可能な function (array $args, string $apiKey): array を返す server/tools/your_tool.php を作成します。
  2. rk_mcp_text_content("...your structured advice...") を返します。
  3. rk_mcp_tool_definitions() の下にある server/lib/registry.php にツールを登録します。

ツールの命名規則:<verb>_<noun> snake_case(例:audit_aeofind_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_kitfind_*)は、渡されたURLを取得します(他のネットワーク呼び出しはありません)。
  • ブリッジツール(list_projectsget_article)は、お客様の X-API-Key を使用してHTTPS経由で app.ranki.io/api/v1/... を呼び出します。
  • リクエストボディはログに記録しません。レート制限とデバッグのために、IP、ツール名、レスポンスステータスをログに記録します。

オープンソースですか?

はい — MITライセンスで、完全なソースがこのリポジトリにあります。

自社のVPC内で実行できますか?

はい — server/ はプレーンなPHPであり、ブリッジツール用の app.ranki.io を除き、外部サービスへの依存はありません(ブリッジツールファイルを削除することで無効にできます)。

Surfer / Frase / Outrankなどの競合他社とどう違いますか?

それらは、一度に1つのURLを監査し、変更を推奨するSaaSダッシュボードです。Ranki MCPは、AIがIDEでコードを記述している間に、それらの監査をインラインで使用できるようにするプロトコルレイヤーです。形状、価格帯(無料)、対象ユーザー(SEO専門家ではなく、Vibeコーダー)が異なります。

私はVibeコーダーで、AEOの意味がまったくわかりません。

まさにそのような方のためのものです。seo_starter_kit("yourdomain.com") から始めてください。あなたのClaudeがすべてを順を追って説明します。

私のデータでAIをトレーニングしますか?

モデルのトレーニングは行いません。モデルもありません。当社は、決定論的チェックに基づく薄いアドバイザーです。


ライセンス

MIT。LICENSE を参照してください。

Ranki.io が心を込めて構築しました — 創業者、代理店、クリエイターのためのAI SEO + AEO自動化。