MCP server for accessing Portuguese e-redes energy data (consumption, production, and injection)
Three tools with identical parameter schemas and minimal descriptions. All tools have proper naming (verb_noun pattern: get_*) and valid JSON Schema with type constraints (regex patterns, enums). However, descriptions are extremely terse (10-40 chars, well below the 50-200 char baseline for LLM optimization). Parameter descriptions are generic ('Specify the X (optional)') and lack context about what data is returned or when to use each tool. No output schema documentation visible. Error handling returns plain text without recovery guidance. Tools lack differentiation in their descriptions despite querying different energy data sources.
Get energy consumption
Get energy injected into to the distribution network
Get national produced energy
Tool descriptions are critically short (10-40 chars vs 50-200 char baseline). 'Get energy consumption' and 'Get national produced energy' do not explain when to use each tool, what data is returned, or how they differ. LLMs cannot reliably select the correct tool.
Parameter descriptions are generic placeholders ('Specify the day (optional)') with no context about format, valid ranges, or use cases. LLMs cannot infer whether 'day' means '01'-'31', '1'-'31', or a full date string.
No output schema documented. Handlers return JSON.stringify(data.results.map(formatter)) but the structure of formatted results is not visible in the tool definitions. LLMs cannot plan downstream operations or extract specific fields.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 40 | 2026-07-28+ | v2 |
Error handling returns plain text ('Failed to retrieve e-redes (get_energy_consumption) data') with no recovery guidance. LLMs do not know whether to retry, call a different tool, or ask the user.
All three tools accept identical optional parameters (day, month, year, time, sortTotal, limit) but descriptions do not explain how these filters interact or what happens if multiple are provided. Undocumented parameter relationships cause silent misuse.