Korzen
Bot Protection

Votre assistant IA (MCP)

Demandez à Claude, Codex ou Cursor pourquoi une requête a été bloquée ou ce qui a attaqué votre site : un serveur MCP en lecture seule lit les vues de votre propre tableau de bord avec une clé MCP.

Bot Protection a un serveur MCP : votre assistant IA peut lire les vues de votre tableau de bord et répondre à « pourquoi cette requête a-t-elle été bloquée ? », « qu'est-ce qui a attaqué /login hier ? » ou « quelles IA ont lu mon site cette semaine ? ». Il lit les mêmes données que le tableau de bord vous montre, celles de votre compte seul. Il est en lecture seule : il ne change aucun réglage, n'appelle pas /v1/decide et n'envoie rien nulle part.

Créer une clé MCP

Sur la page Configuration du tableau de bord, sous Clés MCP, choisissez Créer une clé MCP. Elle commence par kz_mk_ et ne s'affiche qu'une fois : copiez-la dans la configuration de votre assistant. Quiconque peut créer une clé d'API peut en créer une. Une clé MCP n'est pas une clé d'API : elle ne fonctionne que sur le serveur MCP, et une clé d'API y est refusée. Gardez-la hors de tout dépôt, comme tout secret.

Le serveur est à https://korzen.dev/bot-protection/mcp, en Streamable HTTP. Chaque client envoie la clé dans le header Authorization: Bearer.

Connecter votre assistant

Claude Code

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

Claude Desktop

Dans claude_desktop_config.json (Settings, Developer, Edit config), via mcp-remote, qui transmet le header :

{
  "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

Dans ~/.codex/config.toml, avec la clé dans la variable d'environnement KORZEN_MCP_KEY :

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

Cursor

Dans ~/.cursor/mcp.json, ou dans .cursor/mcp.json d'un projet :

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

Les connecteurs web de Claude et de ChatGPT demandent une connexion par OAuth, que le serveur n'offre pas encore : utilisez un client qui accepte un header, comme ci-dessus.

Les outils

OutilCe qu'il lit
get_decisionune décision, par le request_id qu'a répondu /v1/decide : sa classe, son bot score, ses types de preuves, son pays, son réseau et son crawler, comme la page Décisions la montre, avec vos seuils
list_decisionsles lignes de la page Décisions, avec ses filtres : find (un request ID, une IP ou un User-Agent), path, class, country, asn, crawler, evidence, ua, since, older, et jusqu'à 50 lignes par limit
attacksles attaques de la vue d'ensemble, avec les décisions et les bots de la période ; since vaut 24h, 7d ou 30d
ai_trafficla page Trafic IA : quels crawlers et assistants IA lisent votre site, à quelle fréquence et quelles pages ; since comme ci-dessus

Chaque réponse est en JSON. Ce que vos visiteurs ont écrit, un chemin ou la famille d'un User-Agent, se trouve sous visitor_supplied, les caractères de contrôle, bidirectionnels et de largeur nulle écrits en échappements \u{...} : un visiteur peut mettre dans un User-Agent des mots destinés à votre assistant, et le serveur les transmet comme des données, jamais comme une instruction. Gardez activée dans votre client l'approbation des appels d'outils.

Ce que le serveur ne fait jamais

  • Il ne change jamais rien : aucun réglage, aucune règle, aucune clé, aucune offre.
  • Il ne lit jamais les données d'un autre compte : une clé ne lit que son propre compte.
  • Il n'appelle jamais /v1/decide, n'envoie aucun événement et ne compte pas comme une décision : il est gratuit.
  • Il n'envoie jamais vos données à un tiers, et n'écrit jamais dans ses logs votre clé ni ce qu'un outil a répondu : la ligne de log de chaque appel garde l'outil, les noms de ses arguments et la taille de la réponse.
  • Il ne montre jamais plus que le tableau de bord, ni comment la détection décide.

Limites

Chaque clé MCP fait jusqu'à 60 appels par minute et 2 000 par jour ; au-delà, le serveur répond 429 avec les headers RateLimit et Retry-After. Un appel répond en 5 secondes au plus, ou dit qu'il a pris trop de temps. Un compte détient jusqu'à 25 clés MCP.

Révoquer une clé

Sur la page Configuration, chaque clé MCP indique quand elle a été créée et quand elle a servi pour la dernière fois, à la minute près. Révoquer l'arrête aussitôt : l'appel suivant de l'assistant est refusé avec 401. Vos clés d'API et les appels de votre serveur ne sont pas touchés.