Rank by Ouroboros Apps について
Rank by Ouroboros Appsは、サイト運営者、ブロガー、中小企業、SEOフリーランサー向けに、Google Search Consoleの読み取り専用SEOデータをMCPクライアントで扱えるようにします。APIが返す指標をそのまま示し、流入数の推定や欠損日の補完は行いません。
主な機能
- 01確認済みのSearch Consoleプロパティを一覧表示
- 02期間を指定して上位クエリとページを取得
- 03クリック数、表示回数、CTR、平均掲載順位を追跡
- 04期間を比較しCTRの低いクエリを特定
- 05順位が下がったページの検索とURL検査
活用シーン
- 01検索クエリとランディングページの実績を確認
- 022つの期間のSearch Consoleデータを比較
- 03表示回数が多くCTRが低いクエリを発見
- 04URL Inspectionの状態を確認し、実績が落ちたページを特定
MCP 対応
OAuthでログインとアカウント接続を行い、Streamable HTTP対応のMCPクライアントにGoogle Search Consoleの読み取り専用ツールを提供します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://rank.ouroborosapps.com/mcpclaude mcp add --transport http lahutchins91-rank https://rank.ouroborosapps.com/mcp{"mcpServers":{"lahutchins91-rank":{"type":"http","url":"https://rank.ouroborosapps.com/mcp"}}}Cursor で開く{"servers":{"lahutchins91-rank":{"type":"http","url":"https://rank.ouroborosapps.com/mcp"}}}VS Code で開く{"mcpServers":{"lahutchins91-rank":{"type":"http","url":"https://rank.ouroborosapps.com/mcp"}}}{"mcpServers":{"lahutchins91-rank":{"serverUrl":"https://rank.ouroborosapps.com/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
9このツールにパラメーターはありません。
詳細
Ouroboros Apps の Rank
Ouroboros Apps の Rank は、接続した Google Search Console アカウントから SEO に関する質問に回答します。Search Console の数値を ChatGPT、Claude、Gemini、Grok、Cursor、または Streamable HTTP と OAuth に対応するその他の MCP クライアントで確認したい、サイト所有者、ブロガー、中小企業、SEO フリーランサー向けです。
アシスタントは、確認済みプロパティの一覧表示、上位のクエリとページの読み取り、クリック数、表示回数、CTR、平均掲載順位の推移の追跡、2 つの期間の比較、表示回数が多く CTR が低いクエリの検索、順位が下落したページの確認、URL 検査のステータス確認ができます。すべての指標は Search Console API のレスポンスに基づきます。Rank はトラフィックを推定したり、API が返さなかった日付のデータを補完したりしません。CTR は Search Console が返した割合のままです(0.02 は 2% です)。
Google を接続すると、14 日間のトライアルが始まります。その後は Pro の Stripe サブスクリプションになります。金額は Stripe Checkout に表示されます。この README や製品には記載されていません。
ホスト型サーバー
- MCP サーバー URL:
https://rank.ouroborosapps.com/mcp(Streamable HTTP、OAuth サインイン) - ドキュメント:https://ouroborosapps.com/docs/rank
- ステータス:アーリーアクセスです。URL を Claude、Cursor、Grok、または ChatGPT の開発者モードに貼り付けてください。
- レジストリ名:
io.github.LAHutchins91/rank
アシスタントを接続する
MCP アドレスは、デプロイ後は https://YOUR_HOST/mcp、ローカルで実行する場合は http://127.0.0.1:44721/mcp です。OAuth を選択し、クライアント ID とシークレットは空欄のままにしてください。Rank は動的クライアント登録と PKCE に対応しています。
Cursor の場合、~/.cursor/mcp.json に記述します。
{
"mcpServers": {
"rank": {
"url": "http://127.0.0.1:44721/mcp"
}
}
}
Claude Code の場合:
claude mcp add --transport http rank http://127.0.0.1:44721/mcp
ChatGPT、Claude、Gemini、Grok では、同じ URL を使用してください。アプリ内の接続ページにも、APP_BASE_URL で指定したホスト向けに同じ手順が表示されます。
ツール
list_properties— 確認済みの Search Console プロパティtop_queries— 指定した期間のクエリtop_pages— 指定した期間のページperformance_trends— 日別のクリック数、表示回数、CTR、掲載順位compare_periods— 2 つの期間の合計と、各合計から算出したと明記された差分quick_wins— 表示回数が指定のしきい値以上で、CTR が指定のしきい値以下のクエリdropped_pages— 掲載順位が下落したページ、クリック数が減少したページ、または現在のレスポンスから消えたページinspect_url— URL Inspection API の結果account_status— Google が接続されているか、トライアルまたは Pro サブスクリプションが有効かどうか
日付を省略すると、Rank は 3 UTC 日前を終了日とする 28 日間を使用し、その旨を結果に表示します。期間を指定するには、startDate と endDate(YYYY-MM-DD)を渡してください。
Google Cloud OAuth クライアント
ウェブアプリケーションタイプの OAuth クライアントを作成してください。Rank は次の値を読み取ります。
GOOGLE_CLIENT_IDGOOGLE_CLIENT_SECRET
認証済みリダイレクト URI。末尾のスラッシュを付けず、次のとおり正確に指定してください。
${APP_BASE_URL}/google/callback
ローカル環境でデフォルトの APP_BASE_URL を使用する場合は、次のとおりです。
http://127.0.0.1:44721/google/callback
OAuth 同意画面に次のスコープを追加してください。
openidhttps://www.googleapis.com/auth/userinfo.emailhttps://www.googleapis.com/auth/webmasters.readonly
webmasters.readonly は Search Console の読み取り専用スコープです。Rank は、Google が更新トークンを返すよう、オフラインアクセスをリクエストします。更新トークンは保存前に暗号化されます。TOKEN_ENCRYPTION_KEY は暗号化キー(長いランダム文字列)です。キーを変更すると、既存のトークンを読み取れなくなるため、アカウントで Google に再接続する必要があります。
Google コンソールで認証済み JavaScript オリジンを求められた場合は、APP_BASE_URL のオリジンを使用してください(ローカル環境では http://127.0.0.1:44721)。上記のリダイレクト URI は、一致させる必要がある値です。
ストレージ
トライアルの状態、Stripe の顧客 ID、MCP OAuth クライアントとトークン、保留中の Google サインイン、および暗号化された Google リフレッシュトークンは、同じストレージインターフェースを共有します。STORAGE_BACKEND を設定します。
| バックエンド | 用途 | 使用するもの |
|---|---|---|
memory | ローカルでの実験やテスト | プロセスの停止時にデータが消去されます |
file | 単一の長時間稼働サーバー、または Docker ボリューム | STORAGE_FILE(デフォルトは ./data/rank-store.json) |
blob | Vercel | STORAGE_BLOB_PATH にある非公開 Blob(デフォルトは rank/store.json) |
postgres | すでに運用している Postgres データベース | DATABASE_URL |
Postgres は単一のテーブルを使用します。このテーブルがない場合は、初回使用時に作成されます。
CREATE TABLE IF NOT EXISTS rank_kv (
collection text NOT NULL,
id text NOT NULL,
document jsonb NOT NULL,
PRIMARY KEY (collection, id)
);
2つ目のスキーマはありません。Vercel ではメモリおよびファイルストレージはリセットされるため、本番環境では Blob バックエンドを使用します。Blob ドキュメントはファイルストアと同じ構成で、JSON レコードのコレクションを格納します。OAuth 認可コードと保留中の Google サインイン状態もこのドキュメント内のレコードなので、コールバックが別のサーバーレスインスタンスに届いても処理できます。書き込みのたびに、期限切れの認証コード、保留中のサインインセッション、アクセストークン、リフレッシュトークンが削除されます。Vercel Blob ストアを接続すると、BLOB_READ_WRITE_TOKEN が注入されます。これをコミットしないでください。
課金
Lawrence がすでに使用している Stripe アカウントから、次の値を設定します。このリポジトリに商品を作成しないでください。価格 ID は金額ではありません。
STRIPE_SECRET_KEYSTRIPE_PRICE_MONTHLYSTRIPE_PRICE_YEARLYSTRIPE_WEBHOOK_SECRET
チェックアウトは { "plan": "monthly" } または { "plan": "yearly" } を指定する POST /billing/checkout です。Webhook は POST /billing/webhook です。GET /health の billingConfigured: true は、シークレットキーと両方の価格 ID が設定されている場合にのみ含まれます。
ローカルトライアルは、最初の Google 接続から14日間です。トライアル期間が残っている場合、チェックアウトでは残りの日数すべてを Stripe に送信するため、最初の請求はトライアル終了後になります。
ローカルで実行する
npm install
cp .env.example .env
# fill Google, encryption, and Stripe values in .env
npm run dev
サーバーは PORT(デフォルトは 44721)でリッスンします。
npm test
npm run typecheck
npm start
npm start はコンパイル済みのサーバーを実行します。Docker は同じコマンド(node dist/src/server.js)をビルドし、イメージのルートに logo.jpg があることを前提とします。
デプロイ
Vercel:APP_BASE_URL に https://rank.ouroborosapps.com を設定し、STORAGE_BACKEND=blob を設定して、Blob ストアを接続します。これにより Vercel が BLOB_READ_WRITE_TOKEN を注入します。vercel.json はすべてのパスを Node 関数に転送し、logo.jpg をその関数にバンドルします。/logo.jpg とアプリのルートは関数によって提供されます。/package.json は静的ファイルではありません。server.json のリモートは https://rank.ouroborosapps.com/mcp です。
レジストリ名は io.github.LAHutchins91/rank です。アイコンは https://rank.ouroborosapps.com/logo.jpg です。
環境変数
| 変数 | 必要な用途 |
|---|---|
APP_BASE_URL | 公開オリジン。Google のリダイレクト URI を決定します |
PORT | リッスンするポート。デフォルトは 44721 |
GOOGLE_CLIENT_ID | Google サインインと Search Console |
GOOGLE_CLIENT_SECRET | Google トークンの交換 |
TOKEN_ENCRYPTION_KEY | リフレッシュトークンの暗号化とブラウザーセッションの署名 |
STORAGE_BACKEND | memory、file、blob、または postgres |
STORAGE_FILE | ファイルバックエンドのパス |
STORAGE_BLOB_PATH | Blob のパス名。デフォルトは rank/store.json |
BLOB_READ_WRITE_TOKEN | Vercel Blob の読み書きトークン。Vercel で注入されます |
DATABASE_URL | Postgres バックエンド |
STRIPE_SECRET_KEY | チェックアウトと課金ポータル |
STRIPE_PRICE_MONTHLY | 月額チェックアウトの価格 ID |
STRIPE_PRICE_YEARLY | 年額チェックアウトの価格 ID |
STRIPE_WEBHOOK_SECRET | Stripe Webhook の署名 |
SUPPORT_EMAIL | サイト上の公開連絡先。デフォルトは [email protected] |
RANK_TEST_HOOKS=1 を設定すると、テストで Google を使わずに MCP ログインを完了できます。この設定と NODE_ENV=production が同時に指定されている場合、プロセスは起動を拒否します。
サポート
プライバシーに関するお問い合わせ、アカウントの削除、アカウント記録のコピーの請求は、[email protected] までご連絡ください。パスワード、OAuth トークン、API キー、決済カード情報は送信しないでください。同じメールアドレスがプライバシーページとサポートページにも記載されています。Google との接続を解除するには、https://myaccount.google.com/permissions で Rank のアクセス権を取り消してください。
ライセンス
MIT。Copyright (c) 2026 Lawrence Hutchins.
Ouroboros のその他のサービス:https://ouroborosapps.com
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。