francestudent-mcp
# francestudent-mcp
MCP local (stdio, Node ≥ 20) qui génère des images avec **ton** compte France Student IA
(moteur `gpt-image-2-codex`, piloté par un agent GPT en discussion incognito).
Cartographie complète du site : [`FRANCESTUDENT_API_MAP.md`](FRANCESTUDENT_API_MAP.md)
(la spec OpenAPI brute, `GET https://api.francestudent.org/v3/api-docs`, n'est pas versionnée). Test MCP de bout en bout : `node scripts/mcp-selftest.mjs "prompt"`.
Skill prêt à l'emploi pour les agents : [`skills/francestudent-imagegen/SKILL.md`](skills/francestudent-imagegen/SKILL.md).
## Installation
```powershell
git clone https://github.com/Yormede/francestudent-mcp
cd francestudent-mcp
npm install
npm run login # ouvre Chrome (profil dédié) → connecte-toi → session enregistrée dans .secrets\session.json
npm run check # vérifie jeton + agents + budget
npm run check -- "un renard en origami, fond blanc" # génère une image de test dans .\output
```
Aucun mot de passe n'est stocké : uniquement les cookies de session (~30 jours, prolongés à chaque usage).
Quand ils expirent, l'outil renvoie `SESSION_EXPIRED` → relance `npm run login`.
## Brancher dans Claude Desktop
Dans `claude_desktop_config.json` → `mcpServers` :
```json
"francestudent": {
"command": "C:\\Program Files\\nodejs\\node.exe",
"args": ["C:\\chemin\\vers\\francestudent-mcp\\src\\server.mjs"]
}
```
Variables optionnelles : `FS_OUTPUT_DIR` (dossier des images), `FS_SESSION_FILE`.
## Outils
| Outil | Rôle |
|---|---|
| `fs_generate_image` | `prompt`, `aspect` (auto/square/landscape/portrait), `quality` (auto/high), `count` 1–4, `agent`, `output_dir`, `return_image`, `raw_prompt`, `keep_chat` |
Chaque image est générée dans une discussion neuve (aucun historique partagé), supprimée après téléchargement
(l'option incognito de France Student ne cache pas les chats de l'historique). Prompt à donner aux agents : `AGENT_PROMPT.md`.
| `fs_usage` | Budget de chat restant + limites |
| `fs_list_agents` | Agents disponibles (seuls les GPT génèrent des images) |
## Limites connues
- Un seul modèle d'image côté France Student ; taille/qualité décidées par le modèle (`auto`) — `aspect`/`quality` ne sont que des consignes dans le prompt.
- Chaque image consomme du budget de chat (~0,2 % mesuré). Budget épuisé → `AD_VIEW_REQUIRED` (le site veut une pub) ou `RATE_LIMIT`.
- API non officielle : un déploiement du front peut casser l'auth (en-têtes `francestudent-client-*`) ou le format SSE.
- Appels depuis un serveur/datacenter bloqués par Cloudflare (`403 request_blocked`) : à lancer depuis ton PC.
## Avertissement
Projet personnel non officiel, sans lien avec France Student. Il automatise **ton propre compte**
via l'API interne du site, qui peut changer à tout moment. Respecte les conditions d'utilisation de
France Student : un compte par personne, pas de partage de session, pas de contournement des limites.
Ne commite jamais `.secrets/`.
## Licence
MIT
TDQS
Scored across 3 tools
The three tools target clearly separate actions: generating images, checking account usage, and listing available agents. There is no meaningful overlap that would cause an agent to misselect.
All tools share the fs_ prefix, but the suffixes mix verb-noun patterns with a noun-only form: fs_generate_image and fs_list_agents are action-oriented, while fs_usage is not. The pattern is still readable and mostly consistent.
Three tools is a well-scoped surface for a focused image-generation/account service. Each tool clearly earns its place without unnecessary bloat.
The set covers image generation, budget/rate-limit inspection, and agent discovery, which are the core operations implied by the server. Minor gaps exist, such as no tool to inspect or manage previously generated images, but core workflows are covered.