Headless CMS backend with MCP (Model Context Protocol) integration for content management, schema provisioning, media handling, user management, and AI-powered content generation
Server provides 6 tools with basic schemas and descriptions in French. All tools have input schemas with type definitions and required fields clearly marked. Descriptions are present but brief (10-50 chars), below the 50-200 char baseline for LLM optimization. Parameter descriptions exist but lack detail on constraints, formats, and valid ranges. No output schemas documented. Error handling and recovery guidance absent. Tool naming follows verb_noun pattern (list_, get_, create_) which is correct. No tool annotations (readOnlyHint/destructiveHint) despite clear risk classifications in metadata. Missing idempotency guidance for create_entry.
Crée une nouvelle entrée dans une collection
Obtient le schéma complet d'une collection
Obtient une entrée par son UUID
Liste les collections d'un projet avec leurs champs
Liste les entrées d'une collection avec filtres et pagination
Liste tous les projets accessibles
Descriptions are too brief (10-50 chars vs 50-200 baseline). LLMs cannot determine when to select tools or understand prerequisites. E.g., 'Liste tous les projets accessibles' lacks context on what 'accessible' means or when to call this vs list_collections.
No output schemas documented. LLMs cannot plan downstream tool calls or extract required fields (e.g., does list_projects return project_uuid for use in list_collections?). Breaks tool chaining.
No tool annotations despite clear risk metadata. create_entry is marked WRITE but lacks destructiveHint annotation. list_* tools lack readOnlyHint. Agents cannot infer safety/idempotency from tool definitions alone.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
Parameter descriptions lack constraint details. 'limit' has no min/max (baseline: 1-100). 'status' enum is documented but 'locale' format is undefined. 'data' object in create_entry has no schema for nested field structure.
No error handling or recovery guidance. If create_entry fails due to invalid field data, LLM has no guidance on how to correct it. No mention of retryability, user-fixable vs fatal errors, or actionable error messages.