Skip to main content
Glama
openvancamp

OpenVan MCP Server

by openvancamp

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

快速概览和代码示例

/docs

带有“试一试”功能的交互式文档

/docs.openapi

完整的 OpenAPI 3.0 契约(始终保持最新)

/docs.postman

Postman 集合

位于 /docs.openapi 的 OpenAPI 规范是从实时代码库生成的,是权威的契约。本 README 中的数字(国家/地区数量、报道总数)均为近似值,会定期更新——请查看 /api/fuel/prices 元数据或 /api/stories 分页以获取当前总数。


Related MCP server: euenergy-mcp

端点

端点

描述

覆盖范围

GET /api/fuel/prices

零售燃油价格(汽油、柴油、LPG、E85)

120+ 国家/地区

GET /api/currency/rates

相对于欧元的汇率

150+ 货币

GET /api/vanbasket/countries

相对于世界平均水平的食品价格指数(100 = 世界平均)

90+ 国家/地区

GET /api/vanbasket/compare?from=DE&to=TR

比较两个国家之间的食品成本

—

GET /api/vanbasket/countries/{code}

单个国家/地区 + 历史快照

—

GET /api/events

房车生活活动:博览会、节日、聚会、公路旅行

695 个活动

GET /api/event/{slug}

包含地理坐标的完整活动详情

—

GET /api/event/{slug}/articles

与活动关联的来源文章

—

GET /api/stories

从 200 多家出版商聚合的新闻报道

8200+ 报道

GET /api/story/{slug}

包含所有来源文章和直接链接的完整报道

—


快速入门

# 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

房车生活活动:展览、节日、聚会、公路旅行。实时更新。

查询参数:

参数

值

默认值

locale

en ru de fr es pt tr

en

status

upcoming ongoing past all

upcoming

type

expo festival forum meetup roadtrip

—

country

ISO 3166-1 alpha-2

—

search

文本

—

page

整数

1

limit

整数(最大 100)

30

# 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 种语言。每篇报道都汇集了多篇涵盖同一主题的来源文章。

查询参数:

参数

值

默认值

locale

en ru de fr es pt tr

en

category

分类 slug(例如 camping, travel, gear, incident)

—

country

ISO 3166-1 alpha-2

—

search

文本

—

page

整数

1

limit

整数(最大 50)

20

# 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 会被翻译成请求的 locale

  • sources[].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/sdk
import { 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 文档 →


资源

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    D
    maintenance
    A 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.
    3
    13 npm
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    A 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
    -
  • A
    license
    C
    quality
    D
    maintenance
    A 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.
    58
    4 npm
    MIT

Appeared in Searches