A Model Context Protocol (MCP) server for intelligent course content curation powered by GPT-4
Three tools with basic schemas and minimal descriptions. All tools have input schemas with proper types (title, description as strings, both required). However, descriptions are generic and under 50 chars, failing the LLM-optimization baseline (target 50-200 chars). No output schemas documented. No error handling guidance. No parameter constraints or enums. Tool names follow verb_noun pattern but lack specificity about what 'suggest' and 'improve' actually return. No indication of idempotency, side effects, or retry safety. Composition is reasonable (three distinct concerns), but descriptions do not explain WHEN to use each tool or what distinguishes them.
Melhora título e descrição de um curso seguindo boas práticas
Sugere categoria mais apropriada para um curso usando IA
Sugere tags relevantes para um curso usando IA
Descriptions are too short (all ~40 chars) and lack LLM-optimization guidance. No explanation of WHEN to use each tool, what distinguishes them, or what the output contains.
No output schemas documented. Handlers return JSON text blobs with fields like 'suggestedCategory', 'suggestedTags', 'titleImprovement', 'descriptionImprovement', but LLMs cannot infer structure without explicit schema.
No error handling guidance. Generic McpError wrapping with 'Erro ao executar' messages does not tell LLM what to do next (retry? ask user? fatal?). No recovery hints.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | 2026-07-28+ | v2 |
Parameter descriptions are trivial ('Título do curso', 'Descrição do curso'). No guidance on format, length, language, or constraints. LLMs cannot optimize input without explicit parameter documentation.
Tool names 'suggest_*' and 'improve_*' are vague. 'suggest_category' does not clarify whether it returns one category or multiple, confidence scores, or reasoning. Ambiguous names increase LLM selection errors.