OpenVan MCP Server
OpenVan.camp 公共 API
免费、无需身份验证的房车生活数据 API:燃油价格、货币汇率、食品成本指数、房车生活活动和新闻报道——所有数据汇集于一处,无需注册。
基础 URL: https://openvan.camp
身份验证: 无需
CORS: 已启用
许可协议: CC BY 4.0
JavaScript/TypeScript SDK: @openvancamp/sdk — npm install @openvancamp/sdk。零配置、类型化,支持 Node.js / 浏览器 / 边缘计算。SDK 文档 →
MCP 服务器(供 AI 代理使用): mcp-server/ — 托管于 https://mcp.openvan.camp/mcp,也可使用 npx -y mcp-remote https://mcp.openvan.camp/mcp 供 Claude Desktop / Cursor / Windsurf 使用。安装文档 →
自定义 GPT: OpenVan Travel Assistant — 已在 ChatGPT GPT Store 上线。
权威资源
资源 | 用途 |
本 README | 快速概览和代码示例 |
带有“试一试”功能的交互式文档 | |
完整的 OpenAPI 3.0 契约(始终保持最新) | |
Postman 集合 |
位于 /docs.openapi 的 OpenAPI 规范是从实时代码库生成的,是权威的契约。本 README 中的数字(国家/地区数量、报道总数)均为近似值,会定期更新——请查看 /api/fuel/prices 元数据或 /api/stories 分页以获取当前总数。
Related MCP server: euenergy-mcp
端点
端点 | 描述 | 覆盖范围 |
| 零售燃油价格(汽油、柴油、LPG、E85) | 120+ 国家/地区 |
| 相对于欧元的汇率 | 150+ 货币 |
| 相对于世界平均水平的食品价格指数(100 = 世界平均) | 90+ 国家/地区 |
| 比较两个国家之间的食品成本 | — |
| 单个国家/地区 + 历史快照 | — |
| 房车生活活动:博览会、节日、聚会、公路旅行 | 695 个活动 |
| 包含地理坐标的完整活动详情 | — |
| 与活动关联的来源文章 | — |
| 从 200 多家出版商聚合的新闻报道 | 8200+ 报道 |
| 包含所有来源文章和直接链接的完整报道 | — |
快速入门
# Fuel prices
curl https://openvan.camp/api/fuel/prices
# Currency rates (EUR-based)
curl https://openvan.camp/api/currency/rates
# Food price index
curl https://openvan.camp/api/vanbasket/countries
# Upcoming vanlife events in Germany
curl "https://openvan.camp/api/events?country=DE&status=upcoming&locale=en"
# Latest vanlife news stories in English
curl "https://openvan.camp/api/stories?locale=en"燃油价格 — /api/fuel/prices
来自 45 个以上官方政府来源的每周零售价格。
缓存 TTL: 6 小时。请勿以超过每 10 分钟一次的频率轮询。
curl https://openvan.camp/api/fuel/prices{
"success": true,
"data": {
"DE": {
"country_code": "DE",
"country_name": "Germany",
"region": "europe",
"currency": "EUR",
"local_currency": "EUR",
"unit": "liter",
"prices": {
"gasoline": 1.79,
"diesel": 1.69,
"lpg": 0.89,
"e85": null,
"premium": null
},
"price_changes": { "gasoline": -0.02, "diesel": 0.01, "lpg": 0.0 },
"fetched_at": "2026-04-05T10:00:00+00:00",
"sources": ["EU Weekly Oil Bulletin", "Fuelo.net"],
"sources_count": 2,
"is_excluded": false
}
},
"meta": {
"total_countries": 121,
"updated_at": "2026-04-05 10:00:00",
"cache_ttl_hours": 6
}
}注意:
大多数国家的
unit为"liter"(升),美国和厄瓜多尔为"gallon"(加仑)is_excluded: true表示该国拥有高额燃油补贴(价格不能反映市场利率)price_changes= 与上周价格的差值
货币汇率 — /api/currency/rates
来自多个开源提供商的基于欧元的汇率,具有自动回退功能。
缓存 TTL: 25 小时。每天 07:00 UTC 刷新。
curl https://openvan.camp/api/currency/rates{
"success": true,
"rates": {
"EUR": 1,
"USD": 1.08,
"GBP": 0.85,
"TRY": 38.5,
"GEL": 2.95,
"KZT": 510,
"RUB": 98.5
},
"cached": true,
"updated_at": "2026-04-08T07:00:00+00:00"
}转换为任何货币:
const priceInUSD = (priceEUR / rates.EUR) * rates.USD;
const priceInTRY = (priceEUR / rates.EUR) * rates.TRY;VanBasket 食品价格指数 — /api/vanbasket/*
与世界平均水平相比的食品篮子相对成本(世界 = 100)。
基于世界银行 2021 年 ICP 数据,并根据 IMF CPI 进行调整。
数据来源: CC BY 4.0
# All countries
curl https://openvan.camp/api/vanbasket/countries
# Compare two countries
curl "https://openvan.camp/api/vanbasket/compare?from=DE&to=TR"
# Single country with historical snapshots
curl https://openvan.camp/api/vanbasket/countries/DE{
"success": true,
"data": {
"CH": { "country_code": "CH", "country_name": "Switzerland", "vanbasket_index": 162.3, "pct_vs_world": 62.3 },
"DE": { "country_code": "DE", "country_name": "Germany", "vanbasket_index": 118.7, "pct_vs_world": 18.7 },
"TR": { "country_code": "TR", "country_name": "Turkey", "vanbasket_index": 82.4, "pct_vs_world": -17.6 },
"GE": { "country_code": "GE", "country_name": "Georgia", "vanbasket_index": 64.1, "pct_vs_world": -35.9 }
},
"meta": {
"total_countries": 92,
"world_avg": 100,
"base_year": 2021,
"source": "World Bank ICP 2021",
"license": "CC BY 4.0"
}
}比较响应:
{
"success": true,
"data": {
"from": { "country_code": "DE", "country_name": "Germany", "vanbasket_index": 118.7 },
"to": { "country_code": "TR", "country_name": "Turkey", "vanbasket_index": 82.4 },
"diff_percent": -30.6,
"budget_100": 69,
"cheaper": true
}
}budget_100:如果您在 from 国家/地区花费 100 欧元购买食品,那么在 to 国家/地区您将花费 69 欧元。
活动 — /api/events
房车生活活动:展览、节日、聚会、公路旅行。实时更新。
查询参数:
参数 | 值 | 默认值 |
|
|
|
|
|
|
|
| — |
| ISO 3166-1 alpha-2 | — |
| 文本 | — |
| 整数 |
|
| 整数(最大 100) |
|
# Upcoming events in Germany
curl "https://openvan.camp/api/events?country=DE&status=upcoming&locale=en"
# Event details
curl "https://openvan.camp/api/event/fit-camper-2026?locale=en"
# Source articles linked to an event
curl "https://openvan.camp/api/event/fit-camper-2026/articles?locale=en"{
"events": [
{
"id": 493,
"slug": "fit-camper-2026",
"event_name": "Fit Your Camper",
"event_type": "expo",
"event_type_label": "Exhibition",
"start_date": "2026-04-09",
"end_date": "2026-04-12",
"city": "Bologna",
"country_code": "IT",
"country": { "code": "it", "name": "Italy", "flag_emoji": "🇮🇹" },
"venue_name": "BolognaFiere",
"status": "upcoming",
"articles_count": 7,
"url": "https://openvan.camp/en/event/fit-camper-2026"
}
],
"pagination": { "total": 48, "page": 1, "limit": 30, "pages": 2 }
}注意:
未知或缺失的
locale会静默回退到en/api/event/{slug}/articles返回按locale过滤的来源文章;如果没有匹配项,则返回所有文章(可能使用原始出版商语言)
报道 / 新闻 — /api/stories
从 200 多家出版商聚合的房车生活新闻报道,并翻译成 7 种语言。每篇报道都汇集了多篇涵盖同一主题的来源文章。
查询参数:
参数 | 值 | 默认值 |
|
|
|
| 分类 slug(例如 | — |
| ISO 3166-1 alpha-2 | — |
| 文本 | — |
| 整数 |
|
| 整数(最大 50) |
|
# Latest stories in English
curl "https://openvan.camp/api/stories?locale=en"
# German vanlife news in Germany
curl "https://openvan.camp/api/stories?locale=de&country=DE"
# Full story with all source links
curl "https://openvan.camp/api/story/free-overnight-parking-netherlands?locale=en"{
"slug": "free-overnight-parking-netherlands",
"title": "Free Overnight Parking for Motorhomes in the Netherlands",
"summary": "The Dutch motorhome community is pushing for more designated free overnight spots...",
"image_url": "https://...",
"category": { "slug": "travel", "name": "Travel" },
"countries": [{ "code": "nl", "name": "Netherlands", "flag_emoji": "🇳🇱" }],
"first_published_at": "2026-04-01T10:00:00+00:00",
"last_updated_at": "2026-04-03T08:00:00+00:00",
"articles_count": 5,
"url": "https://openvan.camp/en/news/travel/free-overnight-parking-netherlands",
"sources": [
{
"title": "Gratis overnachten in je camper: de beste plekken",
"original_url": "https://www.campermagazine.nl/overnachten/gratis-plaatsen",
"source_name": "CamperMagazine.nl",
"published_at": "2026-04-01T10:00:00+00:00",
"language": "nl",
"image_url": "https://..."
}
]
}注意:
title和summary会被翻译成请求的localesources[].language始终是原始出版商语言,与locale无关sources[].original_url是指向出版商文章的直接链接
响应格式
所有 JSON 端点都遵循一致的信封格式:
{ "success": true, "data": { ... }, "meta": { ... }, "_attribution": { ... } }每个响应都包含一个 _attribution 对象:
"_attribution": {
"data_source": "openvan.camp",
"license": "CC BY 4.0",
"attribution_url": "https://openvan.camp/",
"attribution_html": "Data: <a href=\"https://openvan.camp/\">OpenVan.camp</a> (CC BY 4.0)"
}错误:
{ "success": false, "error": "Description of the error." }如果您在调用时没有发送 Accept: application/json,某些错误响应可能会返回 HTML。请务必发送该标头:
Accept: application/json速率限制
每个 IP 每分钟 120 次请求。请负责任地使用:
缓存燃油价格至少 6 小时
缓存货币汇率至少 1 小时
缓存报道/活动至少 15 分钟
归属说明
CC BY 4.0 要求。建议格式:
Data: <a href="https://openvan.camp/">OpenVan.camp</a> — CC BY 4.0标识您的集成
在任何请求中传递 ?source=yoursite.com — 无需注册。您的值将作为 _attribution.your_source 返回,以便您可以验证它是否正常工作:
curl "https://openvan.camp/api/fuel/prices?source=myapp.com"{
"success": true,
"data": { "..." },
"meta": { "..." },
"_attribution": {
"data_source": "openvan.camp",
"license": "CC BY 4.0",
"attribution_url": "https://openvan.camp/",
"attribution_html": "Data: <a href=\"https://openvan.camp/\">OpenVan.camp</a> (CC BY 4.0)",
"your_source": "myapp.com"
}
}这有助于我们了解数据的使用方式并确认活跃的项目。
JavaScript / TypeScript SDK
npm install @openvancamp/sdk
# or: pnpm add @openvancamp/sdkimport { OpenVan } from "@openvancamp/sdk";
const ov = new OpenVan();
// Cheapest diesel in Europe (top 5, EUR-normalized)
const top5 = await ov.fuel.cheapest("diesel", 5);
top5.forEach(c => console.log(c.country_name, c.prices.diesel, c.currency));
// Is Portugal cheaper than Germany for van living?
const comp = await ov.basket.compare("DE", "PT");
console.log(`Portugal is ${Math.abs(comp.diff_percent)}% cheaper`);
// Vanlife weather suitability — top 10 countries right now
const weather = await ov.weather.top({ limit: 10 });原生 ESM,完全类型化(包含 TypeScript),适用于 Node.js ≥ 18、浏览器、Cloudflare Workers、Deno、Bun。无需 API 密钥。
npm: @openvancamp/sdk · 完整 SDK 文档 →
资源
交互式文档: https://openvan.camp/docs
OpenAPI 3.0 规范: https://openvan.camp/docs.openapi
Postman 集合: https://openvan.camp/docs.postman
JavaScript SDK: https://www.npmjs.com/package/@openvancamp/sdk
This server cannot be deployed
Maintenance
Related MCP Connectors
Remote streamable-HTTP MCP server running on a single Cloudflare Worker. Your assistant gets live Airbnb, Amazon, Booking.com, Google Flights, Maps and Reddit data, social search on X, Instagram and TikTok, the Meta Ad Library, and image/video generation without any keys. Connect your own accounts to let it send WhatsApp or Telegram messages, work an IMAP inbox, manage Meta Ads campaigns and publish to X and LinkedIn. OAuth 2.1 with PKCE; stored credentials are AES-256-GCM encrypted.
17 Base data tools for agents over Streamable HTTP MCP. Pay per call in USDC via x402; no API key.
AI Reasoning Cache & Consensus Layer with 11 MCP tools via Streamable HTTP.
The official Model Context Protocol server for Ambee. It gives any MCP-compatible AI assistant — Claude, ChatGPT, Cursor, VS Code, Ollama, and more direct access to live air quality, pollen, and weather data. To get started, including information on signing up and obtaining your Ambee key, check out the Ambee documentation on https://docs.ambeedata.com
Related MCP Servers
- FlicenseAqualityDmaintenanceA Model Context Protocol (MCP) server that provides weather data using the OpenWeather One Call API 3.0. This server allows AI agents to access current weather, forecasts, and historical weather data for any location.313 npm-
- FlicenseNot gradedqualityCmaintenanceA read-only MCP server that exposes European day-ahead electricity prices for ~41 bidding zones via tools like hourly prices, cheapest hours, current price, and cross-zone summary, enabling AI agents to query energy market data.1-
- AlicenseCqualityDmaintenanceA Model Context Protocol server exposing 58 online tools (crypto, data, image, text, etc.) and workflow execution, enabling MCP clients like Claude Desktop to invoke them via natural language.584 npmMIT
- FlicenseAqualityCmaintenanceMCP server that exposes real-time weather, forecasts, air quality, and multi-city comparison tools via the OpenWeather API for LLM agents.4-