codecrafting-cloudflare-mcp
README.md
# 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
```bash
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) :
```json
{
"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 `.env` local (jamais committé, jamais renvoyé dans une réponse
d'outil). Token scopé *Analytics Read / Logs Read* — aucun droit DNS/WAF/R2.
## Test manuel
```bash
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.
TDQS
A3.9/5.0
Scored across 4 tools
Disambiguation5/5
Each tool has a clearly distinct purpose: targeted paths, threats by country, aggregated traffic, and arbitrary GraphQL queries. No overlap.
Naming Consistency4/5
Three tools follow 'cf_get_*' pattern, but 'cf_graphql_query' uses 'query' instead of 'get', introducing a minor inconsistency.
Tool Count5/5
With 4 tools, the set is well-scoped for Cloudflare analytics, covering key metrics and offering flexibility via GraphQL.
Completeness4/5
Covers common analytics needs; arbitrary GraphQL fills gaps. Minor missing features like DNS analytics but overall sufficient.
Maintenance
ActivityMaintained
ResponsivenessSyncing