mcpField
C
Crawlerpeek

Crawlerpeek

ローカル
crawlerpeek.comビジネス・マーケティング33 日前に更新

Crawlerpeek について

Crawlerpeekは、クローラーがURLにアクセスできるかを調べる読み取り専用のライブラリ、コマンドラインツール、MCPサーバーです。robots.txtの判定と実際の取得結果を報告し、クローラーIPの検証やrobots.txtの生成も行います。

主な機能

  1. 01クローラーごとのrobots.txt判定
  2. 02クローラーのUser-Agentでページ取得
  3. 03リダイレクト、ステータス、ブロック状況の報告
  4. 04クローラーIPアドレスの検証
  5. 05robots.txtルールの生成

活用シーン

  1. 01公開前のAIクローラーアクセス確認
  2. 02CIでのアクセスチェック実行
  3. 03サーバーログ内のクローラーリクエスト調査

MCP 対応

stdioのMCPサーバーは、check_ai_access、see_as_bot、verify_bot_ip、generate_robots_txtの4つの読み取り専用ツールを公開します。各呼び出しの結果は10分間キャッシュされます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"crawlerpeek-crawlerpeek": {
"command": "npx",
"args": [
"-y",
"crawlerpeek"
]
}
}
}
起動コマンドnpx -y crawlerpeek

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmcrawlerpeek0.2.0

ツール

4

掲載時のツール一覧 · 2 日前に更新

パラメーター型必須説明
urlstringはい確認するページの公開 http(s) URL。
botsarrayいいえ確認するボットトークン。省略するとデフォルトの 15 個を使用します。既知の値:GPTBot、OAI-SearchBot、ChatGPT-User、ClaudeBot、Claude-SearchBot、Claude-User、PerplexityBot、Perplexity-User、Google-Extended、Applebot-Extended、CCBot、meta-externalagent、Bytespider、Googlebot、Bingbot、Applebot、meta-externalfetcher、DuckAssistBot、Amazonbot、AhrefsBot、SemrushBot、MJ12bot、facebookexternalhit、Slackbot。
httpbooleanいいえ各ボットの user agent でもページを取得します(デフォルトは true)。false の場合は robots.txt のみを確認します。

詳細

crawlerpeek

npm CI License: MIT

AI クローラーがサイトにアクセスできるか確認します。各ボット(GPTBot、OAI-SearchBot、ChatGPT-User、ClaudeBot、Claude-SearchBot、PerplexityBot、Google-Extended、Googlebot、Bingbot、CCBot など)について、以下を確認できます。

  • robots.txt がそのボットに対して URL のパスへのアクセスを許可しているか(RFC 9309:user-agent グループ、ワイルドカード、$、最長一致が優先)、および
  • そのボットの user-agent 文字列で取得したとき、ページが実際に返す内容:ステータス、リダイレクト後の最終 URL、コンテンツタイプ、サイズ、タイトル、レスポンスがブロックページまたはチャレンジページのように見えるかどうか。

AI クローラーを歓迎する robots.txt も生成します。ライブラリ、CI 用 CLI、MCP サーバーを提供します。Node 20 以降、実行時依存関係なし、ESM と CommonJS に対応し、TypeScript 型定義も含まれています。

同じチェックをウェブツールとして利用できます:crawlerpeek.com。CI と MCP クライアント向けの例を含むドキュメントはこちらです:crawlerpeek.com/cli。

インストール

npm install crawlerpeek       # library
npx crawlerpeek --help        # CLI, no install needed

CLI

npx crawlerpeek check https://example.com
https://example.com
robots.txt: ok (HTTP 200) at https://example.com/robots.txt

Bot                 robots    HTTP
GPTBot              blocked   200  FAIL
ClaudeBot           allowed   403 (block page)  FAIL
Google-Extended     allowed   -
npx crawlerpeek check https://example.com/pricing --bots GPTBot,ClaudeBot --fail-on blocked
npx crawlerpeek check https://example.com --bots all --json
npx crawlerpeek check https://example.com --no-http          # robots.txt only
npx crawlerpeek see https://example.com --bot ClaudeBot      # one bot, full detail
npx crawlerpeek verify 66.249.66.1 --bot Googlebot          # is this IP really Googlebot?
npx crawlerpeek robots --disallow /admin/,/cart/ --sitemap https://example.com/sitemap.xml

終了コード:0 は成功、1 は --fail-on の条件に該当、2 は使用方法のエラー(不明なオプションを含む)またはリクエストエラーです。see はページを取得できた場合、HTTP ステータスにかかわらず 0 で終了し、リクエストが失敗または拒否された場合は 2 で終了します。

verify <ip> [--bot GPTBot] [--json] は、サーバーログにあるアドレスが実際にクローラーのものかどうかを確認します。運営者が公開している情報のみを使用します。公開 IP 範囲 JSON(Google、OpenAI、Anthropic、Perplexity、Bing、Apple、Common Crawl、DuckDuckGo、Ahrefs)、または逆引き DNS と正引きによる確認(Google、Bing、Apple、Common Crawl、Ahrefs)です。--bot を指定しない場合、該当する方法があるすべてのボットを確認します。各結果には method(ip-list、reverse-dns、none)、verified(true、false、またはリストにアクセスできない、運営者が確認方法を公開していないなど、判定不能な場合の null)、および detail が含まれます。リストは 1 時間キャッシュされ、IP に対して何かを送信することはありません。終了コード:少なくとも 1 つのボットで確認できた場合は 0、確認できなかった、または判定不能の場合は 1、使用方法のエラーの場合は 2 です。

--fail-on失敗する条件
blockedrobots.txt がボットに対してそのパスを閉じている場合、またはページがそのボットに 401/403/406/451 かチャレンジページを返す場合
any-non-200上記に加え、その他のステータス(404、5xx、別の場所に到達するリダイレクト)やリクエストの失敗がある場合

--fail-on を指定しない場合、結果にかかわらず終了コードは 0 です。--bots にはトークンまたは all を指定します。デフォルトは 15 個のボットで、主要な AI クローラーに Googlebot と Bingbot を加えたものです。robots.txt を取得できない場合(タイムアウト、5xx、拒否されたリダイレクト、または遷移先のないリダイレクト)は、理由を robotsTxt.error に記載して unknown と報告され、ブロックとして扱われることはありません。注:これは RFC 9309 §2.3.1.4 とは意図的に異なります。同節では、クローラーは到達不能な robots.txt(5xx)を「すべてを disallow」として扱うことになっており(Google も同様です)。したがって、robots.txt が 5xx を返すサイトは、--fail-on blocked を通過しても、多くのボットに対して実質的に閉鎖されています。unknown は修正が必要な問題として扱ってください。

ライブラリ

import { checkAiAccess, seeAsBot, verifyBotIp, generateRobotsTxt, failingBots } from "crawlerpeek";

const report = await checkAiAccess("https://example.com/pricing", { bots: ["GPTBot", "ClaudeBot"] });
report.bots[0].robots; // { access: "allowed", pathAllowed: true, matchedGroup: "*" }
report.bots[0].http;   // { status: 200, finalUrl, redirects, contentType, bytes, title, looksBlocked, outcome: "ok", ... }
failingBots(report, "blocked"); // ["ClaudeBot"] when it is closed or challenged

await seeAsBot("https://example.com", "PerplexityBot");

await verifyBotIp("66.249.66.1", { bot: "Googlebot" }); // [{ bot: "Googlebot", method: "ip-list", verified: true, detail, source }]

generateRobotsTxt({ disallow: ["/admin/"], blockBots: ["CCBot"], sitemap: "https://example.com/sitemap.xml" });

generateRobotsTxt は、各 AI ボットを明示的に指定し、Allow: / を設定します。許可しないパスをそのグループ内に繰り返し記述するのは意図的です。独自のグループを持つボットは、* グループを無視するためです。

MCP サーバー

crawlerpeek mcp は stdio 経由で Model Context Protocol を使用し、読み取り専用の 4 つのツール check_ai_access、see_as_bot、verify_bot_ip、generate_robots_txt を公開します。結果は呼び出しごとに 10 分間キャッシュされます。LLM は呼び出されません。ツールは指定された URL の取得のみを行います。

crawlerpeek を Cursor に追加   VS Code にインストール VS Code Insiders にインストール

クライアントインストール
Claude Codeclaude mcp add --transport stdio crawlerpeek -- npx -y crawlerpeek mcp
Claude Code(プラグイン:MCP サーバーとスキル)/plugin marketplace add crawlerpeek/crawlerpeek、続けて /plugin install crawlerpeek@crawlerpeek
Claude DesktopReleases から crawlerpeek-<version>.mcpb をダウンロードして開くか、以下の JSON を追加します
Codexcodex mcp add crawlerpeek -- npx -y crawlerpeek mcp
VS Codecode --add-mcp '{"name":"crawlerpeek","type":"stdio","command":"npx","args":["-y","crawlerpeek","mcp"]}'
その他のクライアント以下の JSON

汎用設定(Claude Desktop、Cursor、Windsurf、Cline などでは、この mcpServers 形式を使用します):

{ "mcpServers": { "crawlerpeek": { "command": "npx", "args": ["-y", "crawlerpeek", "mcp"] } } }

VS Code は、ルートキーに servers を指定し、エントリーに "type": "stdio" を設定した .vscode/mcp.json を読み込みます。Codex は ~/.codex/config.toml を読み込みます。初回の npx ダウンロードがデフォルトの 10 秒のタイムアウトに達しないよう、起動タイムアウトを延長してください。

[mcp_servers.crawlerpeek]
command = "npx"
args = ["-y", "crawlerpeek", "mcp"]
startup_timeout_sec = 30

エージェントスキル

skills/crawlerpeek/ は Agent Skill です。AI エージェントに、AI クローラーのアクセスを確認するタイミング、実行するコマンド、結果の読み取り方を指示する SKILL.md が含まれています。共通のフロントマター項目のみを使用しているため、同じフォルダーを複数のエージェントで使用できます。

エージェントインストール
Claude Code上記のプラグインとともにインストールされます。または、フォルダーを ~/.claude/skills/crawlerpeek にコピーします
claude.aicrawlerpeek フォルダーを zip に圧縮し、Customize > Skills からアップロードします(コード実行とネットワークアクセスが必要です。スキルの注意事項を参照してください)
Codexフォルダーを ~/.agents/skills/(すべてのプロジェクト用)またはリポジトリ内の .agents/skills/ にコピーします
OpenClawフォルダーを ~/.agents/skills/ またはワークスペース内の skills/ にコピーします
Hermeshermes skills install crawlerpeek/crawlerpeek/skills/crawlerpeek
git clone --depth 1 https://github.com/crawlerpeek/crawlerpeek.git
mkdir -p ~/.agents/skills && cp -r crawlerpeek/skills/crawlerpeek ~/.agents/skills/

新しいスキルを読み込ませるため、作業後にエージェントを再起動してください。スキルと MCP サーバーは独立しています。MCP サーバーに接続されている場合、スキルはそのツールを使用し、接続されていない場合は npx -y crawlerpeek を実行します。

GitHub Action

コンポジットアクションは action/ にあります。action/README.md を参照してください。

- uses: crawlerpeek/crawlerpeek/action@v0
  with: { url: "https://example.com", fail-on: blocked }

知っておくべきこと

  • see-as-bot は、お使いのマシンからボット自身のユーザーエージェント文字列を送信します。 実際のボットではなく、運営者の IP 範囲から送信されるものでもありません。ボットの IP を検証するサイト(Googlebot、GPTBot などは IP 範囲を公開しています)では、ボットを名乗るだけのリクエストを異なる方法で扱い、ブロックすることもよくあります。そのため、ここで Googlebot に対して 403 が返るのは正常な場合があります。一方、ブラウザーでは 200 が返るのに、一般的でないボットに対して 403 が返る場合は、通常 WAF または CDN のルールが原因と考えられます。robots.txt 自体は、正直な crawlerpeek/<version> ユーザーエージェントで取得します。
  • Google-Extended と Applebot-Extended はクローラーではなく、robots.txt の制御トークンです。robots.txt による判定は受けますが、取得されることはありません。
  • ページは生の HTML として取得されます。JavaScript は実行されません。
  • robots.txt はリクエストであり、アクセス制御ではありません。ユーザーの操作をきっかけにページを取得するフェッチャー(ChatGPT-User、Perplexity-User など)は、robots.txt に従わない場合があります。各運営者のドキュメントに、従うかどうかが記載されています。
  • ボットの一覧とユーザーエージェント文字列は各運営者のドキュメントに基づいており、変更される場合があります。一覧は、2026-10-18 に各運営者のドキュメントと最後に照合されました。

安全性の制限

ボットごとに 1 回、robots.txt に 1 回リクエストを送信し、300 ms の間隔を空けて順次実行します(--delay)。リクエストチェーン全体のタイムアウトは 10 s で、リダイレクトは最大 5 回までです。リダイレクトのたびに再確認します(拒否対象へのリダイレクトは、そのボットまたは robots.txt に対する結果として報告され、実行は停止しません)。レスポンス本文は 2 MB までに制限され、Cookie は使用しません。DNS 解決後(および接続時にも再度)、プライベート、ループバック、リンクローカル、メタデータの各アドレスを拒否します。また、80 と 443 以外のポート、および認証情報を含む URL も拒否します。--allow-private(CLI および crawlerpeek mcp)または allowPrivate: true を指定すると、ローカルテスト時にこれらの制限が解除されます。

コントリビューション

課題の報告とプルリクエストを歓迎します。CONTRIBUTING.md をご覧ください。セキュリティ上の問題は非公開で報告してください。SECURITY.md をご覧ください。

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。