Server definition
- Hash
- sha256:34c454ffa6c272d8868e4d4afdd57597ca1a6944b90aacf462d55d9e467272cd
- What it is
- What a remote MCP server returned when asked what it offers: 25 tools
The blob, as servednamed by its sha256
{
"instructions": null,
"tools": [
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"country": {
"description": "ISO 3166-1 alpha-2 country code, e.g. RU.",
"maxLength": 2,
"minLength": 2,
"type": "string"
},
"locale": {
"description": "Language of country and region names. Default en.",
"enum": [
"en",
"ru",
"de",
"es",
"fr",
"pt",
"tr"
],
"type": "string"
},
"number": {
"description": "Plate number without the region, e.g. A123BC. Look-alike Latin letters are normalized.",
"type": "string"
},
"region": {
"description": "Region code if the country shows one, e.g. 77.",
"type": "string"
}
},
"required": [
"country",
"number"
],
"type": "object"
},
"name": "check_license_plate",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"destination": {
"description": "Destination: ISO alpha-2 code, slug or zone code, e.g. TR.",
"type": "string"
},
"passport": {
"description": "ISO 3166-1 alpha-2 code of the passport, e.g. RU.",
"maxLength": 2,
"minLength": 2,
"type": "string"
},
"plate": {
"description": "Plate origin for the green card rule.",
"enum": [
"eu",
"non_eu",
"eaeu",
"third"
],
"type": "string"
},
"weight": {
"description": "Vehicle weight class for the vehicle rule: le35 (<=3.5 t) or gt35.",
"enum": [
"le35",
"gt35"
],
"type": "string"
}
},
"required": [
"passport",
"destination"
],
"type": "object"
},
"name": "check_visa_rules",
"outputSchema": null
},
{
"description": "Compare current prices for one fuel type across 2-10 countries. Returns sorted table cheapest-first.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"country_codes": {
"description": "Array of 2-10 ISO 3166-1 alpha-2 country codes to compare.",
"items": {
"maxLength": 2,
"minLength": 2,
"type": "string"
},
"maxItems": 10,
"minItems": 2,
"type": "array"
},
"fuel_type": {
"default": "diesel",
"description": "Fuel type to compare. Uses the same keys as /api/fuel/prices prices.",
"enum": [
"gasoline_regular",
"gasoline",
"gasoline_premium",
"gasoline_super",
"diesel_regular",
"diesel",
"diesel_premium",
"lpg",
"cng",
"e85",
"kerosene",
"premium"
],
"type": "string"
}
},
"required": [
"country_codes"
],
"type": "object"
},
"name": "compare_fuel_prices",
"outputSchema": null
},
{
"description": "Compare food price index between two countries (world average = 100). Higher number = more expensive food.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"from": {
"description": "Home country ISO alpha-2 code.",
"maxLength": 2,
"minLength": 2,
"type": "string"
},
"to": {
"description": "Destination country ISO alpha-2 code.",
"maxLength": 2,
"minLength": 2,
"type": "string"
}
},
"required": [
"from",
"to"
],
"type": "object"
},
"name": "compare_vanbasket",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"locale": {
"description": "Language of bridge/section names: en, ru, de, fr, es, pt, tr.",
"type": "string"
},
"vehicle_class": {
"default": "van",
"description": "car; van = campervan/motorhome up to 3.5 t (default); heavy = over 3.5 t.",
"enum": [
"car",
"van",
"heavy"
],
"type": "string"
},
"waypoints": {
"description": "2-10 place names in travel order: cities, addresses or countries (a country means its capital), e.g. [\"Rome\", \"Paris\"].",
"items": {
"maxLength": 120,
"minLength": 1,
"type": "string"
},
"maxItems": 10,
"minItems": 2,
"type": "array"
}
},
"required": [
"waypoints"
],
"type": "object"
},
"name": "estimate_route_tolls",
"outputSchema": null
},
{
"description": "Find the cheapest countries for a given fuel type in a region (or worldwide). Useful for route planning.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"fuel_type": {
"default": "diesel",
"description": "Fuel type. Uses the same keys as /api/fuel/prices prices.",
"enum": [
"gasoline_regular",
"gasoline",
"gasoline_premium",
"gasoline_super",
"diesel_regular",
"diesel",
"diesel_premium",
"lpg",
"cng",
"e85",
"kerosene",
"premium"
],
"type": "string"
},
"limit": {
"default": 5,
"description": "How many cheapest countries to return.",
"maximum": 20,
"minimum": 1,
"type": "integer"
},
"region": {
"default": "world",
"description": "Region to search. Default: world (all countries).",
"enum": [
"europe",
"asia",
"africa",
"north_america",
"south_america",
"oceania",
"world"
],
"type": "string"
}
},
"type": "object"
},
"name": "find_cheapest_fuel",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"bbox": {
"description": "Bounding box west,south,east,north in degrees, at most 10° on each side, e.g. 29,36,33,38 (around Antalya).",
"pattern": "^-?\\d+(\\.\\d+)?(,-?\\d+(\\.\\d+)?){3}$",
"type": "string"
}
},
"required": [
"bbox"
],
"type": "object"
},
"name": "get_active_fires",
"outputSchema": null
},
{
"description": "Convert an amount between two currencies using live rates (150+ currencies, daily updates).",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"amount": {
"default": 1,
"description": "Amount to convert. Default 1.",
"exclusiveMinimum": 0,
"type": "number"
},
"from": {
"description": "Source currency ISO 4217 code, e.g. EUR.",
"maxLength": 3,
"minLength": 3,
"type": "string"
},
"to": {
"description": "Target currency ISO 4217 code, e.g. USD.",
"maxLength": 3,
"minLength": 3,
"type": "string"
}
},
"required": [
"from",
"to"
],
"type": "object"
},
"name": "get_currency_rate",
"outputSchema": null
},
{
"description": "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\".",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"country_code": {
"description": "ISO 3166-1 alpha-2 code of the country you enter, e.g. PL.",
"maxLength": 2,
"minLength": 2,
"type": "string"
},
"from": {
"description": "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.",
"maxLength": 2,
"minLength": 2,
"type": "string"
},
"locale": {
"description": "Language of the summaries: en, ru, de, fr, es, pt, tr.",
"type": "string"
}
},
"required": [
"country_code"
],
"type": "object"
},
"name": "get_customs_rules",
"outputSchema": null
},
{
"description": "Get full details for a single vanlife event by its slug.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"locale": {
"default": "en",
"enum": [
"en",
"ru",
"de",
"fr",
"es",
"pt",
"tr"
],
"type": "string"
},
"slug": {
"description": "Event slug, e.g. caravan-salon-duesseldorf-2026.",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "get_event",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"country_code": {
"description": "ISO 3166-1 alpha-2 country code, e.g. DE. If omitted, returns all countries.",
"maxLength": 2,
"minLength": 2,
"type": "string"
}
},
"type": "object"
},
"name": "get_fuel_prices",
"outputSchema": null
},
{
"description": "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\".",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"country_code": {
"description": "ISO 3166-1 alpha-2 country code, e.g. FR.",
"maxLength": 2,
"minLength": 2,
"type": "string"
},
"from": {
"description": "Start of the period, YYYY-MM-DD. Defaults to today.",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"kind": {
"description": "Only one kind: public holidays, school holidays (often regional), or traffic = official peak traffic days (France, Bison Futé). Omit for all.",
"enum": [
"public",
"school",
"traffic"
],
"type": "string"
},
"locale": {
"description": "Language of names: en, ru, de, fr, es, pt, tr.",
"type": "string"
},
"to": {
"$ref": "#/properties/from",
"description": "End of the period, YYYY-MM-DD. Defaults to from + 90 days; at most 400 days after from."
}
},
"required": [
"country_code"
],
"type": "object"
},
"name": "get_holidays",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"country": {
"description": "ISO 3166-1 alpha-2 country code, e.g. RU.",
"maxLength": 2,
"minLength": 2,
"type": "string"
},
"locale": {
"description": "Language of country and region names. Default en.",
"enum": [
"en",
"ru",
"de",
"es",
"fr",
"pt",
"tr"
],
"type": "string"
}
},
"required": [
"country"
],
"type": "object"
},
"name": "get_license_plate_country",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"country": {
"description": "ISO 3166-1 alpha-2 country code, e.g. RU.",
"maxLength": 2,
"minLength": 2,
"type": "string"
},
"custom": {
"description": "Draw any text (e.g. a name) in the plate layout instead of requiring a real format.",
"type": "boolean"
},
"number": {
"description": "Plate number without the region, or any text with custom=true.",
"type": "string"
},
"region": {
"description": "Region code if the country shows one.",
"type": "string"
}
},
"required": [
"country",
"number"
],
"type": "object"
},
"name": "get_license_plate_image",
"outputSchema": null
},
{
"description": "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).",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"country_code": {
"description": "ISO 3166-1 alpha-2 country code, e.g. GB.",
"maxLength": 2,
"minLength": 2,
"type": "string"
},
"locale": {
"description": "Language of the country name: en, ru, de, fr, es, pt, tr.",
"type": "string"
}
},
"required": [
"country_code"
],
"type": "object"
},
"name": "get_power_plugs",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"countries": {
"description": "Countries in travel order, comma separated ISO alpha-2 codes or slugs, up to 12, e.g. RU,GE,TR.",
"type": "string"
},
"passports": {
"description": "Passports to answer for, comma separated, up to 10, e.g. RU,BY.",
"type": "string"
},
"weight": {
"description": "Vehicle weight class for the vehicle rules.",
"enum": [
"le35",
"gt35"
],
"type": "string"
}
},
"required": [
"countries"
],
"type": "object"
},
"name": "get_route_visa_rules",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"country_code": {
"description": "ISO 3166-1 alpha-2 country code, e.g. FR.",
"maxLength": 2,
"minLength": 2,
"type": "string"
},
"locale": {
"description": "Language of names: en, ru, de, fr, es, pt, tr.",
"type": "string"
}
},
"required": [
"country_code"
],
"type": "object"
},
"name": "get_toll_rates",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"country_code": {
"description": "ISO 3166-1 alpha-2 country code, e.g. TR.",
"maxLength": 2,
"minLength": 2,
"type": "string"
},
"locale": {
"description": "Language of the country name: en, ru, de, fr, es, pt, tr.",
"type": "string"
}
},
"required": [
"country_code"
],
"type": "object"
},
"name": "get_travel_hazards",
"outputSchema": null
},
{
"description": "Get VanBasket food price index details for one country.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"country_code": {
"description": "ISO 3166-1 alpha-2 country code.",
"maxLength": 2,
"minLength": 2,
"type": "string"
}
},
"required": [
"country_code"
],
"type": "object"
},
"name": "get_vanbasket",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"country_code": {
"description": "ISO 3166-1 alpha-2 country code, e.g. DE.",
"maxLength": 2,
"minLength": 2,
"type": "string"
}
},
"required": [
"country_code"
],
"type": "object"
},
"name": "get_vansky_weather",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"country": {
"description": "Country: ISO alpha-2 code, slug or zone code, e.g. georgia or GE.",
"type": "string"
}
},
"required": [
"country"
],
"type": "object"
},
"name": "get_vehicle_import_rules",
"outputSchema": null
},
{
"description": "List vanlife events: expos (Caravan Salon), festivals, meetups, forums, road trips. Filter by status, type, country, or free-text search.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"country": {
"description": "ISO 3166-1 alpha-2 country code.",
"maxLength": 2,
"minLength": 2,
"type": "string"
},
"limit": {
"default": 15,
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"locale": {
"default": "en",
"description": "Language for localized fields.",
"enum": [
"en",
"ru",
"de",
"fr",
"es",
"pt",
"tr"
],
"type": "string"
},
"search": {
"description": "Free-text search in event name.",
"type": "string"
},
"status": {
"default": "upcoming",
"description": "Event time status.",
"enum": [
"upcoming",
"ongoing",
"past",
"all"
],
"type": "string"
},
"type": {
"description": "Event type filter.",
"enum": [
"expo",
"festival",
"forum",
"meetup",
"roadtrip"
],
"type": "string"
}
},
"type": "object"
},
"name": "list_events",
"outputSchema": null
},
{
"description": "Countries whose license plates are available: international code, number of regions and an example plate.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"locale": {
"description": "Language of country and region names. Default en.",
"enum": [
"en",
"ru",
"de",
"es",
"fr",
"pt",
"tr"
],
"type": "string"
}
},
"type": "object"
},
"name": "list_license_plate_countries",
"outputSchema": null
},
{
"description": "List the top N countries with the highest VanSky van-travel suitability score today.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"limit": {
"default": 10,
"description": "How many top-scoring countries to return.",
"maximum": 20,
"minimum": 1,
"type": "integer"
}
},
"type": "object"
},
"name": "list_vansky_top",
"outputSchema": null
},
{
"description": "Search aggregated vanlife news stories (7 languages, 400+ sources). Filter by search query, category, country, locale.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"category": {
"description": "Category slug, e.g. camping, travel, gear, festival, industry.",
"type": "string"
},
"country": {
"description": "ISO 3166-1 alpha-2 country code.",
"maxLength": 2,
"minLength": 2,
"type": "string"
},
"limit": {
"default": 10,
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"locale": {
"default": "en",
"enum": [
"en",
"ru",
"de",
"fr",
"es",
"pt",
"tr"
],
"type": "string"
},
"search": {
"description": "Full-text search in story title.",
"type": "string"
}
},
"type": "object"
},
"name": "search_stories",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:34c454ffa6c272d8868e4d4afdd57597ca1a6944b90aacf462d55d9e467272cd | sha256sum