Skip to main content
Glama
openvancamp

OpenVan MCP Server

by openvancamp

API pública de OpenVan.camp

API gratuita y sin autenticación para datos de vanlife: precios de combustible, tipos de cambio, índice de coste de alimentos, eventos de vanlife y noticias, todo en un solo lugar, sin necesidad de registro.

URL base: https://openvan.camp Autenticación: Ninguna requerida CORS: Habilitado Licencia: CC BY 4.0

SDK de JavaScript/TypeScript: @openvancamp/sdk — npm install @openvancamp/sdk. Sin configuración, tipado, para Node.js / navegador / edge. Documentación del SDK →

Servidor MCP (para agentes de IA): mcp-server/ — alojado en https://mcp.openvan.camp/mcp, también npx -y mcp-remote https://mcp.openvan.camp/mcp para Claude Desktop / Cursor / Windsurf. Documentación de instalación →

GPT personalizado: OpenVan Travel Assistant — disponible en la GPT Store de ChatGPT.


Qué es lo oficial

Recurso

Propósito

Este README

Resumen rápido y ejemplos de código

/docs

Documentación interactiva con "Pruébalo"

/docs.openapi

Contrato completo OpenAPI 3.0 (siempre actualizado)

/docs.postman

Colección de Postman

La especificación OpenAPI en /docs.openapi se genera a partir del código fuente en vivo y es el contrato oficial. Las cifras en este README (recuento de países, totales de noticias) son aproximadas y se actualizan periódicamente; consulte los metadatos de /api/fuel/prices o la paginación de /api/stories para obtener los totales actuales.


Related MCP server: euenergy-mcp

Endpoints

Endpoint

Descripción

Cobertura

GET /api/fuel/prices

Precios minoristas de combustible (gasolina, diésel, GLP, E85)

120+ países

GET /api/currency/rates

Tipos de cambio respecto al EUR

150+ divisas

GET /api/vanbasket/countries

Índice de precios de alimentos respecto al promedio mundial (100 = prom. mundial)

90+ países

GET /api/vanbasket/compare?from=DE&to=TR

Comparar costes de alimentos entre dos países

—

GET /api/vanbasket/countries/{code}

País individual + instantáneas históricas

—

GET /api/events

Eventos de vanlife: exposiciones, festivales, encuentros, viajes

695 eventos

GET /api/event/{slug}

Detalles completos del evento con coordenadas geográficas

—

GET /api/event/{slug}/articles

Artículos fuente vinculados a un evento

—

GET /api/stories

Noticias agregadas de más de 200 editores

8200+ noticias

GET /api/story/{slug}

Noticia completa con todos los artículos fuente y enlaces directos

—


Inicio rápido

# Fuel prices
curl https://openvan.camp/api/fuel/prices

# Currency rates (EUR-based)
curl https://openvan.camp/api/currency/rates

# Food price index
curl https://openvan.camp/api/vanbasket/countries

# Upcoming vanlife events in Germany
curl "https://openvan.camp/api/events?country=DE&status=upcoming&locale=en"

# Latest vanlife news stories in English
curl "https://openvan.camp/api/stories?locale=en"

Precios de combustible — /api/fuel/prices

Precios minoristas semanales de más de 45 fuentes gubernamentales oficiales. TTL de caché: 6 horas. Por favor, no realice consultas con una frecuencia superior a 10 minutos.

curl https://openvan.camp/api/fuel/prices
{
  "success": true,
  "data": {
    "DE": {
      "country_code": "DE",
      "country_name": "Germany",
      "region": "europe",
      "currency": "EUR",
      "local_currency": "EUR",
      "unit": "liter",
      "prices": {
        "gasoline": 1.79,
        "diesel": 1.69,
        "lpg": 0.89,
        "e85": null,
        "premium": null
      },
      "price_changes": { "gasoline": -0.02, "diesel": 0.01, "lpg": 0.0 },
      "fetched_at": "2026-04-05T10:00:00+00:00",
      "sources": ["EU Weekly Oil Bulletin", "Fuelo.net"],
      "sources_count": 2,
      "is_excluded": false
    }
  },
  "meta": {
    "total_countries": 121,
    "updated_at": "2026-04-05 10:00:00",
    "cache_ttl_hours": 6
  }
}

Notas:

  • unit es "liter" para la mayoría de los países, "gallon" para EE. UU. y Ecuador

  • is_excluded: true significa que el país tiene fuertes subsidios al combustible (los precios no reflejan las tasas de mercado)

  • price_changes = delta respecto a los precios de la semana pasada


Tipos de cambio — /api/currency/rates

Tipos de cambio basados en EUR de múltiples proveedores de código abierto con respaldo automático. TTL de caché: 25 horas. Actualizado diariamente a las 07:00 UTC.

curl https://openvan.camp/api/currency/rates
{
  "success": true,
  "rates": {
    "EUR": 1,
    "USD": 1.08,
    "GBP": 0.85,
    "TRY": 38.5,
    "GEL": 2.95,
    "KZT": 510,
    "RUB": 98.5
  },
  "cached": true,
  "updated_at": "2026-04-08T07:00:00+00:00"
}

Convertir a cualquier divisa:

const priceInUSD = (priceEUR / rates.EUR) * rates.USD;
const priceInTRY = (priceEUR / rates.EUR) * rates.TRY;

Índice de precios de alimentos VanBasket — /api/vanbasket/*

Coste relativo de una cesta de alimentos comparado con el promedio mundial (Mundo = 100). Basado en datos ICP 2021 del Banco Mundial, ajustado con el IPC del FMI. Fuente de datos: CC BY 4.0

# All countries
curl https://openvan.camp/api/vanbasket/countries

# Compare two countries
curl "https://openvan.camp/api/vanbasket/compare?from=DE&to=TR"

# Single country with historical snapshots
curl https://openvan.camp/api/vanbasket/countries/DE
{
  "success": true,
  "data": {
    "CH": { "country_code": "CH", "country_name": "Switzerland", "vanbasket_index": 162.3, "pct_vs_world": 62.3 },
    "DE": { "country_code": "DE", "country_name": "Germany",     "vanbasket_index": 118.7, "pct_vs_world": 18.7 },
    "TR": { "country_code": "TR", "country_name": "Turkey",      "vanbasket_index":  82.4, "pct_vs_world": -17.6 },
    "GE": { "country_code": "GE", "country_name": "Georgia",     "vanbasket_index":  64.1, "pct_vs_world": -35.9 }
  },
  "meta": {
    "total_countries": 92,
    "world_avg": 100,
    "base_year": 2021,
    "source": "World Bank ICP 2021",
    "license": "CC BY 4.0"
  }
}

Respuesta de comparación:

{
  "success": true,
  "data": {
    "from": { "country_code": "DE", "country_name": "Germany", "vanbasket_index": 118.7 },
    "to":   { "country_code": "TR", "country_name": "Turkey",  "vanbasket_index":  82.4 },
    "diff_percent": -30.6,
    "budget_100": 69,
    "cheaper": true
  }
}

budget_100: si gastas 100 € en comida en el país from, gastarías 69 € en el país to.


Eventos — /api/events

Eventos de vanlife: exposiciones, festivales, encuentros, viajes. Actualizado en tiempo real.

Parámetros de consulta:

Parámetro

Valores

Predeterminado

locale

en ru de fr es pt tr

en

status

upcoming ongoing past all

upcoming

type

expo festival forum meetup roadtrip

—

country

ISO 3166-1 alpha-2

—

search

texto

—

page

entero

1

limit

entero (máx 100)

30

# Upcoming events in Germany
curl "https://openvan.camp/api/events?country=DE&status=upcoming&locale=en"

# Event details
curl "https://openvan.camp/api/event/fit-camper-2026?locale=en"

# Source articles linked to an event
curl "https://openvan.camp/api/event/fit-camper-2026/articles?locale=en"
{
  "events": [
    {
      "id": 493,
      "slug": "fit-camper-2026",
      "event_name": "Fit Your Camper",
      "event_type": "expo",
      "event_type_label": "Exhibition",
      "start_date": "2026-04-09",
      "end_date": "2026-04-12",
      "city": "Bologna",
      "country_code": "IT",
      "country": { "code": "it", "name": "Italy", "flag_emoji": "🇮🇹" },
      "venue_name": "BolognaFiere",
      "status": "upcoming",
      "articles_count": 7,
      "url": "https://openvan.camp/en/event/fit-camper-2026"
    }
  ],
  "pagination": { "total": 48, "page": 1, "limit": 30, "pages": 2 }
}

Notas:

  • Los locale desconocidos o faltantes vuelven silenciosamente a en

  • /api/event/{slug}/articles devuelve artículos fuente filtrados por locale; si ninguno coincide, se devuelven todos los artículos (pueden estar en el idioma original del editor)


Noticias / Historias — /api/stories

Noticias de vanlife agregadas de más de 200 editores y traducidas a 7 idiomas. Cada noticia agrupa múltiples artículos fuente que cubren el mismo tema.

Parámetros de consulta:

Parámetro

Valores

Predeterminado

locale

en ru de fr es pt tr

en

category

slug de categoría (ej. camping, travel, gear, incident)

—

country

ISO 3166-1 alpha-2

—

search

texto

—

page

entero

1

limit

entero (máx 50)

20

# Latest stories in English
curl "https://openvan.camp/api/stories?locale=en"

# German vanlife news in Germany
curl "https://openvan.camp/api/stories?locale=de&country=DE"

# Full story with all source links
curl "https://openvan.camp/api/story/free-overnight-parking-netherlands?locale=en"
{
  "slug": "free-overnight-parking-netherlands",
  "title": "Free Overnight Parking for Motorhomes in the Netherlands",
  "summary": "The Dutch motorhome community is pushing for more designated free overnight spots...",
  "image_url": "https://...",
  "category": { "slug": "travel", "name": "Travel" },
  "countries": [{ "code": "nl", "name": "Netherlands", "flag_emoji": "🇳🇱" }],
  "first_published_at": "2026-04-01T10:00:00+00:00",
  "last_updated_at": "2026-04-03T08:00:00+00:00",
  "articles_count": 5,
  "url": "https://openvan.camp/en/news/travel/free-overnight-parking-netherlands",
  "sources": [
    {
      "title": "Gratis overnachten in je camper: de beste plekken",
      "original_url": "https://www.campermagazine.nl/overnachten/gratis-plaatsen",
      "source_name": "CamperMagazine.nl",
      "published_at": "2026-04-01T10:00:00+00:00",
      "language": "nl",
      "image_url": "https://..."
    }
  ]
}

Notas:

  • title y summary se traducen al locale solicitado

  • sources[].language es siempre el idioma original del editor, independientemente del locale

  • sources[].original_url es el enlace directo al artículo del editor


Formato de respuesta

Todos los endpoints JSON siguen un sobre consistente:

{ "success": true, "data": { ... }, "meta": { ... }, "_attribution": { ... } }

Cada respuesta incluye un objeto _attribution:

"_attribution": {
  "data_source": "openvan.camp",
  "license": "CC BY 4.0",
  "attribution_url": "https://openvan.camp/",
  "attribution_html": "Data: <a href=\"https://openvan.camp/\">OpenVan.camp</a> (CC BY 4.0)"
}

Errores:

{ "success": false, "error": "Description of the error." }

Si realizas una llamada sin Accept: application/json, algunas respuestas de error pueden devolver HTML. Envía siempre la cabecera:

Accept: application/json

Límite de tasa

120 peticiones por minuto por IP. Por favor, sé responsable:

  • Almacena en caché los precios de combustible durante al menos 6 horas

  • Almacena en caché los tipos de cambio durante al menos 1 hora

  • Almacena en caché las noticias/eventos durante al menos 15 minutos


Atribución

Requerido por CC BY 4.0. Formato sugerido:

Data: <a href="https://openvan.camp/">OpenVan.camp</a> — CC BY 4.0

Identifica tu integración

Envía ?source=tusitio.com con cualquier petición — no se necesita registro. Tu valor se devuelve como _attribution.your_source para que puedas verificar que funciona:

curl "https://openvan.camp/api/fuel/prices?source=myapp.com"
{
  "success": true,
  "data": { "..." },
  "meta": { "..." },
  "_attribution": {
    "data_source": "openvan.camp",
    "license": "CC BY 4.0",
    "attribution_url": "https://openvan.camp/",
    "attribution_html": "Data: <a href=\"https://openvan.camp/\">OpenVan.camp</a> (CC BY 4.0)",
    "your_source": "myapp.com"
  }
}

Esto nos ayuda a entender cómo se utilizan los datos y a reconocer los proyectos activos.


SDK de JavaScript / TypeScript

npm install @openvancamp/sdk
# or: pnpm add @openvancamp/sdk
import { OpenVan } from "@openvancamp/sdk";

const ov = new OpenVan();

// Cheapest diesel in Europe (top 5, EUR-normalized)
const top5 = await ov.fuel.cheapest("diesel", 5);
top5.forEach(c => console.log(c.country_name, c.prices.diesel, c.currency));

// Is Portugal cheaper than Germany for van living?
const comp = await ov.basket.compare("DE", "PT");
console.log(`Portugal is ${Math.abs(comp.diff_percent)}% cheaper`);

// Vanlife weather suitability — top 10 countries right now
const weather = await ov.weather.top({ limit: 10 });

Nativo ESM, totalmente tipado (TypeScript incluido), funciona en Node.js ≥ 18, navegador, Cloudflare Workers, Deno, Bun. Sin clave de API.

npm: @openvancamp/sdk · Documentación completa del SDK →


Recursos

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    D
    maintenance
    A Model Context Protocol (MCP) server that provides weather data using the OpenWeather One Call API 3.0. This server allows AI agents to access current weather, forecasts, and historical weather data for any location.
    3
    13 npm
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    A read-only MCP server that exposes European day-ahead electricity prices for ~41 bidding zones via tools like hourly prices, cheapest hours, current price, and cross-zone summary, enabling AI agents to query energy market data.
    1
    -
  • A
    license
    C
    quality
    D
    maintenance
    A Model Context Protocol server exposing 58 online tools (crypto, data, image, text, etc.) and workflow execution, enabling MCP clients like Claude Desktop to invoke them via natural language.
    58
    4 npm
    MIT

Appeared in Searches