openvan-travel
Vanlife & RV data: fuel, tolls, visas, weather, currency, events, news, license plates. openvan.camp
Sollte ich dies verwenden
Qualität und Sicherheit
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"openvan-travel": {
"url": "https://mcp.openvan.camp/mcp"
}
}
}Remote-Endpunkte
https://mcp.openvan.camp/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (20)
🟢get_fuel_prices(country_code)
Current retail fuel prices for all API-supported countries. Supports the same price keys as /api/fuel/prices, including gasoline, diesel, LPG, CNG, E85, kerosene and grade variants. Pass country_code to get one country in detail; omit it for a summary list.
Eingabe-Schema
{
"type": "object",
"properties": {
"country_code": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"description": "ISO 3166-1 alpha-2 country code, e.g. DE. If omitted, returns all countries."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢compare_fuel_prices(country_codes, fuel_type)
Compare current prices for one fuel type across 2-10 countries. Returns sorted table cheapest-first.
Eingabe-Schema
{
"type": "object",
"properties": {
"country_codes": {
"type": "array",
"items": {
"type": "string",
"minLength": 2,
"maxLength": 2
},
"minItems": 2,
"maxItems": 10,
"description": "Array of 2-10 ISO 3166-1 alpha-2 country codes to compare."
},
"fuel_type": {
"type": "string",
"enum": [
"gasoline_regular",
"gasoline",
"gasoline_premium",
"gasoline_super",
"diesel_regular",
"diesel",
"diesel_premium",
"lpg",
"cng",
"e85",
"kerosene",
"premium"
],
"default": "diesel",
"description": "Fuel type to compare. Uses the same keys as /api/fuel/prices prices."
}
},
"required": [
"country_codes"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢find_cheapest_fuel(region, fuel_type, limit)
Find the cheapest countries for a given fuel type in a region (or worldwide). Useful for route planning.
Eingabe-Schema
{
"type": "object",
"properties": {
"region": {
"type": "string",
"enum": [
"europe",
"asia",
"africa",
"north_america",
"south_america",
"oceania",
"world"
],
"default": "world",
"description": "Region to search. Default: world (all countries)."
},
"fuel_type": {
"type": "string",
"enum": [
"gasoline_regular",
"gasoline",
"gasoline_premium",
"gasoline_super",
"diesel_regular",
"diesel",
"diesel_premium",
"lpg",
"cng",
"e85",
"kerosene",
"premium"
],
"default": "diesel",
"description": "Fuel type. Uses the same keys as /api/fuel/prices prices."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 20,
"default": 5,
"description": "How many cheapest countries to return."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_vansky_weather(country_code)
Get VanSky vanlife weather suitability score (0-100) for a country: van_score, sleep_score, solar yield, driving conditions, awning safety, condensation risk, 7-day forecast.
Eingabe-Schema
{
"type": "object",
"properties": {
"country_code": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"description": "ISO 3166-1 alpha-2 country code, e.g. DE."
}
},
"required": [
"country_code"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_vansky_top(limit)
List the top N countries with the highest VanSky van-travel suitability score today.
Eingabe-Schema
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 20,
"default": 10,
"description": "How many top-scoring countries to return."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_events(status, type, country, search, locale, ...)
List vanlife events: expos (Caravan Salon), festivals, meetups, forums, road trips. Filter by status, type, country, or free-text search.
Eingabe-Schema
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"upcoming",
"ongoing",
"past",
"all"
],
"default": "upcoming",
"description": "Event time status."
},
"type": {
"type": "string",
"enum": [
"expo",
"festival",
"forum",
"meetup",
"roadtrip"
],
"description": "Event type filter."
},
"country": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"description": "ISO 3166-1 alpha-2 country code."
},
"search": {
"type": "string",
"description": "Free-text search in event name."
},
"locale": {
"type": "string",
"enum": [
"en",
"ru",
"de",
"fr",
"es",
"pt",
"tr"
],
"default": "en",
"description": "Language for localized fields."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 15
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_event(slug, locale)
Get full details for a single vanlife event by its slug.
Eingabe-Schema
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "Event slug, e.g. caravan-salon-duesseldorf-2026."
},
"locale": {
"type": "string",
"enum": [
"en",
"ru",
"de",
"fr",
"es",
"pt",
"tr"
],
"default": "en"
}
},
"required": [
"slug"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢search_stories(search, category, country, locale, limit)
Search aggregated vanlife news stories (7 languages, 400+ sources). Filter by search query, category, country, locale.
Eingabe-Schema
{
"type": "object",
"properties": {
"search": {
"type": "string",
"description": "Full-text search in story title."
},
"category": {
"type": "string",
"description": "Category slug, e.g. camping, travel, gear, festival, industry."
},
"country": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"description": "ISO 3166-1 alpha-2 country code."
},
"locale": {
"type": "string",
"enum": [
"en",
"ru",
"de",
"fr",
"es",
"pt",
"tr"
],
"default": "en"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 10
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢compare_vanbasket(from, to)
Compare food price index between two countries (world average = 100). Higher number = more expensive food.
Eingabe-Schema
{
"type": "object",
"properties": {
"from": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"description": "Home country ISO alpha-2 code."
},
"to": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"description": "Destination country ISO alpha-2 code."
}
},
"required": [
"from",
"to"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_vanbasket(country_code)
Get VanBasket food price index details for one country.
Eingabe-Schema
{
"type": "object",
"properties": {
"country_code": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"description": "ISO 3166-1 alpha-2 country code."
}
},
"required": [
"country_code"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_currency_rate(from, to, amount)
Convert an amount between two currencies using live rates (150+ currencies, daily updates).
Eingabe-Schema
{
"type": "object",
"properties": {
"from": {
"type": "string",
"minLength": 3,
"maxLength": 3,
"description": "Source currency ISO 4217 code, e.g. EUR."
},
"to": {
"type": "string",
"minLength": 3,
"maxLength": 3,
"description": "Target currency ISO 4217 code, e.g. USD."
},
"amount": {
"type": "number",
"exclusiveMinimum": 0,
"default": 1,
"description": "Amount to convert. Default 1."
}
},
"required": [
"from",
"to"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢check_visa_rules(passport, destination, weight, plate)
Entry rules for one passport and destination: entry mode, allowed length of stay, how the days are counted (per entry or in a rolling window), whether a visa run resets the counter, and temporary vehicle import. Answers carry a confidence level and source — pass those on instead of stating a rule as certain.
Eingabe-Schema
{
"type": "object",
"properties": {
"passport": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"description": "ISO 3166-1 alpha-2 code of the passport, e.g. RU."
},
"destination": {
"type": "string",
"description": "Destination: ISO alpha-2 code, slug or zone code, e.g. TR."
},
"weight": {
"type": "string",
"enum": [
"le35",
"gt35"
],
"description": "Vehicle weight class for the vehicle rule: le35 (<=3.5 t) or gt35."
},
"plate": {
"type": "string",
"enum": [
"eu",
"non_eu",
"eaeu",
"third"
],
"description": "Plate origin for the green card rule."
}
},
"required": [
"passport",
"destination"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_route_visa_rules(countries, passports, weight)
Visa rules for every country of a route in one call, for up to 10 passports at once, plus the tightest leg of the route.
Eingabe-Schema
{
"type": "object",
"properties": {
"countries": {
"type": "string",
"description": "Countries in travel order, comma separated ISO alpha-2 codes or slugs, up to 12, e.g. RU,GE,TR."
},
"passports": {
"type": "string",
"description": "Passports to answer for, comma separated, up to 10, e.g. RU,BY."
},
"weight": {
"type": "string",
"enum": [
"le35",
"gt35"
],
"description": "Vehicle weight class for the vehicle rules."
}
},
"required": [
"countries"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_vehicle_import_rules(country)
Temporary admission rules for a foreign-plated vehicle in one country: allowed days, per entry or per window, carnet requirement, green card. A country without a rule we can stand behind returns nothing rather than a guess.
Eingabe-Schema
{
"type": "object",
"properties": {
"country": {
"type": "string",
"description": "Country: ISO alpha-2 code, slug or zone code, e.g. georgia or GE."
}
},
"required": [
"country"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_toll_rates(country_code, locale)
Toll reference for one country: payment system, per-km rates by vehicle class (car, campervan up to 3.5 t, over 3.5 t), vignette prices for every duration, concession sections and toll bridges/tunnels, each with verification date and source.
Eingabe-Schema
{
"type": "object",
"properties": {
"country_code": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"description": "ISO 3166-1 alpha-2 country code, e.g. FR."
},
"locale": {
"type": "string",
"description": "Language of names: en, ru, de, fr, es, pt, tr."
}
},
"required": [
"country_code"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢estimate_route_tolls(waypoints, vehicle_class, locale)
Estimate toll cost for a road trip from 2-10 place names: per-km tolls, vignettes, bridges and tunnels, as a EUR range with a per-country breakdown. Flags partial results when a country on the route has no data.
Eingabe-Schema
{
"type": "object",
"properties": {
"waypoints": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"minItems": 2,
"maxItems": 10,
"description": "2-10 place names in travel order: cities, addresses or countries (a country means its capital), e.g. [\"Rome\", \"Paris\"]."
},
"vehicle_class": {
"type": "string",
"enum": [
"car",
"van",
"heavy"
],
"default": "van",
"description": "car; van = campervan/motorhome up to 3.5 t (default); heavy = over 3.5 t."
},
"locale": {
"type": "string",
"description": "Language of bridge/section names: en, ru, de, fr, es, pt, tr."
}
},
"required": [
"waypoints"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_license_plate_countries(locale)
Countries whose license plates are available: international code, number of regions and an example plate.
Eingabe-Schema
{
"type": "object",
"properties": {
"locale": {
"type": "string",
"enum": [
"en",
"ru",
"de",
"es",
"fr",
"pt",
"tr"
],
"description": "Language of country and region names. Default en."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_license_plate_country(country, locale)
How a country's license plate looks and reads (standard, size, format) and every region code on its plates, grouped by region — e.g. which region is 77 or 199 on Russian plates.
Eingabe-Schema
{
"type": "object",
"properties": {
"country": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"description": "ISO 3166-1 alpha-2 country code, e.g. RU."
},
"locale": {
"type": "string",
"enum": [
"en",
"ru",
"de",
"es",
"fr",
"pt",
"tr"
],
"description": "Language of country and region names. Default en."
}
},
"required": [
"country"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢check_license_plate(country, number, region, locale)
Validate a plate number against the country's format (look-alike letters are normalized) and say which region its code belongs to. Never identifies the owner or the vehicle's location.
Eingabe-Schema
{
"type": "object",
"properties": {
"country": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"description": "ISO 3166-1 alpha-2 country code, e.g. RU."
},
"number": {
"type": "string",
"description": "Plate number without the region, e.g. A123BC. Look-alike Latin letters are normalized."
},
"region": {
"type": "string",
"description": "Region code if the country shows one, e.g. 77."
},
"locale": {
"type": "string",
"enum": [
"en",
"ru",
"de",
"es",
"fr",
"pt",
"tr"
],
"description": "Language of country and region names. Default en."
}
},
"required": [
"country",
"number"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_license_plate_image(country, number, region, custom)
Draw a license plate as an image (PNG shown inline, plus SVG/PNG links) exactly as openvan.camp renders it. custom=true draws any text, e.g. a name, in the plate layout.
Eingabe-Schema
{
"type": "object",
"properties": {
"country": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"description": "ISO 3166-1 alpha-2 country code, e.g. RU."
},
"number": {
"type": "string",
"description": "Plate number without the region, or any text with custom=true."
},
"region": {
"type": "string",
"description": "Region code if the country shows one."
},
"custom": {
"type": "boolean",
"description": "Draw any text (e.g. a name) in the plate layout instead of requiring a real format."
}
},
"required": [
"country",
"number"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Community
Nachweis