Servidor MCP de precios de carburantes en España (API pública del MINETUR)
Two tools with clear, well-documented descriptions (194 - 250 chars each, within baseline 34 - 392 range). Input schemas present with type definitions and parameter descriptions. Tool names follow verb_noun pattern (buscar_*, precios_*). Output structure documented in docstrings. However, no input validation guidance, no error recovery hints, and missing enum constraints for 'producto' parameter despite accepting known aliases. Descriptions are Spanish-language, which is appropriate for domain but reduces LLM clarity in English-first systems.
Busca municipios españoles por nombre para obtener su ID. El ID de municipio hace falta para llamar a `precios_carburantes`. La búsqueda es por tokens (no requiere escribir el nombre exacto ni en el orden exacto): "El Bonillo" encuentra "Bonillo (El)", "Kanpezu" encuentra el municipio bilingüe "Campezo/Kanpezu". Devuelve siempre la provincia porque hay nombres de municipio repetidos entre provincias (p. ej. tres municipios llamados "Boadilla").
Precios de un carburante en las gasolineras de un municipio. Usa el ID de municipio que devuelve `buscar_municipio`. El resultado viene ordenado de más barata a más cara. Las gasolineras que no venden el producto pedido no aparecen en el resultado (se indica cuántas se excluyen). Los precios se actualizan en la API del MINETUR cada ~30 minutos; la respuesta incluye la fecha de esos precios.
Missing enum constraint for 'producto' parameter. Accepts 'diesel', 'glp', 'gasolina 95', 'gasolina 98', 'Gasoleo A', etc., but no formal enum in schema. LLMs will hallucinate invalid product names.
Error responses lack recovery guidance. 'producto_no_reconocido' returns available products, but 'municipio_invalido', 'error_conexion', 'error_respuesta' do not suggest next steps (e.g., 'Try buscar_municipio() first' or 'Retry in 30 seconds').
No input validation hints in parameter descriptions. 'limite' accepts integers but lacks min/max bounds (e.g., '1 - 500'). 'municipio_id' format not specified (is it numeric? alphanumeric?).
Output schema for 'gasolineras' array not formally documented. Docstring describes fields (rotulo, direccion, etc.) but no JSON Schema definition visible. LLMs cannot infer nested structure.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2026-07-28+ | v2 |
No pagination support. 'limite' caps results but no cursor/offset or total_count returned. Large municipalities (Madrid: 240+ stations) may exceed context window if agent requests all results.