Serveur MCP pour interroger un compte EcoleDirecte (notes, devoirs, absences, messages) depuis Claude, en local, sans jamais partager ses identifiants avec qui que ce soit.
Server has 5 tools with basic descriptions and partial schemas. Tool names follow verb_noun convention (lister_*, consulter_*) but descriptions are minimal (10-60 chars, below the 50-200 char LLM-optimized baseline). Only 3 of 5 tools have input schemas; 2 tools (lister_eleves, consulter_messages) have empty input objects with no schema validation. Parameter descriptions exist but are sparse. No output schemas documented. Error handling returns generic JSON stringification without field guidance. No tool annotations (readOnlyHint, etc.). Composition is sound, each tool does one thing, but parameter documentation and output structure fall short of production baseline.
Récupère les absences, retards et sanctions d'un élève.
Récupère le cahier de texte (devoirs à faire) d'un élève.
Récupère les messages reçus dans la messagerie EcoleDirecte du compte.
Récupère les notes d'un élève.
Liste les élèves rattachés au compte EcoleDirecte connecté.
Two tools (lister_eleves, consulter_messages) have no input schema, inputSchema is missing entirely.
Descriptions are too short (10-60 chars vs. 50-200 char baseline). 'Liste les élèves...' and 'Récupère les messages...' lack context on WHEN to use, WHAT to expect, and any prerequisites. LLMs cannot reliably select these tools.
No output schemas documented. Tools return JSON.stringify(result) with no field definitions. LLMs cannot plan downstream calls or extract specific fields reliably.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | 2026-07-28+ | v2 |
Error handling returns generic 'Erreur : <message>' without recovery guidance. SecurityChallengeError includes a hint, but other errors (network, auth, API) provide no actionable next steps for the LLM.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). All tools are read-only but this is not declared in the tool definition, forcing LLMs to infer safety from descriptions.