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
| Outil | Ce qu'il lit |
|---|---|
get_decision | une 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_decisions | les 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 |
attacks | les attaques de la vue d'ensemble, avec les décisions et les bots de la période ; since vaut 24h, 7d ou 30d |
ai_traffic | la 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.