Skip to main content
Glama
CodeCraftingDevelopment

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