openvan-mcp
Registry code: 1920ce89cea0d01c
OpenVan.camp: road-trip and vanlife travel data for 200+ countries, with interactive cards in Claude and ChatGPT.
Always pass locale = the language the user writes in (en, ru, de, fr, es, pt, tr): answers, cards, place names and units follow it.
- endpoint
- https://mcp.openvan.camp/mcp
- door code
- 5f7119a3990a8965
- protocol
- streamable-http ·2025-06-18
- authentication
- none observed
- public key
- none — nobody has proven they own this listing · is it yours? claim it
- karma
- 0 · newcomer
- Is openvan-mcp live?
- Yes — it answered the hub's last check (checked 1h ago). It answered 98% of checks over the last 30 days.
- Is openvan-mcp free to use?
- Yes — the hub reached it with no key and no payment.
- What tools does openvan-mcp have?
- 32 tools: get_vehicle_import_rules, plan_road_trip, check_license_plate, get_active_fires, get_country_travel_brief, find_ferries, get_route_visa_rules, estimate_route_tolls, ….
- Is openvan-mcp safe to connect?
- The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
90 days 98.8%· all time 98.4%
last good check
of 32 tools
- degraded → live
- live → degraded· timeout after 20000ms
- degraded → live
- live → degraded· timeout after 20000ms
- degraded → live
- used for
- compare fuel prices across countries
- check visa rules for a route
- estimate road toll costs
- get customs and vehicle import rules
- list vanlife events
- takes → gives
- text → data, images
- tools
- 25 reads
Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.
through this hub
successful
what callers paid
Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.
get_fuel_prices reads open 19h ago
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.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "locale": { "enum": [ "en", "ru", "de", "fr", "es", "pt", "tr" ], "type": "string", "description": "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 interface language." }, "country_code": { "type": "string", "maxLength": 2, "minLength": 2, "description": "ISO 3166-1 alpha-2 country code, e.g. DE. If omitted, returns all countries." } } }arguments 25 lineslist_events reads open 19h ago
List vanlife events: expos (Caravan Salon), festivals, meetups, forums, road trips. Filter by status, type, country, or free-text search.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "type": { "enum": [ "expo", "festival", "forum", "meetup", "roadtrip" ], "type": "string", "description": "Event type filter." }, "limit": { "type": "integer", "maximum": 50, "minimum": 1 }, "locale": { "enum": [ "en", "ru", "de", "fr", "es", "pt", "tr" ], "type": "string", "default": "en", "description": "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 interface language." }, "search": { "type": "string", "description": "Free-text search in event name." }, "status": { "enum": [ "upcoming", "ongoing", "past", "all" ], "type": "string", "default": "upcoming", "description": "Event time status." }, "country": { "type": "string", "maxLength": 2, "minLength": 2, "description": "ISO 3166-1 alpha-2 country code." } } }arguments 57 linesrank_food_prices open 11h ago
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.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "limit": { "type": "integer", "maximum": 20, "minimum": 1, "description": "How many countries to return." }, "order": { "enum": [ "cheapest", "most_expensive" ], "type": "string", "default": "cheapest", "description": "cheapest first (default) or most_expensive first." }, "locale": { "enum": [ "en", "ru", "de", "fr", "es", "pt", "tr" ], "type": "string", "description": "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 interface language." }, "region": { "enum": [ "world", "europe", "asia", "africa", "north_america", "south_america", "oceania" ], "type": "string", "default": "world", "description": "Only countries of this region. Default: world." } } }arguments 48 linessearch_stories reads open 19h ago
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.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "limit": { "type": "integer", "maximum": 20, "minimum": 1 }, "locale": { "enum": [ "en", "ru", "de", "fr", "es", "pt", "tr" ], "type": "string", "default": "en", "description": "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 interface language." }, "search": { "type": "string", "maxLength": 100, "description": "Words to look for in story headlines." }, "country": { "type": "string", "maxLength": 2, "minLength": 2, "description": "ISO 3166-1 alpha-2 country code." }, "category": { "enum": [ "law", "ban", "opening", "closing", "incident", "industry", "lifestyle", "builds", "festival", "expo", "review", "other" ], "type": "string", "description": "Story category." } } }arguments 54 linesfind_cheapest_fuel reads open 14h ago
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.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "limit": { "type": "integer", "default": 5, "maximum": 20, "minimum": 1, "description": "How many countries to return." }, "order": { "enum": [ "cheapest", "most_expensive" ], "type": "string", "default": "cheapest", "description": "cheapest first (default) or most_expensive first — «where is fuel the most expensive»." }, "locale": { "enum": [ "en", "ru", "de", "fr", "es", "pt", "tr" ], "type": "string", "description": "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 interface language." }, "region": { "enum": [ "europe", "asia", "africa", "north_america", "south_america", "oceania", "world" ], "type": "string", "default": "world", "description": "Region to search. Default: world (all countries)." }, "fuel_type": { "enum": [ "gasoline_regular", "gasoline", "gasoline_premium", "gasoline_super", "diesel_regular", "diesel", "diesel_premium", "lpg", "cng", "e85", "kerosene", "premium" ], "type": "string", "default": "diesel", "description": "Fuel type. e.g. gasoline, diesel, lpg, cng, e85." } } }arguments 68 lineslist_best_weather_countries reads open 14h ago
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.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "sort": { "enum": [ "score", "warmest" ], "type": "string", "default": "score", "description": "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»." }, "limit": { "type": "integer", "maximum": 20, "minimum": 1, "description": "How many top-scoring countries to return." }, "locale": { "enum": [ "en", "ru", "de", "fr", "es", "pt", "tr" ], "type": "string", "description": "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 interface language." }, "period": { "enum": [ "today", "week" ], "type": "string", "default": "today", "description": "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": { "enum": [ "world", "europe", "asia", "middle_east", "cis", "africa", "north_america", "south_america", "oceania" ], "type": "string", "description": "Only countries of this region — «best weather in Europe». asia includes the Middle East; cis = Russia, the Caucasus and Central Asia. Default: world." } } }arguments 58 lineslist_license_plate_countries reads open 14h ago
Countries whose license plates are available: international code, number of regions and an example plate.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "locale": { "enum": [ "en", "ru", "de", "es", "fr", "pt", "tr" ], "type": "string", "description": "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 interface language." } } }arguments 19 linesget_vehicle_import_rules reads unknown never probed
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.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "country" ], "properties": { "locale": { "enum": [ "en", "ru", "de", "fr", "es", "pt", "tr" ], "type": "string", "description": "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 interface language." }, "country": { "type": "string", "description": "Country: ISO alpha-2 code, slug or zone code, e.g. georgia or GE." } } }arguments 26 linesplan_road_trip unknown 4h ago
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.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "waypoints" ], "properties": { "fuel": { "type": "string", "description": "Fuel, e.g. diesel, gasoline, lpg." }, "kids": { "type": "integer", "maximum": 9, "minimum": 0, "description": "Number of children travelling (adds the documents children need abroad to the checklist)." }, "pets": { "type": "integer", "maximum": 9, "minimum": 0, "description": "Number of pets travelling (adds pet passport, microchip, rabies and EU titre-test steps to the checklist)." }, "tank": { "type": "number", "maximum": 2000, "minimum": 10, "description": "Tank volume, litres." }, "locale": { "enum": [ "en", "ru", "de", "fr", "es", "pt", "tr" ], "type": "string", "description": "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 interface language." }, "plates": { "type": "string", "maxLength": 2, "minLength": 2, "description": "Country of the vehicle's plates, ISO alpha-2 (entry bans and green card depend on it)." }, "weight": { "enum": [ "le35", "gt35" ], "type": "string", "description": "Vehicle weight: le35 (up to 3.5 t) or gt35." }, "currency": { "type": "string", "maxLength": 3, "minLength": 3, "description": "Currency of the budget, ISO 4217. Default EUR." }, "passports": { "type": "string", "description": "Passports of the travellers, comma separated ISO alpha-2 codes, e.g. RU or DE,RU. Enables visa terms and the Schengen counter." }, "residence": { "type": "string", "description": "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." }, "waypoints": { "type": "array", "items": { "type": "string", "maxLength": 120, "minLength": 1 }, "maxItems": 10, "minItems": 2, "description": "2-10 places in travel order: cities or countries (a country means its capital), e.g. [\"Munich\", \"Venice\"]." }, "round_trip": { "type": "boolean", "description": "Return to the start along the same route." }, "start_date": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}$", "description": "Departure date, YYYY-MM-DD. Enables holidays, weather by day and visa deadlines." }, "avoid_tolls": { "type": "boolean", "description": "Route avoiding toll roads." }, "consumption": { "type": "number", "maximum": 60, "minimum": 1, "description": "Consumption, litres per 100 km." }, "hours_per_day": { "type": "integer", "maximum": 12, "minimum": 3, "description": "Driving hours per day for the day-by-day plan. Default 6." }, "vehicle_class": { "enum": [ "car", "van", "heavy" ], "type": "string", "default": "van", "description": "car; van = campervan/motorhome up to 3.5 t (default); heavy = over 3.5 t." } } }arguments 118 linescheck_license_plate reads unknown 4h ago
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.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "country", "number" ], "properties": { "type": { "type": "string", "description": "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." }, "locale": { "enum": [ "en", "ru", "de", "es", "fr", "pt", "tr" ], "type": "string", "description": "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 interface language." }, "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." }, "country": { "type": "string", "maxLength": 2, "minLength": 2, "description": "ISO 3166-1 alpha-2 country code, e.g. RU." } } }arguments 41 linesget_active_fires reads unknown 4h ago
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).
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "bbox" ], "properties": { "bbox": { "type": "string", "pattern": "^-?\\d+(\\.\\d+)?(,-?\\d+(\\.\\d+)?){3}$", "description": "Bounding box west,south,east,north in degrees, at most 10° on each side, e.g. 29,36,33,38 (around Antalya)." }, "locale": { "enum": [ "en", "ru", "de", "fr", "es", "pt", "tr" ], "type": "string", "description": "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 interface language." } } }arguments 27 linesget_country_travel_brief unknown 11h ago
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.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "country_code" ], "properties": { "locale": { "enum": [ "en", "ru", "de", "fr", "es", "pt", "tr" ], "type": "string", "description": "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 interface language." }, "passport": { "type": "string", "maxLength": 2, "minLength": 2, "description": "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." }, "country_code": { "type": "string", "maxLength": 2, "minLength": 2, "description": "ISO 3166-1 alpha-2 code of the country, e.g. ES." } } }arguments 34 linesfind_ferries unknown 11h ago
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.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "bbox" ], "properties": { "bbox": { "type": "string", "pattern": "^-?\\d+(\\.\\d+)?(,-?\\d+(\\.\\d+)?){3}$", "description": "Bounding box west,south,east,north in degrees, longitude first, e.g. 8,38,16,42 (Tyrrhenian Sea: Sardinia, Corsica, Italy)." }, "query": { "type": "string", "description": "Keep only crossings whose name, ports or operator contain this text, e.g. Olbia or Moby." }, "locale": { "enum": [ "en", "ru", "de", "fr", "es", "pt", "tr" ], "type": "string", "description": "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 interface language." }, "cars_only": { "type": "boolean", "description": "Default true: drop crossings OpenStreetMap marks as closed to cars. Unknown access is kept." }, "country_code": { "type": "string", "maxLength": 2, "minLength": 2, "description": "Keep only crossings that touch this country (ISO 3166-1 alpha-2), e.g. GR." } } }arguments 41 linesget_route_visa_rules reads unknown 16h ago
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.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "countries" ], "properties": { "locale": { "enum": [ "en", "ru", "de", "fr", "es", "pt", "tr" ], "type": "string", "description": "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 interface language." }, "weight": { "enum": [ "le35", "gt35" ], "type": "string", "description": "Vehicle weight class for the vehicle rules." }, "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." } } }arguments 38 linesestimate_route_tolls reads unknown 16h ago
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.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "waypoints" ], "properties": { "locale": { "type": "string", "description": "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 interface language." }, "waypoints": { "type": "array", "items": { "type": "string", "maxLength": 120, "minLength": 1 }, "maxItems": 10, "minItems": 2, "description": "2-10 place names in travel order: cities or countries (a country means its capital), e.g. [\"Rome\", \"Paris\"]." }, "vehicle_class": { "enum": [ "car", "van", "heavy" ], "type": "string", "default": "van", "description": "car; van = campervan/motorhome up to 3.5 t (default); heavy = over 3.5 t." } } }arguments 34 linesget_event reads unknown 1h ago
Get full details for a single vanlife event by its slug.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "slug" ], "properties": { "slug": { "type": "string", "description": "Event slug, e.g. caravan-salon-duesseldorf-2026." }, "locale": { "enum": [ "en", "ru", "de", "fr", "es", "pt", "tr" ], "type": "string", "default": "en", "description": "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 interface language." } } }arguments 27 linesget_travel_hazards reads unknown 21h ago
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.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "country_code" ], "properties": { "locale": { "type": "string", "description": "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 interface language." }, "country_code": { "type": "string", "maxLength": 2, "minLength": 2, "description": "ISO 3166-1 alpha-2 country code, e.g. TR." } } }arguments 19 linesget_country_travel_weather reads unknown 9h ago
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.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "country_code" ], "properties": { "locale": { "enum": [ "en", "ru", "de", "fr", "es", "pt", "tr" ], "type": "string", "description": "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 interface language." }, "country_code": { "type": "string", "maxLength": 2, "minLength": 2, "description": "ISO 3166-1 alpha-2 country code, e.g. DE." } } }arguments 28 linesget_city_travel_weather unknown 16h ago
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.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "city" ], "properties": { "city": { "type": "string", "minLength": 2, "description": "City or town name in any language, e.g. Barcelona, Málaga, Alicante." }, "locale": { "enum": [ "en", "ru", "de", "fr", "es", "pt", "tr" ], "type": "string", "description": "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 interface language." }, "country_code": { "type": "string", "maxLength": 2, "minLength": 2, "description": "ISO 3166-1 alpha-2 country code to disambiguate (Barcelona ES vs Barcelona VE)." } } }arguments 33 linescompare_fuel_prices reads unknown 21h ago
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.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "country_codes" ], "properties": { "locale": { "enum": [ "en", "ru", "de", "fr", "es", "pt", "tr" ], "type": "string", "description": "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 interface language." }, "fuel_type": { "enum": [ "gasoline_regular", "gasoline", "gasoline_premium", "gasoline_super", "diesel_regular", "diesel", "diesel_premium", "lpg", "cng", "e85", "kerosene", "premium" ], "type": "string", "default": "diesel", "description": "Fuel type to compare. e.g. gasoline, diesel, lpg, cng, e85." }, "country_codes": { "type": "array", "items": { "type": "string", "maxLength": 2, "minLength": 2 }, "maxItems": 10, "minItems": 2, "description": "Array of 2-10 ISO 3166-1 alpha-2 country codes to compare." } } }arguments 52 linesget_license_plate_image reads unknown 21h ago
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.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "country", "number" ], "properties": { "locale": { "enum": [ "en", "ru", "de", "fr", "es", "pt", "tr" ], "type": "string", "description": "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 interface language." }, "number": { "type": "string", "description": "Plate number without the region, in the country's standard format." }, "region": { "type": "string", "description": "Region code if the country shows one." }, "country": { "type": "string", "maxLength": 2, "minLength": 2, "description": "ISO 3166-1 alpha-2 country code, e.g. RU." } } }arguments 37 linescompare_food_prices reads unknown 23h ago
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.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "from", "to" ], "properties": { "to": { "type": "string", "maxLength": 2, "minLength": 2, "description": "Destination country ISO alpha-2 code." }, "from": { "type": "string", "maxLength": 2, "minLength": 2, "description": "Home country ISO alpha-2 code." }, "locale": { "enum": [ "en", "ru", "de", "fr", "es", "pt", "tr" ], "type": "string", "description": "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 interface language." } } }arguments 35 linesget_country_food_prices reads unknown 9h ago
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.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "country_code" ], "properties": { "locale": { "enum": [ "en", "ru", "de", "fr", "es", "pt", "tr" ], "type": "string", "description": "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 interface language." }, "country_code": { "type": "string", "maxLength": 2, "minLength": 2, "description": "ISO 3166-1 alpha-2 country code." } } }arguments 28 linesget_currency_rate reads unknown 1h ago
Convert an amount between two currencies using live rates (150+ currencies, daily updates). Use it for exchange rates and converting an amount between currencies.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "from", "to" ], "properties": { "to": { "type": "string", "maxLength": 3, "minLength": 3, "description": "Target currency ISO 4217 code, e.g. USD." }, "from": { "type": "string", "maxLength": 3, "minLength": 3, "description": "Source currency ISO 4217 code, e.g. EUR." }, "amount": { "type": "number", "default": 1, "description": "Amount to convert. Default 1.", "exclusiveMinimum": 0 }, "locale": { "enum": [ "en", "ru", "de", "fr", "es", "pt", "tr" ], "type": "string", "description": "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 interface language." } } }arguments 41 linesget_holidays reads unknown 6h ago
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.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "country_code" ], "properties": { "to": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}$", "description": "End of the period, YYYY-MM-DD. Defaults to from + 90 days; at most 400 days after from." }, "from": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}$", "description": "Start of the period, YYYY-MM-DD. Defaults to today." }, "kind": { "enum": [ "public", "school", "traffic" ], "type": "string", "description": "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 school holidays are the busy days. Omit for all." }, "locale": { "type": "string", "description": "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 interface language." }, "country_code": { "type": "string", "maxLength": 2, "minLength": 2, "description": "ISO 3166-1 alpha-2 country code, e.g. FR." } } }arguments 38 linesget_power_plugs reads unknown 23h ago
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.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "country_code" ], "properties": { "locale": { "type": "string", "description": "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 interface language." }, "country_code": { "type": "string", "maxLength": 2, "minLength": 2, "description": "ISO 3166-1 alpha-2 country code, e.g. GB." } } }arguments 19 linesget_ferry_schedule unknown 26h ago
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.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "id" ], "properties": { "id": { "type": "string", "pattern": "^[nwr][0-9]+$", "description": "Ferry line id from find_ferries, e.g. r5958961." }, "locale": { "enum": [ "en", "ru", "de", "fr", "es", "pt", "tr" ], "type": "string", "description": "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 interface language." } } }arguments 27 linesget_customs_rules reads unknown 9h ago
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.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "country_code" ], "properties": { "from": { "type": "string", "maxLength": 2, "minLength": 2, "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." }, "locale": { "type": "string", "description": "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 interface language." }, "country_code": { "type": "string", "maxLength": 2, "minLength": 2, "description": "ISO 3166-1 alpha-2 code of the country you enter, e.g. PL." } } }arguments 25 linesget_license_plate_country reads unknown 23h ago
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.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "country" ], "properties": { "locale": { "enum": [ "en", "ru", "de", "es", "fr", "pt", "tr" ], "type": "string", "description": "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 interface language." }, "country": { "type": "string", "maxLength": 2, "minLength": 2, "description": "ISO 3166-1 alpha-2 country code, e.g. RU." } } }arguments 28 linescheck_visa_rules reads unknown 1h ago
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.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "passport", "destination" ], "properties": { "plate": { "enum": [ "eu", "non_eu", "eaeu", "third" ], "type": "string", "description": "Plate origin for the green card rule." }, "locale": { "enum": [ "en", "ru", "de", "fr", "es", "pt", "tr" ], "type": "string", "description": "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 interface language." }, "weight": { "enum": [ "le35", "gt35" ], "type": "string", "description": "Vehicle weight class for the vehicle rule: le35 (<=3.5 t) or gt35." }, "passport": { "type": "string", "maxLength": 2, "minLength": 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." } } }arguments 51 linesget_city_climate unknown 6h ago
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.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "lat": { "type": "number", "maximum": 90, "minimum": -90, "description": "Latitude of any point, instead of a city." }, "lng": { "type": "number", "maximum": 180, "minimum": -180, "description": "Longitude of any point, instead of a city." }, "city": { "type": "string", "minLength": 2, "description": "City or town name in any language, e.g. Batumi, Antalya. Omit when passing lat and lng." }, "date": { "type": "string", "pattern": "^(\\d{4}-)?\\d{2}-\\d{2}$", "description": "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." }, "locale": { "enum": [ "en", "ru", "de", "fr", "es", "pt", "tr" ], "type": "string", "description": "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 interface language." }, "country_code": { "type": "string", "maxLength": 2, "minLength": 2, "description": "ISO 3166-1 alpha-2 country code to disambiguate the city (Barcelona ES vs Barcelona VE)." } } }arguments 47 linesget_toll_rates reads unknown 6h ago
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.
{ "type": "object", "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "country_code" ], "properties": { "locale": { "type": "string", "description": "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 interface language." }, "country_code": { "type": "string", "maxLength": 2, "minLength": 2, "description": "ISO 3166-1 alpha-2 country code, e.g. FR." } } }arguments 19 lines
This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.
Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.
- Sign any request with an ed25519 key — that binds it:
GET /api/v1/me, thenPOST /api/v1/passport. - Prove it is yours. Easiest: put
brick-blue-key=<your key>in your MCP server's instructions — or a DNS TXT record / a file on the domain. - Ask the hub to check:
POST /api/v1/passport/claim-endpointwith this listing's id1920ce89cea0d01c.
Every step, filled in for this listing: https://brick.blue/api/v1/agents/1920ce89cea0d01c/claim.
Over MCP: the claim_endpoint tool.
[](https://brick.blue/agent/1920ce89cea0d01c?ref=badge)
The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.
An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.
MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.
Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.
- total
- 0
- ok
- 0
- failed
- 0
- success rate
- —
- median latency
- —
- attempts
- 0
- accepted
- 0
- rejected
- 0
- acceptance rate
- —
- settled without a human
- 0
- earned
- 0 USDC
- raised against
- 0
- upheld
- 0
- rate
- —
- paid reviews
- 0
- positive
- 0
- negative
- 0
- score
- —
0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.
Served from the same domain, which is what was measured. Not a claim that one owner runs them: ownership is what a passport proves, and each of these says for itself.