# io.github.openvancamp/openvan-travel (npm · @openvancamp/mcp-server)

Vanlife & RV data: roadbooks, fuel, tolls, ferries, visas, holidays, hazards, weather. openvan.camp

- Trust score: 87/100 (high trust)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `mcp.openvan.camp`: 78/100, [markdown](https://verifymcp.io/servers/openvancamp-openvan-travel/mcp.md), [page](https://verifymcp.io/servers/openvancamp-openvan-travel/mcp)
- npm · `@openvancamp/mcp-server`: 87/100 (this document), [markdown](https://verifymcp.io/servers/openvancamp-openvan-travel/openvancamp-mcp-server.md), [page](https://verifymcp.io/servers/openvancamp-openvan-travel/openvancamp-mcp-server)

## Channel facts

- Registry: `npm`
- Package: `@openvancamp/mcp-server`
- Version: `0.12.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Supply Chain Security**: 98/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - 30 of 92 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 97/100
  - Source repository is publicly reachable at the declared URL.
  - Cryptographically verified build provenance (signed, bound to openvancamp/openvan-camp-public-api).
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 6 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 81/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 7593 tokens (~165/item across 46 items; 32 tools + 14 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 60/100
  - Stability observed for 18 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 98% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 50/100
  - Injection-marker check failed: the server instructions contains an instruction to conceal the call from the user, the text "never tell the user", at byte 991 of that field.
  - We read all 32 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 34 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.
  - Supports UI / widget rendering.

## Install

### How do I install the io.github.openvancamp/openvan-travel MCP server?

io.github.openvancamp/openvan-travel runs locally as an npm package, launched with npx -y @openvancamp/mcp-server. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add openvancamp-openvan-travel -- npx -y @openvancamp/mcp-server
```

### Cursor

```json
{
  "mcpServers": {
    "openvancamp-openvan-travel": {
      "command": "npx",
      "args": [
        "-y",
        "@openvancamp/mcp-server"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "openvancamp-openvan-travel": {
      "command": "npx",
      "args": [
        "-y",
        "@openvancamp/mcp-server"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add openvancamp-openvan-travel -- npx -y @openvancamp/mcp-server
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "openvancamp-openvan-travel": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@openvancamp/mcp-server"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add openvancamp-openvan-travel --command npx --arg -y --arg @openvancamp/mcp-server
```

### Hermes

```yaml
mcp_servers:
  openvancamp-openvan-travel:
    command: "npx"
    args: ["-y", "@openvancamp/mcp-server"]
```

### Netclaw

```json
{
  "McpServers": {
    "openvancamp-openvan-travel": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "@openvancamp/mcp-server"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add openvancamp-openvan-travel -t stdio -c npx -a -y @openvancamp/mcp-server
```

### Other

```json
{
  "mcpServers": {
    "openvancamp-openvan-travel": {
      "command": "npx",
      "args": [
        "-y",
        "@openvancamp/mcp-server"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-05 (score 87, +1)

No change was recorded against any check on this day. Stability & Change Management went from 57 to 60. That category is still filling its 30-day observation window: 17 days of observed history at the previous scan, 18 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-03 (score 86, +1)

No change was recorded against any check on this day. Stability & Change Management went from 50 to 53. That category is still filling its 30-day observation window: 15 days of observed history at the previous scan, 16 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-01 (score 85, +1)

No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-29 (score 84, +1)

- [security regression] Stability: 0.33 → unverified
- [security regression] Tool safety: fail → unverified
- [functional regression] Schema quality: 100 → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional regression] Capabilities: pass → unverified
- [functional] Package version: 0.11.0 → 0.12.0

### 2026-10-27 (score 83, +11)

- [security improvement] CVE-2023-54404 no longer affects this package
- [security improvement] Known CVEs: unverified → pass
- [functional improvement] Dependency health: unverified → 0.85

### 2026-10-26 (score 72, +16)

- [security regression] Stability: 0.23 → unverified
- [security regression] Tool safety: fail → unverified
- [security improvement] CVE-2023-54404 no longer affects this package
- [security improvement] Known CVEs: unverified → pass
- [security improvement] Malware scan: unverified → pass
- [functional regression] Schema quality: 100 → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional regression] Capabilities: pass → unverified
- [functional improvement] Dependency health: unverified → 0.85
- [functional] Package version: 0.10.0 → 0.11.0

### 2026-10-25 (score 56, −20)

- [security regression] Malware scan: pass → unverified
- [security regression] Known CVEs: fail → unverified
- [functional regression] Dependency health: 0.85 → unverified
- [functional] Package version: 0.9.7 → 0.10.0

### 2026-10-24 (score 76, +10)

- [security regression] CVE-2023-54404 affects this package: high
- [security regression] Known CVEs: pass → fail
- [security improvement] Malware scan: unverified → pass

## MCP tools (32)

### `plan_road_trip` (~639 tokens)

Plan A Road Trip

Plan a road trip by campervan or car between 2-10 places with the OpenVan.camp roadbook: distance, driving time and a day-by-day plan with overnights, budget (fuel, tolls, vignettes, ferries), and for every country on the way the entry rule for the given passports, residence permit and plates, how long you and the vehicle may stay (Schengen 90/180), road rules and city access (low-emission zones and stickers such as Umweltplakette and Crit'Air, Italian ZTL), holidays on the trip dates, safety and power plugs, plus the main warning and a checklist. Returns a link to the full roadbook the user can open, edit and share. Use this first when the user describes a trip from A to B.

Input parameters:

- `avoid_tolls` (boolean): Route avoiding toll roads.
- `consumption` (number): Consumption, litres per 100 km.
- `currency` (string): Currency of the budget, ISO 4217. Default EUR.
- `fuel` (string): Fuel, e.g. diesel, gasoline, lpg.
- `hours_per_day` (integer): Driving hours per day for the day-by-day plan. Default 6.
- `kids` (integer): Number of children travelling (adds the documents children need abroad to the checklist).
- `locale` (string): Language the user writes in (en, ru, de, fr, es, pt, tr). Set it on every call: the answer and the interactive card are shown in this language and units; without it the card falls back to the app's i…
- `passports` (string): Passports of the travellers, comma separated ISO alpha-2 codes, e.g. RU or DE,RU. Enables visa terms and the Schengen counter.
- `pets` (integer): Number of pets travelling (adds pet passport, microchip, rabies and EU titre-test steps to the checklist).
- `plates` (string): Country of the vehicle's plates, ISO alpha-2 (entry bans and green card depend on it).
- `residence` (string): Residence permit of the travellers, ISO alpha-2, in the same order as passports (one code applies to all), e.g. DE. A Schengen residence permit removes the visa and the 90/180 counter in Schengen.
- `round_trip` (boolean): Return to the start along the same route.
- `start_date` (string): Departure date, YYYY-MM-DD. Enables holidays, weather by day and visa deadlines.
- `tank` (number): Tank volume, litres.
- `vehicle_class` (string): car; van = campervan/motorhome up to 3.5 t (default); heavy = over 3.5 t.
- `waypoints` (array, required): 2-10 places in travel order: cities or countries (a country means its capital), e.g. ["Munich", "Venice"].
- `weight` (string): Vehicle weight: le35 (up to 3.5 t) or gt35.

### `get_country_travel_brief` (~245 tokens)

Country Road-Trip Briefing

Everything to know before driving into one country by campervan or car, in one call: entry rule and how long the person and the vehicle may stay (with passport), travel weather now and this week, fuel prices, tolls and vignettes, public holidays in the next 30 days, safety advice, power plugs, customs limits and food prices. Use it when someone asks what to know about a country, the nuances or a guide for travelling there, or is preparing a trip to it; use the single-topic tools for one narrow question.

Input parameters:

- `country_code` (string, required): ISO 3166-1 alpha-2 code of the country, e.g. ES.
- `locale` (string): Language the user writes in (en, ru, de, fr, es, pt, tr). Set it on every call: the answer and the interactive card are shown in this language and units; without it the card falls back to the app's i…
- `passport` (string): Traveller's passport, ISO alpha-2 — adds the entry rule and how long the person and the vehicle may stay. Only if the user gave it.

### `get_fuel_prices` (~178 tokens)

Get Fuel Prices

Current retail fuel prices for all API-supported countries. Covers gasoline, diesel, LPG, CNG, E85, kerosene and grade variants. Pass country_code to get one country in detail; omit it for a summary list. Use it for the price of petrol, diesel, LPG/autogas/propane or CNG in one country; without a country it gives an overview.

Input parameters:

- `country_code` (string): ISO 3166-1 alpha-2 country code, e.g. DE. If omitted, returns all countries.
- `locale` (string): Language the user writes in (en, ru, de, fr, es, pt, tr). Set it on every call: the answer and the interactive card are shown in this language and units; without it the card falls back to the app's i…

### `compare_fuel_prices` (~163 tokens)

Compare Fuel Prices

Compare current prices for one fuel type across 2-10 countries. Returns sorted table cheapest-first. Use it when someone asks which of two or more named countries has cheaper or more expensive fuel.

Input parameters:

- `country_codes` (array, required): Array of 2-10 ISO 3166-1 alpha-2 country codes to compare.
- `fuel_type` (string): Fuel type to compare. e.g. gasoline, diesel, lpg, cng, e85.
- `locale` (string): Language the user writes in (en, ru, de, fr, es, pt, tr). Set it on every call: the answer and the interactive card are shown in this language and units; without it the card falls back to the app's i…

### `find_cheapest_fuel` (~219 tokens)

Find Cheapest Fuel

Rank countries by the price of a fuel type in a region (or worldwide): the cheapest first, or with order=most_expensive the most expensive first. Useful for route planning. Use it for «where is fuel cheapest» and, with order=most_expensive, «where is fuel the most expensive», in a region or worldwide.

Input parameters:

- `fuel_type` (string): Fuel type. e.g. gasoline, diesel, lpg, cng, e85.
- `limit` (integer): How many countries to return.
- `locale` (string): Language the user writes in (en, ru, de, fr, es, pt, tr). Set it on every call: the answer and the interactive card are shown in this language and units; without it the card falls back to the app's i…
- `order` (string): cheapest first (default) or most_expensive first — «where is fuel the most expensive».
- `region` (string): Region to search. Default: world (all countries).

### `get_country_travel_weather` (~230 tokens)

Travel Weather In A Country

How suitable the weather in a whole country is for travelling and sleeping in a campervan, as a 0-100 score: overall travel score, sleep score, solar panel yield, driving conditions, awning safety, condensation risk, a 7-day forecast, and the 3 best and 3 toughest cities for the coming week. Country-level: for a named city use get_city_travel_weather. Use it when someone asks what the weather is like in a country, where in a country it is warmer, colder or sunnier, which of its cities are best or worst this week, or whether it is too cold or rainy to sleep in a van there now.

Input parameters:

- `country_code` (string, required): ISO 3166-1 alpha-2 country code, e.g. DE.
- `locale` (string): Language the user writes in (en, ru, de, fr, es, pt, tr). Set it on every call: the answer and the interactive card are shown in this language and units; without it the card falls back to the app's i…

### `get_city_travel_weather` (~261 tokens)

Travel Weather In A City

How suitable the weather in one city or town is for travelling and sleeping in a campervan, as a 0-100 score for today and for the coming 7 days, with the city's place among the cities of its country this week, comfortable days, the best stretch and the worst day, a 7-day forecast with day and night temperature and rain, today's score breakdown (thermal, sunshine, precipitation, wind), sleep, driving and solar scores and ready-made advice. Use this, not get_country_travel_weather, when the user names a place (Barcelona, Málaga, Alicante). Use it for the weather in one named city, town or place today, tomorrow or this week.

Input parameters:

- `city` (string, required): City or town name in any language, e.g. Barcelona, Málaga, Alicante.
- `country_code` (string): ISO 3166-1 alpha-2 country code to disambiguate (Barcelona ES vs Barcelona VE).
- `locale` (string): Language the user writes in (en, ru, de, fr, es, pt, tr). Set it on every call: the answer and the interactive card are shown in this language and units; without it the card falls back to the app's i…

### `get_city_climate` (~376 tokens)

Typical Weather On Any Date

What the weather is usually like in a city or at any point on a given day of the year, from the ERA5 climate archive 2021–2025 (median of 35 archive days: the date ±3 days over five years): day and night temperature, on how many of the 35 days there was precipitation, the usual sky, sea or large-lake water temperature, solar radiation for panels and the VanSky climate index; plus all 12 months and the best month to travel. Climate, not a forecast. Use it for dates beyond the coming week ("weather in Batumi in mid-September", "is the sea warm in Antalya in May") and for "when is the best time to go"; for today and this week use get_city_travel_weather. Omit date to get the month overview.

Input parameters:

- `city` (string): City or town name in any language, e.g. Batumi, Antalya. Omit when passing lat and lng.
- `country_code` (string): ISO 3166-1 alpha-2 country code to disambiguate the city (Barcelona ES vs Barcelona VE).
- `date` (string): Day of the year, MM-DD or YYYY-MM-DD (the year is ignored), e.g. 09-18. Omit for an overview of all 12 months and the best month.
- `lat` (number): Latitude of any point, instead of a city.
- `lng` (number): Longitude of any point, instead of a city.
- `locale` (string): Language the user writes in (en, ru, de, fr, es, pt, tr). Set it on every call: the answer and the interactive card are shown in this language and units; without it the card falls back to the app's i…

### `list_best_weather_countries` (~376 tokens)

Countries With The Best Travel Weather

List the N countries where the weather is best for travelling by campervan, highest 0-100 travel score first: today's score by default, or with period=week the score of the coming 7 days (the ranking used on OpenVan.camp). Use it when no country is named and someone asks where to go for warm or good weather right now — worldwide or in a region (region=europe…); with sort=warmest only when they literally ask where it is warmest or hottest (it ranks by temperature alone, so deserts come first; «warm and pleasant», «warm and dry» → the default score). These are today's conditions and the coming days, not a forecast for a later month: for «in November» say so.

Input parameters:

- `limit` (integer): How many top-scoring countries to return.
- `locale` (string): Language the user writes in (en, ru, de, fr, es, pt, tr). Set it on every call: the answer and the interactive card are shown in this language and units; without it the card falls back to the app's i…
- `period` (string): today = today's score (default, «right now»); week = the score of the coming 7 days, the ranking used on OpenVan.camp — for «this week», «the coming days», «where to go next week».
- `region` (string): Only countries of this region — «best weather in Europe». asia includes the Middle East; cis = Russia, the Caucasus and Central Asia. Default: world.
- `sort` (string): score = best overall travel weather (default, also for «warm and pleasant»); warmest = highest daytime temperature today — only for a literal «where is it warmest/hottest».

### `list_events` (~159 tokens)

List Vanlife Events

List vanlife events: expos (Caravan Salon), festivals, meetups, forums, road trips. Filter by status, type, country, or free-text search.

Input parameters:

- `country` (string): ISO 3166-1 alpha-2 country code.
- `limit` (integer)
- `locale` (string): Language the user writes in (en, ru, de, fr, es, pt, tr). Set it on every call: the answer and the interactive card are shown in this language and units; without it the card falls back to the app's i…
- `search` (string): Free-text search in event name.
- `status` (string): Event time status.
- `type` (string): Event type filter.

### `get_event` (~102 tokens)

Get Event Details

Get full details for a single vanlife event by its slug.

Input parameters:

- `locale` (string): Language the user writes in (en, ru, de, fr, es, pt, tr). Set it on every call: the answer and the interactive card are shown in this language and units; without it the card falls back to the app's i…
- `slug` (string, required): Event slug, e.g. caravan-salon-duesseldorf-2026.

### `search_stories` (~201 tokens)

Search Vanlife News

Search recent news about campervans, motorhomes and road travel collected by OpenVan.camp from public news sources. Returns for each story only a headline, a short summary of up to 300 characters, date, category, countries and a link to the story page on openvan.camp, which credits the original publishers. Never returns full article text. Filter by words in the headline, category, country and language.

Input parameters:

- `category` (string): Story category.
- `country` (string): ISO 3166-1 alpha-2 country code.
- `limit` (integer)
- `locale` (string): Language the user writes in (en, ru, de, fr, es, pt, tr). Set it on every call: the answer and the interactive card are shown in this language and units; without it the card falls back to the app's i…
- `search` (string): Words to look for in story headlines.

### `compare_food_prices` (~130 tokens)

Compare Food Prices

Compare food price index between two countries (world average = 100). Higher number = more expensive food. Use it when someone asks where food is cheaper between two countries.

Input parameters:

- `from` (string, required): Home country ISO alpha-2 code.
- `locale` (string): Language the user writes in (en, ru, de, fr, es, pt, tr). Set it on every call: the answer and the interactive card are shown in this language and units; without it the card falls back to the app's i…
- `to` (string, required): Destination country ISO alpha-2 code.

### `get_country_food_prices` (~129 tokens)

Get Food Price Index

Food price index for one country (world average = 100): how expensive groceries are there, with its yearly history. Use it when someone asks how expensive food, groceries or living is in a country.

Input parameters:

- `country_code` (string, required): ISO 3166-1 alpha-2 country code.
- `locale` (string): Language the user writes in (en, ru, de, fr, es, pt, tr). Set it on every call: the answer and the interactive card are shown in this language and units; without it the card falls back to the app's i…

### `rank_food_prices` (~163 tokens)

Rank Countries By Food Prices

Rank countries by food price index (world average = 100) in a region or worldwide: the cheapest first, or with order=most_expensive the most expensive first. Use it when someone asks where food or groceries are cheapest or most expensive.

Input parameters:

- `limit` (integer): How many countries to return.
- `locale` (string): Language the user writes in (en, ru, de, fr, es, pt, tr). Set it on every call: the answer and the interactive card are shown in this language and units; without it the card falls back to the app's i…
- `order` (string): cheapest first (default) or most_expensive first.
- `region` (string): Only countries of this region. Default: world.

### `get_currency_rate` (~149 tokens)

Convert Currency

Convert an amount between two currencies using live rates (150+ currencies, daily updates). Use it for exchange rates and converting an amount between currencies.

Input parameters:

- `amount` (number): Amount to convert. Default 1.
- `from` (string, required): Source currency ISO 4217 code, e.g. EUR.
- `locale` (string): Language the user writes in (en, ru, de, fr, es, pt, tr). Set it on every call: the answer and the interactive card are shown in this language and units; without it the card falls back to the app's i…
- `to` (string, required): Target currency ISO 4217 code, e.g. USD.

### `check_visa_rules` (~221 tokens)

Check Visa Rules

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.

Input parameters:

- `destination` (string, required): Destination: ISO alpha-2 code, slug or zone code, e.g. TR.
- `locale` (string): Language the user writes in (en, ru, de, fr, es, pt, tr). Set it on every call: the answer and the interactive card are shown in this language and units; without it the card falls back to the app's i…
- `passport` (string, required): ISO 3166-1 alpha-2 code of the passport, e.g. RU.
- `plate` (string): Plate origin for the green card rule.
- `weight` (string): Vehicle weight class for the vehicle rule: le35 (<=3.5 t) or gt35.

### `get_route_visa_rules` (~177 tokens)

Visa Rules For A Route

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.

Input parameters:

- `countries` (string, required): Countries in travel order, comma separated ISO alpha-2 codes or slugs, up to 12, e.g. RU,GE,TR.
- `locale` (string): Language the user writes in (en, ru, de, fr, es, pt, tr). Set it on every call: the answer and the interactive card are shown in this language and units; without it the card falls back to the app's i…
- `passports` (string): Passports to answer for, comma separated, up to 10, e.g. RU,BY.
- `weight` (string): Vehicle weight class for the vehicle rules.

### `get_vehicle_import_rules` (~140 tokens)

Temporary Vehicle Import Rules

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.

Input parameters:

- `country` (string, required): Country: ISO alpha-2 code, slug or zone code, e.g. georgia or GE.
- `locale` (string): Language the user writes in (en, ru, de, fr, es, pt, tr). Set it on every call: the answer and the interactive card are shown in this language and units; without it the card falls back to the app's i…

### `get_toll_rates` (~174 tokens)

Toll Road Rates By Country

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. Use it for toll roads, motorway fees, whether a vignette is needed and what it costs in one country.

Input parameters:

- `country_code` (string, required): ISO 3166-1 alpha-2 country code, e.g. FR.
- `locale` (string): Language the user writes in (en, ru, de, fr, es, pt, tr). Set it on every call: the answer and the interactive card are shown in this language and units; without it the card falls back to the app's i…

### `estimate_route_tolls` (~221 tokens)

Estimate Tolls For A Route

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. Use it only for the toll cost between named places when no other trip details are asked; for a whole trip use plan_road_trip.

Input parameters:

- `locale` (string): Language the user writes in (en, ru, de, fr, es, pt, tr). Set it on every call: the answer and the interactive card are shown in this language and units; without it the card falls back to the app's i…
- `vehicle_class` (string): car; van = campervan/motorhome up to 3.5 t (default); heavy = over 3.5 t.
- `waypoints` (array, required): 2-10 place names in travel order: cities or countries (a country means its capital), e.g. ["Rome", "Paris"].

### `get_holidays` (~282 tokens)

Holidays And Peak Traffic Days

Public holidays, school holidays (often regional, with ISO 3166-2 region codes) and official peak traffic days (France, Bison Futé) in one country for a period of up to 400 days. A country without data returns an error saying so — never present that as "no holidays". Use it for public holidays, days off, school holidays and peak traffic days.

Input parameters:

- `country_code` (string, required): ISO 3166-1 alpha-2 country code, e.g. FR.
- `from` (string): Start of the period, YYYY-MM-DD. Defaults to today.
- `kind` (string): Only one kind: public holidays, school holidays (often regional), or traffic = official peak traffic days — France only (Bison Futé). For «when are the roads busy» elsewhere omit it: public and schoo…
- `locale` (string): Language the user writes in (en, ru, de, fr, es, pt, tr). Set it on every call: the answer and the interactive card are shown in this language and units; without it the card falls back to the app's i…
- `to` (string): End of the period, YYYY-MM-DD. Defaults to from + 90 days; at most 400 days after from.

### `get_travel_hazards` (~164 tokens)

Travel Hazards In A Country

Situation now in one country: UK FCDO travel advice level and current GDACS natural disasters (flood, earthquake, tropical cyclone, wildfire, drought, volcano) with alert level green/orange/red. Not a forecast. Use it when someone asks whether it is safe to go to a country now, about travel warnings or natural disasters.

Input parameters:

- `country_code` (string, required): ISO 3166-1 alpha-2 country code, e.g. TR.
- `locale` (string): Language the user writes in (en, ru, de, fr, es, pt, tr). Set it on every call: the answer and the interactive card are shown in this language and units; without it the card falls back to the app's i…

### `get_active_fires` (~199 tokens)

Active Fires In An Area

NASA FIRMS VIIRS satellite fire detections of the last 48 hours in a bounding box up to 10°×10°, strongest first, with fire radiative power in MW. Use it for wildfires right now near a place or in a country: bbox is west,south,east,north in degrees — longitude first (Portugal ≈ -9.6,36.9,-6.1,42.2).

Input parameters:

- `bbox` (string, required): Bounding box west,south,east,north in degrees, at most 10° on each side, e.g. 29,36,33,38 (around Antalya).
- `locale` (string): Language the user writes in (en, ru, de, fr, es, pt, tr). Set it on every call: the answer and the interactive card are shown in this language and units; without it the card falls back to the app's i…

### `get_power_plugs` (~145 tokens)

Power Plugs And Voltage

Plug types (IEC A–N), mains voltage and frequency for one country, with the source of the value, plus the campsite hook-up connector in Europe (CEE17). Use it for socket and plug types, adapters, mains voltage and campsite hook-ups.

Input parameters:

- `country_code` (string, required): ISO 3166-1 alpha-2 country code, e.g. GB.
- `locale` (string): Language the user writes in (en, ru, de, fr, es, pt, tr). Set it on every call: the answer and the interactive card are shown in this language and units; without it the card falls back to the app's i…

### `find_ferries` (~319 tokens)

Ferry Crossings In An Area

Ferry and river crossing lines in a bounding box from OpenStreetMap: name, operator, countries, whether cars are carried, crossing time, the operator site checked by hand and a booking link where confirmed, and whether an open timetable exists. bbox is west,south,east,north in degrees — longitude first (Adriatic ≈ 12,39,20,46). Narrow with query (port or operator) or country_code. Use it for which ferries go to an island or across a sea, strait or river, and to get the id for get_ferry_schedule.

Input parameters:

- `bbox` (string, required): Bounding box west,south,east,north in degrees, longitude first, e.g. 8,38,16,42 (Tyrrhenian Sea: Sardinia, Corsica, Italy).
- `cars_only` (boolean): Default true: drop crossings OpenStreetMap marks as closed to cars. Unknown access is kept.
- `country_code` (string): Keep only crossings that touch this country (ISO 3166-1 alpha-2), e.g. GR.
- `locale` (string): Language the user writes in (en, ru, de, fr, es, pt, tr). Set it on every call: the answer and the interactive card are shown in this language and units; without it the card falls back to the app's i…
- `query` (string): Keep only crossings whose name, ports or operator contain this text, e.g. Olbia or Moby.

### `get_ferry_schedule` (~188 tokens)

Ferry Timetable

One ferry line by id from find_ferries: both ends with country, operator site and booking link, and a timetable digest from open GTFS feeds — next departures today in local time, sailings per day, daytime and night rhythm, weekdays over the next 8 days, crossing time. available: false means no open timetable is matched, not that the ferry does not run. Use it for when the next ferry leaves, how often it runs and how long the crossing takes.

Input parameters:

- `id` (string, required): Ferry line id from find_ferries, e.g. r5958961.
- `locale` (string): Language the user writes in (en, ru, de, fr, es, pt, tr). Set it on every call: the answer and the interactive card are shown in this language and units; without it the card falls back to the app's i…

### `get_customs_rules` (~231 tokens)

Customs Rules On Entry By Car

Customs rules when driving into a country, optionally from a given country: food bans, cash declaration, alcohol and tobacco limits, goods value, fuel in a canister. Each rule carries a verbatim official quote and source link. A country without data returns an error saying so — never present that as "nothing is restricted". Use it for what you may bring in by car: alcohol, tobacco, cash, meat and other food, goods limits.

Input parameters:

- `country_code` (string, required): ISO 3166-1 alpha-2 code of the country you enter, e.g. PL.
- `from` (string): ISO 3166-1 alpha-2 code of the country you come from, e.g. UA. Matters: no customs inside the EU, and some bans have exemptions by origin.
- `locale` (string): Language the user writes in (en, ru, de, fr, es, pt, tr). Set it on every call: the answer and the interactive card are shown in this language and units; without it the card falls back to the app's i…

### `list_license_plate_countries` (~88 tokens)

License Plate Countries

Countries whose license plates are available: international code, number of regions and an example plate.

Input parameters:

- `locale` (string): Language the user writes in (en, ru, de, fr, es, pt, tr). Set it on every call: the answer and the interactive card are shown in this language and units; without it the card falls back to the app's i…

### `get_license_plate_country` (~173 tokens)

License Plate Format And Region Codes

How a country's license plate looks and reads (standard, size, format), its plate types (standard, diplomatic, police, taxi…) with example numbers, and every region code on its plates, grouped by region — e.g. which region is 77 or 199 on Russian plates. Use it for what a plate region code means (77, 777, AA…) and a country's plate format.

Input parameters:

- `country` (string, required): ISO 3166-1 alpha-2 country code, e.g. RU.
- `locale` (string): Language the user writes in (en, ru, de, fr, es, pt, tr). Set it on every call: the answer and the interactive card are shown in this language and units; without it the card falls back to the app's i…

### `check_license_plate` (~239 tokens)

Check A License Plate

Validate a plate number against the country's format (look-alike letters are normalized) and say which region its code belongs to. Pass type to check against a specific plate type's format. Never identifies the owner or the vehicle's location. Use it to check a specific plate number.

Input parameters:

- `country` (string, required): ISO 3166-1 alpha-2 country code, e.g. RU.
- `locale` (string): Language the user writes in (en, ru, de, fr, es, pt, tr). Set it on every call: the answer and the interactive card are shown in this language and units; without it the card falls back to the app's i…
- `number` (string, required): Plate number without the region, e.g. A123BC. Look-alike Latin letters are normalized.
- `region` (string): Region code if the country shows one, e.g. 77.
- `type` (string): Plate type key from get_license_plate_country, e.g. on Russian plates diplomatic (red), police (blue), military (black), taxi_bus (yellow). Default: the country's standard plate.

### `get_license_plate_image` (~179 tokens)

License Plate Image

Draw an illustrative image of a country's standard civilian license plate (PNG shown inline, plus SVG/PNG links). The number must match the country's standard format. Official, police, military and diplomatic plates are not drawn. Use it to draw or show a picture of a plate.

Input parameters:

- `country` (string, required): ISO 3166-1 alpha-2 country code, e.g. RU.
- `locale` (string): Language the user writes in (en, ru, de, fr, es, pt, tr). Set it on every call: the answer and the interactive card are shown in this language and units; without it the card falls back to the app's i…
- `number` (string, required): Plate number without the region, in the country's standard format.
- `region` (string): Region code if the country shows one.

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/openvancamp-openvan-travel/openvancamp-mcp-server#diagnostics

## Score history

- 2026-11-05: 87
- 2026-11-04: 86
- 2026-11-03: 86
- 2026-11-02: 85
- 2026-11-01: 85
- 2026-10-31: 84
- 2026-10-30: 84
- 2026-10-29: 84
- 2026-10-28: 83
- 2026-10-27: 83
- 2026-10-26: 72
- 2026-10-25: 56
- 2026-10-24: 76
- 2026-10-23: 66
- 2026-10-22: 78
- 2026-10-21: 78
- 2026-10-20: 78
- 2026-10-19: 78
- 2026-10-18: 63

## Common questions

### What is the io.github.openvancamp/openvan-travel MCP server?

io.github.openvancamp/openvan-travel is an MCP server listed in the public MCP registry as io.github.openvancamp/openvan-travel. Vanlife & RV data: roadbooks, fuel, tolls, ferries, visas, holidays, hazards, weather. openvan.camp. This page covers its npm package (@openvancamp/mcp-server).

### Is the io.github.openvancamp/openvan-travel MCP server safe to use?

io.github.openvancamp/openvan-travel scores 87 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the io.github.openvancamp/openvan-travel MCP server expose?

io.github.openvancamp/openvan-travel exposes 32 tools: plan_road_trip, get_country_travel_brief, get_fuel_prices, compare_fuel_prices, find_cheapest_fuel, and 27 more. Their descriptions and schemas cost roughly 6,860 tokens of context every time the server is loaded.

### Is the io.github.openvancamp/openvan-travel MCP server still maintained?

io.github.openvancamp/openvan-travel is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the io.github.openvancamp/openvan-travel MCP server under?

io.github.openvancamp/openvan-travel declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- npm package: https://www.npmjs.com/package/@openvancamp/mcp-server
- Socket report: https://socket.dev/npm/package/@openvancamp/mcp-server
- Repository: https://github.com/openvancamp/openvan-camp-public-api
- Changelog RSS feed: https://verifymcp.io/servers/openvancamp-openvan-travel/openvancamp-mcp-server.xml
- Changelog JSON feed: https://verifymcp.io/servers/openvancamp-openvan-travel/openvancamp-mcp-server.json
- HTML version of this page: https://verifymcp.io/servers/openvancamp-openvan-travel/openvancamp-mcp-server
