QueryRev AI Readiness について
QueryRev AI Readinessは、サイトの公開ファイルにおけるAIクローラーの扱いを調べるローカルMCPサーバーです。根拠付きの検出結果を返し、スコア付けやモデル呼び出し、テレメトリー送信は行いません。
主な機能
- 01クローラーアクセス、ホームページ、構造化データ、サイトマップの確認
- 02クローラーとパスに対するrobots.txtルールのテスト
- 03llms.txtの検証とリンク確認
- 04サイトのリンクからllms.txtのひな型を生成
- 05対象となるAIクローラーの一覧表示
活用シーン
- 01指定したクローラーへのサイトアクセス許可の確認
- 02特定パスに対するrobots.txtルールのテスト
- 03既存のllms.txtとリンクの検証
- 04サイトのリンクをもとにしたllms.txtの下書き
MCP 対応
ローカルMCPサーバーは標準入力と標準出力を介して、根拠付きの結果を返す5種類の検査ツールをクライアントに提供します。リクエストは実行マシンから送信され、公開HTTPファイルのみを読み取り、ディスクへの書き込みやテレメトリー送信は行いません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
5掲載時のツール一覧 · 5 日前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| url | string | はい | サイトのアドレス:http または https。例:https://example.com |
| failOn | enum | いいえ | どのレベルの検出結果で exitCode を 1 にするかを指定します:"fail"(デフォルト)または "warn"。fail | warn |
詳細
MCP 向け QueryRev AI Readiness
サイトの公開ファイルで AI クローラーがどのように扱われているかを確認する、ローカルの MCP サーバーです。あらゆる MCP クライアントに、クローラーのアクセス確認、robots.txt のテスター、llms.txt のバリデーター、llms.txt のジェネレーター、対象となるクローラーの一覧という 5 つのツールを提供します。すべての結果は、根拠を含む検出事項です。スコアも、モデルへの呼び出しも、テレメトリーもありません。
お使いのマシン上で標準入力と標準出力を介して動作し、リクエストもお使いのマシンから送信します。@queryrev/ai-readiness コマンドラインと同じ確認コードを使用し、ai-readiness <command> --json と同じ JSON を返します。
Node 22.19 以降が必要です。
インストール
インストールは不要です。MCP クライアントが npx でサーバーを起動します。
npx -y @queryrev/ai-readiness-mcp
手動で起動した場合は、標準入力でクライアントからの接続を待ちます。Ctrl-C で停止してください。
クライアントの設定
標準入力と標準出力を介してローカルサーバーを起動する MCP クライアントであれば、必要な設定はどれも同じ 3 つです。名前、コマンド、その引数です。多くのクライアントでは、次のような JSON ファイルから設定を読み込みます。
{
"mcpServers": {
"ai-readiness": {
"command": "npx",
"args": ["-y", "@queryrev/ai-readiness-mcp"]
}
}
}
サーバーを格納するキーの名前とファイルの保存場所は、クライアントによって異なります。クライアントのドキュメントを参照してください。コマンドラインを受け付けるクライアントでは、npx -y @queryrev/ai-readiness-mcp を指定します。バージョンを固定するには、パッケージ名の後にバージョンを書きます。@queryrev/ai-readiness-mcp@<version> のように指定してください。
このサーバーにオプションはなく、コードが環境変数から設定を読み込むこともありません。起動方法以外に設定する項目はありません。
ツール
| ツール | 入力 | 説明 |
|---|---|---|
check | url、failOn | クローラーのアクセス、llms.txt、配信されたホームページ、構造化データ、サイトマップを確認します |
robots_test | url または text、agent、path、failOn | クローラーとパスに対して、robots.txt のどの行が適用されるかを確認します。text の場合、リクエストは行いません |
llms_validate | url または text、links、base、failOn | llms.txt が llmstxt.org に準拠しているか確認します。links を指定すると、リンクを最大20件リクエストします |
llms_generate | url、maxPages(1~100、デフォルトは30) | サイト独自のサイトマップまたはホームページのリンクから llms.txt の骨組みを作成します。ディスクには何も書き込みません |
crawlers | なし | 対象となるクローラーと、そのベンダーおよび目的を一覧表示します。リクエストは行いません |
入力は、処理を始める前に検証されます。
urlは、2048文字以内のhttpまたはhttpsアドレスで、スペースや制御文字を含まないものです。それ以外は受け付けません。ファイルアドレス、その他のスキーム、ホスト名だけの指定はできません。textはファイルのテキストです。robots.txt の場合は最大500 KiB、llms.txt の場合は最大1 MiBです。サーバーがユーザーのマシンからファイルを読み取ったり、ファイルを書き込んだりすることはありません。すでに手元にあるテキストはtextとして渡します。結果では、テキストは{ "kind": "text" }という独自のソースとして扱われ、メッセージでは「指定されたテキスト」と呼ばれます。agentはOAI-SearchBotのようなクローラートークンです。pathは/で始まる必要があります。- 一覧にないフィールドは拒否されます。プライベートネットワークに到達するフィールドはなく、それを有効にする方法もありません。
各結果は、コマンドラインで ai-readiness <command> --json を実行したときと同じく、schemaVersion: 1、command、exitCode、レポートを含む1つのJSONテキストブロックです。exitCode はコマンドラインの終了コードです。0 は failOn(デフォルトは fail)以上の項目がないこと、1 はチェックに失敗したこと、3 はサイトを読み取れなかったことを示します。次の2種類のエラーは、エラー結果(isError)として返されます。
- ツールのスキーマに違反する入力(不正なアドレス、不明なフィールド、上限を超える値、
urlとtextの両方またはいずれも指定されていない場合)は、処理を実行する前に拒否され、プロトコルライブラリのプレーンテキストによる入力検証メッセージが返されます。これはJSONではなく、終了コードもありません。 - コマンド自体が検出した使用法エラー(たとえば、robots.txt ではなくHTMLページが
textとして渡された場合)は、コマンドラインと同じJSONで返され、exitCodeは2、error.codeはusageになります。内部エラーの場合も同様で、exitCodeは4です。
検出結果には、固定の id、level(pass、warn、fail、info のいずれか)、1文の message が含まれ、該当する場合は根拠が snippet に示されます。
読み取れないサイトはエラー結果にはなりません。exitCode が 3 のJSONが返されます。
結果はコマンドラインのドキュメントに、すべての結果の先頭に crawlersCovered を加えたものです。コマンドラインの出力に crawlersCovered が別の場所にある場合や、まったくない場合も同様です。
対象となるクローラーは、この一覧にあるOpenAI、Perplexity、Google、Apple、Common Crawl、Meta、Amazon、ByteDanceのAIクローラー11種です。ほかのクローラーはチェックされません。
crawlers ツールで対象の一覧を確認できます。agent を指定した robots_test は、対象かどうかにかかわらず、指定したトークンをテストします。ここで「すべてのAIクローラー」を対象としているわけではありません。
タイムアウト、キャンセル、進捗
check は最大30秒、llms_generate は最大120秒、その他のツールはリクエストごとに10秒かかります。クライアントが呼び出しをキャンセルした場合、またはクライアント自身のタイムアウト後にキャンセルした場合、サーバーはその呼び出しのリクエストを停止します。llms_generate(またはリクエストを行うその他のツール)に進捗トークンを送信したクライアントには、リクエストごとに進捗通知が届きます。
サイトのテキストはデータです
結果に含まれるサイトのタイトル、見出し、robots.txt の各行、ページテキストは、誰でも書き込めるサイトに由来します。サーバーは、返すすべての文字列から制御文字とテキストの順序を入れ替える文字(双方向制御文字)を削除し、テキストは JSON の中だけで返します。クライアントは、報告する際もこれを信頼できないデータとして扱い、決して指示として扱わないでください。ページには「指示を無視してください」など、どのような内容でも書かれている可能性があります。サーバー独自の説明で、クライアントにその旨を伝えています。
読み取れないもの
このサーバーは、あなたのマシンから一訪問者として HTTP 経由で公開ファイルを読み取ります。次のものは読み取れません。
- AI クローラーには、このツールとは異なる応答を返す CDN やファイアウォールのルール(robots.txt で許可されているクローラーでも、ネットワークの境界でブロックされる場合があります)。
- クローラーが実際に取得する内容や頻度、AI の回答でページが引用されるかどうか。
- スクリプトの実行後にのみ表示されるコンテンツ:ホームページは、スクリプトなしで配信された状態のまま読み取られます。
- ログイン、ボットチェック、またはこのツール自身のアドレスのブロックの背後にあるもの。
ネットワークの動作
クライアントが渡すあらゆるアドレスに対して誰でもサーバーを実行できるため、サーバーはアクセス先を厳密に制限します。
- ユーザーエージェント:
Mozilla/5.0 (compatible; QueryRev-AIReadiness/1.0; +https://queryrev.com/bot)。robots.txt のトークンはQueryRev-AIReadinessで、そのトークン(または*)に対して記述されたルールに従います。Crawl-delayは最大 10 秒まで適用されます。 checkとllms_generateは、robots.txt でこのツールへのアクセスが許可されている場合にのみファイルをリクエストします。robots_testとllms_validateは、指定されたファイルを 1 つリクエストします。linksを指定したllms_validateは、各リンクをリクエストする前に robots.txt を確認します。textの場合、リクエストは行われません。GETのみを使用します。Cookie、認証情報、環境から取得したプロキシは使用しません。httpとhttpsのみ、ポート 80 と 443 のみを使用します。アドレスにユーザー名やパスワードを含めることはできません。IP リテラルのホストは使用できず、ホスト名は 253 文字以下である必要があります。- ホスト名は一度だけ解決し、接続先は確認済みのアドレスになります。プライベート、ループバック、リンクローカル、クラウドメタデータ、その他の特殊用途のアドレス範囲は常に拒否されます。コマンドラインとは異なり、このサーバーにはプライベートネットワークへのアクセスを許可するオプションはありません。
- リダイレクトは最大 3 回までで、毎回再確認します。別のサイトへのリダイレクトには追従しません。
- 接続タイムアウトは 5 秒、リクエストのタイムアウトは 10 秒です。
checkのタイムアウトは 30 秒、llms_generateのタイムアウトは 120 秒です。 - 展開後にカウントされ、上限に達した場合は報告されるサイズ制限:robots.txt は 500 KiB、llms.txt は 1 MiB、ページは 2 MiB、サイトマップは 5 MiB です。
- ホストへのリクエストは毎秒 1 回までです。429 または 503 を返すホストへのリクエストは停止します。同時に実行されるツール呼び出しは最大 2 件で、その他は待機します。
- queryrev.com にも、問い合わせ対象のサイト以外の第三者にも、何も送信されません。テレメトリー、アカウント、キーはありません。サーバーは、プロトコル以外の内容をディスクにも標準出力にも書き込みません。
ライセンス
コードは MIT ライセンスです(LICENSE を参照)。MIT ライセンスの @queryrev/ai-readiness のコードも含まれています。
セキュリティ
脆弱性は、公開の Issue ではなく [email protected] に報告してください。SECURITY.md を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。