# Servidor MCP

> Versión Markdown de https://docs.preciosgasolina.es/mcp/ · Actualizado: 2026-10-07 · Índice para LLM: https://docs.preciosgasolina.es/llms.txt

Qué es el servidor MCP de Gasolina hoy: URL, Streamable HTTP sin estado ni inicio de sesión, 21 herramientas de solo lectura, recursos, prompts y límites.

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](https://modelcontextprotocol.io/)) 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.

## Dirección

```text
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).

## Qué incluye

- **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](https://docs.preciosgasolina.es/mcp/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](https://docs.preciosgasolina.es/mcp/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`.

## Probarlo con curl

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

```sh
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:

```sh
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

```json
{
  "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
}
```

## Límites y tamaños

|                                                            |                                                                                                                                                      |
| ---------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| 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](https://docs.preciosgasolina.es/conceptos/limites/).

> **¿API REST o MCP?**
>
> Usa el **MCP** si un modelo de lenguaje decide qué consultar (asistentes, agentes). Usa la **[API REST](https://docs.preciosgasolina.es/referencia/)** si tu código sabe exactamente qué pedir (webs, apps, scripts): tiene más endpoints, caché HTTP y límites más amplios. Las dos usan los mismos datos y la misma caché.

## Siguientes pasos

[Conectar el servidor](https://docs.preciosgasolina.es/mcp/conectar/)Claude, ChatGPT, Cursor, VS Code y Claude Code.

[Herramientas](https://docs.preciosgasolina.es/mcp/herramientas/)Las 21 herramientas con sus argumentos y preguntas de ejemplo.

[Recursos y prompts](https://docs.preciosgasolina.es/mcp/recursos-y-prompts/)Datos de referencia y plantillas de conversación.

[Buenas prácticas](https://docs.preciosgasolina.es/mcp/buenas-practicas/)Para quien construye agentes con estos datos.
