codecrafting-cloudflare-mcp
Serveur MCP local (stdio, Node ≥ 22) qui expose en lecture seule l'analytics de trafic Cloudflare de la zone codecrafting.fr. Destiné à tes sessions Claude Code locales (pas à la routine cloud — celle-ci utilise le serveur MCP officiel Cloudflare).
Outils exposés
| Outil | Rôle | |---|---| | cf_get_traffic | Trafic agrégé par jour (requêtes, pages vues, visiteurs uniques, menaces, cache) sur N jours. | | cf_get_threats_by_country | Menaces bloquées réparties par pays d'origine. | | cf_get_targeted_paths | Chemins ciblés par les attaques + statuts. Détecte les fuites (2xx/3xx sur chemin sensible = fichier servi) et les anomalies (5xx). Fenêtre 1 jour max en plan Free (days>1 boucle jour par jour). | | cf_graphql_query | Requête GraphQL analytics arbitraire (besoins avancés). Lecture seule. |
Installation
cd D:/CodeCrafting/Devs/CodeBase/MCP/codecrafting-cloudflare-mcp
npm install
cp .env.example .env # puis renseigner le token
Le .env (gitignoré) doit contenir le token Cloudflare lecture seule (Agent-Claude-Security-Review) :
SECURITY_WATCH_CF_API_TOKEN=<token lecture seule>
SECURITY_WATCH_CF_ZONE_ID=<zone ID Cloudflare, depuis le dashboard>
Déclaration dans Claude Code
Ajouter dans la config MCP (.mcp.json du projet, ou config utilisateur Claude Code) :
{
"mcpServers": {
"codecrafting-cloudflare": {
"command": "node",
"args": ["D:/CodeCrafting/Devs/CodeBase/MCP/codecrafting-cloudflare-mcp/server.mjs"]
}
}
}
Le serveur lit son token depuis son propre .env ; rien à passer dans la config. Au prochain démarrage de Claude Code, les 4 outils cf_* sont disponibles.
Sécurité
- Lecture seule : aucun outil ne modifie quoi que ce soit sur Cloudflare (uniquement
des requêtes au dataset Analytics).
- Le token vit dans le
.envlocal (jamais committé, jamais renvoyé dans une réponse
d'outil). Token scopé Analytics Read / Logs Read — aucun droit DNS/WAF/R2.
Test manuel
npm start # démarre le serveur en stdio (Ctrl+C pour quitter)
Le serveur écrit [codecrafting-cloudflare-mcp] prêt (stdio). sur stderr quand il est prêt.






