ドキュメント · MCPサーバー

Claude、CursorなどのAIアシスタントにSEOについて質問

serp.acはリモートのModel Context Protocol(MCP)サーバーを提供しています。一度接続すれば、アシスタントが「今週順位が下がったキーワードは?」「ChatGPTはどのくらいの頻度で当社を推薦している?」「問題のある有料リンクは?」といった質問にserp.acのデータから直接答えます。許可すれば、キーワード、プロンプト、リンクの追加も代行します。

サーバーURL
https://serp.ac/api/mcp
認証
Authorization: Bearer sk_live_…
トランスポート
Streamable HTTP(ステートレス、JSON)

1. API keyを作成する

serp.acで設定 → APIを開き、キーを作成します(作成できるのはアカウントオーナーと管理者のみ)。キーは一度しか表示されないのでコピーしてください。MCPサーバーはREST APIと同じキー、レート制限(キーごとに毎分120リクエスト)、クォータを使用します。各キーには作成したアカウントへのフルアクセス権があるため、秘密にしておき、漏洩した場合は同じページで無効化してください。

2. Claudeに接続する

Claude(claude.aiとClaudeアプリ)— カスタムコネクタ

設定 → コネクタ → カスタムコネクタを追加を開き、名前をserp.ac、サーバーURLをhttps://serp.ac/api/mcpにします。サーバーはすべてのリクエストを、Authorization: Bearer sk_live_…として送信されるAPI keyで認証します。ご利用のプランのコネクタ設定画面でこのヘッダーを送信できない場合は、代わりに下記のClaude Desktopの設定を使用してください。

Claude Desktop — 設定ファイル

設定 → 開発者 → 設定を編集を開き、claude_desktop_config.jsonにサーバーを追加します。mcp-remoteブリッジ(Node.jsが必要)が起動し、キーをヘッダーとして転送します。その後、Claude Desktopを再起動してください。

{
  "mcpServers": {
    "serp-ac": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://serp.ac/api/mcp", "--header", "Authorization:${SERP_AC_AUTH}"],
      "env": { "SERP_AC_AUTH": "Bearer sk_live_..." }
    }
  }
}

Claude Code

claude mcp add --transport http serp-ac https://serp.ac/api/mcp \
  --header "Authorization: Bearer sk_live_..."

3. Cursorやその他のクライアントに接続する

Cursor:~/.cursor/mcp.json(すべてのプロジェクト)またはプロジェクト内の.cursor/mcp.jsonにサーバーを追加し、Settings → MCPで有効にします。

{
  "mcpServers": {
    "serp-ac": {
      "url": "https://serp.ac/api/mcp",
      "headers": { "Authorization": "Bearer sk_live_..." }
    }
  }
}

その他のMCPクライアント(ChatGPT、VS Code、Windsurf、独自のエージェント)も、Streamable HTTPトランスポートに対応しAuthorizationヘッダーを送信できれば、同じように動作します。stdioのみに対応するクライアントは、上記のmcp-remoteブリッジを使用できます。

ターミナルから簡単に確認:

curl https://serp.ac/api/mcp \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

読み取り専用モード

データを変更と表示されたツールはアカウントに項目を追加し、クォータを消費と表示されたツールは月間クォータを使用します。アシスタントには、実行前に確認を求めるよう指示されています。読み取りツールのみを公開するには、https://serp.ac/api/mcp?readonly=1で接続してください。読み取り専用モードはキーではなく接続の設定です。キーには常にアカウントのすべての権限があります。

ツール

各ツールは、短い要約と同じデータを構造化JSONで返します。リストには上限(最大200行)があり、ご自身のアカウントのデータのみが含まれます。プロジェクトはIDまたはドメインで指定できます。

  • list_projects読み取り

    このアカウントのserp.acプロジェクト(Webサイト)を、ID、ドメイン、それぞれがトラッキングしているキーワード・AIプロンプト・購入リンクの数とともに一覧表示します。プロジェクトIDを取得するために最初に呼び出してください。

  • get_rankings読み取り

    プロジェクトでトラッキング中のキーワードのGoogle検索順位:現在の順位、前回チェックからの変動(プラス=上昇)、ランクインしているURL、Google AI Overviewが表示されサイトが引用されているか、最終チェック日時。キーワードのテキストとデバイスで絞り込むこともできます。

  • get_ai_visibility読み取り

    ChatGPT、Perplexity、Gemini、Claude、Google AI ModeでのプロジェクトのAI可視性:ブランドに言及している回答の割合、引用率、平均順位、エンジン別の数値、プロンプト×エンジンのマトリクス、引用数上位の情報源ドメイン、シェア・オブ・ボイス、AIアシスタントが推薦している他のブランド。

  • get_backlinks_summary読み取り

    プロジェクトの被リンク概要:被リンク総数と参照ドメイン数、ドメインランク、dofollowの割合、過去30日間の新規リンク、消失リンク、最も強力な参照ドメイン。

  • list_purchased_links読み取り

    リンク管理でトラッキング中の購入(有料)リンク:ステータス(pending、active、issue、lost、expired、cancelled = 一時停止)、検出された問題、価格、請求サイクル、次回の支払日・更新日、販売者、さらに今後30日以内に期日を迎える支払い。プロジェクトを指定しない場合はすべてのプロジェクトが対象です。

  • get_index_job読み取り

    check_indexで開始したインデックス確認ジョブのステータスと、各URLのインデックス状況(indexed、not_indexed、queued、error)。

  • get_usage読み取り

    アカウントのプランとサブスクリプションの状態、現在の利用状況を含むプランの上限(プロジェクト、キーワード、AIプロンプト、リンク)、月間クォータの残り(インデックス送信、インデックス確認、キーワードデータ照会)。

  • get_maps_rankings読み取り

    プロジェクトのGoogleマップ順位トラッキング(ローカルのジオグリッド):キャンペーンを指定しない場合は、各マップキャンペーンの最新のローカルプレゼンススコア(0〜100)、トップ10カバー率、平均順位。キャンペーン(IDまたはキーワードのテキスト)を指定した場合は、最新スキャンのグリッド各地点の順位、スキャン履歴、上位にいる競合、ローカルパック。

  • track_keywordsデータを変更

    プロジェクトで新しいキーワードのGoogle検索順位のトラッキングを開始します。新しいキーワードはそれぞれプランのSERPキーワード上限にカウントされます。すでにトラッキング中のキーワードは変更されません。多数のキーワードを追加する前にユーザーに確認してください。

  • add_ai_promptsデータを変更

    プロジェクトのAI可視性トラッキングにプロンプト(ユーザーがAIアシスタントにする質問)を追加します。追加後はスケジュールに従って実行されます。新しいプロンプトはそれぞれプランのAIプロンプト上限にカウントされます。すでにトラッキング中のプロンプトは変更されません。

  • add_purchased_linkデータを変更

    プロジェクトのリンク管理に購入(有料)リンクを追加し、serp.acが毎日チェックして支払いをリマインドします。プランのトラッキングリンク上限にカウントされます。同じ参照元 → 参照先のリンクがすでに存在する場合は already_tracked で失敗します。

  • check_indexクォータを消費

    URLがGoogleにインデックスされているかを確認するジョブを開始します。URL1件につき、月間クォータ(次に購入済みパック)からインデックス確認を1回消費します。不足している場合は何も消費されません。ジョブIDを返すので、結果は get_index_job で取得してください。

  • get_keyword_dataクォータを消費

    キーワードごとの検索ボリューム、CPC、競合性、キーワード難易度、検索意図、12か月の推移。キャッシュされていないキーワードはそれぞれアカウントの有料の月間キーワード照会クォータにカウントされます(キャッシュ済みは無料)。大量のリストの場合は先に get_usage を確認してください。

制限とエラー

  • 書き込みツールには、ダッシュボードやREST APIとまったく同じくプランが適用されます:キーワード・プロンプト・リンクの上限、プランに含まれるAIエンジン、有効なプランまたはトライアル。
  • check_indexはURL1件につきインデックス確認を1回、月間クォータから、次にパックから消費します。get_keyword_dataは、キャッシュされていないキーワードに対して月間のキーワード照会クォータを消費します。クォータが不足している場合は何も消費されません。
  • 呼び出しの問題(不明なプロジェクト、無効な引数、上限到達)は、アシスタントが読み取れるツールエラーとして返されます。キーがない、または無効化されている場合はHTTP 401、アカウント停止中は403、リクエスト過多は429が返されます。

AIアシスタントを使わずに自動化したい場合は、設定 → APIのREST APIリファレンスをご覧ください。