Korzen
Bot Protection

AI アシスタント (MCP)

リクエストがブロックされた理由や、サイトを攻撃したものを Claude、Codex、Cursor に尋ねられます。読み取り専用の MCP サーバーが、MCP キーでお客様のダッシュボードの画面を読みます。

Bot Protection には MCP サーバーがあります。AI アシスタントがダッシュボードの画面を読み、「このリクエストはなぜブロックされた?」「昨日 /login を攻撃したのは何?」「今週サイトを読んだ AI は?」といった質問に答えられます。読むのはダッシュボードに表示されるのと同じデータで、お客様のアカウントのものだけです。読み取り専用なので、設定を変えることも、/v1/decide を呼ぶことも、どこかにデータを送ることもありません。

MCP キーを作成する

ダッシュボードのセットアップページの MCP キーで、MCP キーを作成を選びます。キーは kz_mk_ で始まり、一度だけ表示されます。アシスタントの設定にコピーしてください。API キーを作成できる人なら誰でも作成できます。MCP キーは API キーではありません。MCP サーバーでのみ使え、API キーは MCP サーバーでは拒否されます。ほかのシークレットと同じく、リポジトリには入れないでください。

サーバーは https://korzen.dev/bot-protection/mcp にあり、Streamable HTTP で接続します。各クライアントは Authorization: Bearer ヘッダーでキーを送ります。

アシスタントを接続する

Claude Code

claude mcp add --transport http korzen https://korzen.dev/bot-protection/mcp \
  --header "Authorization: Bearer $KORZEN_MCP_KEY"

Claude Desktop

claude_desktop_config.json (Settings、Developer、Edit config) で、ヘッダーを渡す mcp-remote を使います。

{
  "mcpServers": {
    "korzen": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://korzen.dev/bot-protection/mcp", "--header", "Authorization:${KORZEN_MCP_HEADER}"],
      "env": { "KORZEN_MCP_HEADER": "Bearer kz_mk_..." }
    }
  }
}

Codex

~/.codex/config.toml で、キーは環境変数 KORZEN_MCP_KEY に入れます。

[mcp_servers.korzen]
url = "https://korzen.dev/bot-protection/mcp"
bearer_token_env_var = "KORZEN_MCP_KEY"

Cursor

~/.cursor/mcp.json、またはプロジェクトの .cursor/mcp.json で設定します。

{
  "mcpServers": {
    "korzen": {
      "url": "https://korzen.dev/bot-protection/mcp",
      "headers": { "Authorization": "Bearer ${env:KORZEN_MCP_KEY}" }
    }
  }
}

Claude と ChatGPT の Web コネクタは OAuth でのサインインを求めますが、このサーバーはまだ対応していません。上のように、ヘッダーを設定できるクライアントを使ってください。

ツール

ツール読む内容
get_decision/v1/decide が返した request_id で指定した 1 件の判定。判定ページと同じく、クラス、ボットスコア、根拠の種類、国、ネットワーク、クローラーを、お客様のしきい値とともに返します
list_decisions判定ページの行。フィルターは find (リクエスト ID、IP、User-Agent)、path、class、country、asn、crawler、evidence、ua、since、older で、limit で最大 50 行まで
attacks概要ページの攻撃と、その期間の判定数とボット数。since は 24h、7d、30d のいずれか
ai_trafficAI トラフィックのページ。どの AI クローラーや AI アシスタントが、どのくらいの頻度で、どのページを読んだか。since は上と同じ

応答はすべて JSON です。訪問者が書いたもの (パスや User-Agent のファミリー) は visitor_supplied の下に入り、制御文字、双方向制御文字、ゼロ幅文字は \u{...} のエスケープで書かれます。訪問者は User-Agent にアシスタント向けの言葉を書けますが、サーバーはそれをデータとして渡し、指示としては扱いません。クライアントのツール呼び出しの承認はオンのままにしてください。

サーバーが決してしないこと

  • 何も変更しません。設定、ルール、キー、プランのいずれもです。
  • ほかのアカウントのデータは読みません。キーが読めるのは自分のアカウントだけです。
  • /v1/decide を呼ばず、イベントも送らず、判定としても数えません。無料です。
  • データを第三者に送らず、キーやツールの応答をログに残しません。各呼び出しのログ行に残るのは、ツール、引数の名前、応答のサイズです。
  • ダッシュボード以上のものは見せず、検知がどう判定するかも見せません。

上限

MCP キーごとに、1 分あたり 60 回、1 日あたり 2,000 回まで呼び出せます。超えると、サーバーは RateLimit と Retry-After ヘッダー付きで 429 を返します。呼び出しは 5 秒以内に応答するか、時間がかかりすぎたことを伝えます。1 つのアカウントで持てる MCP キーは 25 個までです。

キーを失効させる

セットアップページでは、各 MCP キーの作成日と最終使用日時 (分単位) が表示されます。失効を選ぶとすぐに止まり、アシスタントの次の呼び出しは 401 で拒否されます。API キーとサーバーからの呼び出しには影響しません。