問題
Cloudflareのマネージドチャレンジ(ボット保護)は、自動化されたHTTPリクエストをブロックします。これにはAIエージェントからのリクエストも含まれます。デフォルト設定のCloudflareを使用している場合、エージェントはAPIエンドポイント、ペイメントゲート、ディスカバリーファイルに到達できません。
agentgradeはこれをプローブごとに検出します。チェックがブロックされた場合、合格/不合格の結果ではなく「Blocked by Cloudflare」と表示されます。スコアが低く見えるのは、ケイパビリティが不足しているのではなく、Cloudflareが検証を妨げているためかもしれません。
ブロックされる対象
Cloudflareのチャレンジは以下のリクエストでトリガーされます:
- JavaScriptを実行しない(すべてのAPI/エージェントリクエスト)
- ブラウザフィンガープリントがない(TLS、ヘッダー、Cookie)
- クラウド/データセンターのIPレンジからのアクセス
つまり、エージェント向けのすべてのエンドポイントがブロックされる可能性があります:MCP、OpenAPI、llms.txt、x402.json、ペイメントゲートなど。
修正方法
オプション1:APIパスに対してチャレンジをバイパスする(推奨)
CloudflareのWAFルールで、エージェント向けパスに対してマネージドチャレンジをスキップするルールを作成します:
条件式:
(http.request.uri.path matches "^/\\.well-known/.*" or
http.request.uri.path matches "^/api/.*" or
http.request.uri.path eq "/mcp" or
http.request.uri.path eq "/openapi.json" or
http.request.uri.path eq "/llms.txt" or
http.request.uri.path eq "/agents.txt" or
http.request.uri.path eq "/skills.json" or
http.request.uri.path eq "/robots.txt")
アクション: Skip → Managed Challenge
これにより、HTMLページのボット保護を維持しながら、エージェントがマシン向けエンドポイントにアクセスできるようになります。
オプション2:特定のUser-Agentをホワイトリストに登録する
既知のエージェントのUser-Agentに対してチャレンジをスキップするWAFルールを作成します:
(http.user_agent contains "agentgrade" or
http.user_agent contains "Claude" or
http.user_agent contains "GPTBot")
オプション3:CloudflareのBot Managementティアを使用する
Cloudflare EnterpriseおよびBusinessプランでは、より細かいボット管理が可能で、「良いボット」(APIクライアント、エージェント)と悪意のあるボットを区別できます。
修正の確認
Cloudflareのルールを更新した後、agentgradeでサイトを再スキャンしてください。以前ブロックされていたチェックが、「Blocked by Cloudflare」ではなく合格/不合格の結果で表示されるはずです。