Ir al contenido

Servidor MCP

El servidor MCP de Gasolina hoy permite que un asistente de IA (Claude, ChatGPT, Cursor, VS Code, Claude Code o cualquier cliente compatible con el Model Context Protocol) consulte los precios oficiales de los carburantes de España: gasolineras más baratas, precios medios, histórico, carreteras, rutas, guías y calculadoras. Es gratuito, de solo lectura y no necesita iniciar sesión.

https://mcp.preciosgasolina.es/mcp
Transporte Streamable HTTP, sin estado: cada mensaje es una petición POST independiente, con respuesta JSON (sin flujos SSE abiertos)
Autenticación Ninguna (no hay inicio de sesión ni clave)
Sesiones No se usan (no se emite Mcp-Session-Id)
Lotes JSON-RPC No se admiten: un mensaje por petición
Capacidades tools (21 herramientas), resources (3 recursos y 3 plantillas) y prompts (4)
Nombre del servidor preciosgasolina (versión 1.0.0)

Una petición GET a /mcp responde 405: el servidor no abre flujos de eventos. Si el cliente envía la cabecera Origin, debe ser https:// (o localhost en desarrollo).

  • 21 herramientas en cuatro grupos: precios y gasolineras, carreteras y rutas, contenido y calculadoras. Todas son de solo lectura (readOnlyHint: true, destructiveHint: false, idempotentHint: true). Lista completa con sus argumentos: Herramientas.
  • Recursos: tipos de carburante, territorios con sus códigos INE, metodología y plantillas para leer guías, artículos y rutas. Prompts: planificar un viaje, repostar barato cerca, entender el precio y comparar marcas. Ver Recursos y prompts.
  • Instrucciones del servidor (las recibe el modelo al conectarse): los precios son los comunicados al Ministerio y se actualizan dos veces al día, no en tiempo real; hay que citar la fecha (meta.last_updated), mostrar la atribución y enlazar meta.web_url; y conviene usar search_places primero para convertir nombres en identificadores.

Cada resultado de herramienta lleva el mismo meta que la API REST (fecha, próxima actualización, fuente, atribución, licencia y web_url) dentro de structuredContent, y el mismo JSON como texto en content.

El servidor responde a cualquier cliente que hable JSON-RPC por HTTP. Por ejemplo, el saludo inicial:

Ventana de terminal
curl -X POST "https://mcp.preciosgasolina.es/mcp" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"curl","version":"1"}}}'

Y una llamada a una herramienta:

Ventana de terminal
curl -X POST "https://mcp.preciosgasolina.es/mcp" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"get_fuel_prices","arguments":{"level":"province","code":"28","fuel":"diesel"}}}'
Ejemplo ilustrativo: los valores no son precios reales
{
"result": {
"content": [{ "type": "text", "text": "{\"data\":{…},\"meta\":{…}}" }],
"structuredContent": {
"data": {
"area": { "level": "province", "code": "28", "name": "Madrid", "web_url": "https://preciosgasolina.es/precios-gasolineras/comunidad-de-madrid/madrid/" },
"stations": 812,
"currency": "EUR",
"fuels": [{ "fuel": "diesel", "label": "Gasóleo A (diésel)", "unit": "L", "average": 1.474, "median": 1.479, "minimum": 1.349, "maximum": 1.689, "stations": 801, "change_vs_previous_day_pct": 0.1, "spain_average": 1.481, "vs_spain_pct": -0.47, "cheapest_station_id": 12345, "fuel_page_url": "https://preciosgasolina.es/precio-diesel/" }]
},
"meta": {
"api_version": "v1",
"request_id": "ef949c7354ab4109",
"last_updated": "2026-10-07T06:12:00.000Z",
"next_update": "2026-10-07T18:10:00.000Z",
"data_age_seconds": 7476,
"stale": false,
"source": "Ministerio para la Transición Ecológica y el Reto Demográfico (Geoportal de Gasolineras)",
"attribution": "Fuente: Gasolina hoy (preciosgasolina.es), con datos del Ministerio para la Transición Ecológica y el Reto Demográfico (Geoportal de Gasolineras).",
"license": "https://creativecommons.org/licenses/by/4.0/",
"web_url": "https://preciosgasolina.es/precios-gasolineras/comunidad-de-madrid/madrid/"
}
}
},
"jsonrpc": "2.0",
"id": 2
}
Mensajes por minuto y por IP 60
Llamadas a herramientas (tools/call) por minuto y por IP 30
Tamaño máximo de un mensaje 64 KB
Tamaño de cada resultado unos 20 KB: si se supera, las listas largas se recortan a 10 elementos, los textos largos a 12.000 caracteres y el resultado lleva truncated: true

Al superar un límite, el servidor responde 429 con Retry-After: 60 y un error JSON-RPC. Si una herramienta falla (por ejemplo, un código de provincia que no existe), el resultado lleva isError: true y un texto con el código del error (PROVINCE_NOT_FOUND: …). Más en Límites de uso.

Fuente de los datos: Ministerio para la Transición Ecológica y el Reto Demográfico (Geoportal de Gasolineras). Datos de la API y del servidor MCP con licencia CC BY 4.0: cita Gasolina hoy y la fuente.