ANWB交通信息服务器

一个为荷兰地区提供实时交通信息、路线规划和位置搜索的Model Context Protocol服务器。

  • by BartWaardenburg
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 BartWaardenburg/anwb-mcp

使用说明

anwb mcp

一个 模型上下文协议 (MCP) ANWB 在荷兰的交通信息、路线规划和位置搜索服务器。获取实时文件信息,使用分步路线计算路线,并搜索位置 - 所有这些都是通过人工智能应用程序中的自然语言。

让我们来: 这是一个非官方的,由社区维护的项目,不与ANWB相关或批准。此服务器使用公开可访问的 ANWB API 端点,不需要 API 密钥。

社区建设 模型上下文协议 (MCP)服务器,用于荷兰的ANWB交通信息、路线规划和位置搜索。获取实时交通事件,计算路线和转弯方向,并搜索位置——所有这些都是通过任何兼容MCP的AI客户端使用自然语言完成的。

注: 这是一个非官方的、由社区维护的项目,不隶属于ANWB或得到ANWB的认可。此服务器使用可公开访问的ANWB API终结点-不需要API密钥。

快速启动

你不需要克隆这个仓库。

  1. 确保安装了 Node.js 20+(您的 AI 应用程序正在运行) npx op-je机器)
  2. 将服务器添加为 AI 应用程序中的 MCP 服务器(复制下面的配置)
  3. 用简单的荷兰语提问(见 例子)

快速入门(非开发人员)

您不需要克隆此仓库。

  1. 确保已安装Node.js 20+(您的AI应用程序将运行 npx 在您的机器上)
  2. 将服务器作为MCP服务器添加到您的AI应用程序中(复制/粘贴下面的配置)
  3. 用通俗易懂的语言提问(见 示例用法)

添加到Claude桌面(也适用于协作)

Cowork在Claude Desktop内部运行,并使用相同的连接MCP服务器和权限。

  1. 打开您的Claude Desktop MCP配置文件:
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • 窗户: %APPDATA%\Claude\claude_desktop_config.json
  2. 添加此服务器条目(或将其合并到现有的 mcpServers):
{
  "mcpServers": {
    "anwb-mcp": {
      "command": "npx",
      "args": ["-y", "anwb-mcp"]
    }
  }
}
  1. 重新启动克劳德桌面

添加到其他AI应用程序

大多数MCP应用程序都有一个类似“添加MCP服务器”的屏幕,您可以在其中填写:

  • 命令: npx
  • Args: -y anwb-mcp

如果你的应用程序需要JSON,粘贴它并将顶级键名调整到你的客户端(常见的是 mcpServers, servers,或 context_servers):

{
  "<servers-key>": {
    "anwb-mcp": {
      "command": "npx",
      "args": ["-y", "anwb-mcp"]
    }
  }
}

故障排除

  • 错误: npx: command not found 或服务器无法启动
    • 修复:安装Node.js 20+并重新启动应用程序。
  • 空结果或连接错误
    • ANWB API可能暂时不可用。请稍等,然后重试。

特性

  • 6工具 涵盖交通、路线和位置搜索的3个类别
  • 位置搜索 --使用坐标查找地址、城市、街道和兴趣点
  • 路线规划 --按汽车、房车、自行车(普通或电动自行车)或步行计算路线,包括距离、持续时间、转弯方向、收费信息和替代路线
  • 电动汽车路线规划 --根据电池消耗、充电站以及与燃料相比的成本节约来规划电动汽车路线
  • 电动汽车数据库 --浏览1500多种带有电池规格的电动汽车型号,以进行电动汽车路线规划
  • 道路避让 --避开收费公路、高速公路、渡轮或未铺砌的道路
  • 交通事件 --荷兰高速公路上的实时拥堵、道路封闭、道路施工和测速摄像头位置
  • 交通量汇总 --所有高速公路当前交通状况的简明概述
  • 不需要API密钥 --使用可公开访问的ANWB端点
  • 输入验证 通过每个工具上的Zod模式实现安全、可预测的操作
  • 响应缓存 具有可配置的TTL(路线和事件为60秒,位置为300秒)
  • 费率限制处理 具有指数回退和 Retry-After 标头支持
  • 工具集过滤 仅公开所需的工具类别
  • Docker支持 通过GHCR进行集装箱化部署
  • 可操作的错误消息 具有上下文感知的恢复建议

支持的客户

Advanced setup and supported clients (expand)

此MCP服务器未绑定到一个编码代理。它适用于任何可以启动stdio MCP服务器的MCP兼容客户端或代理运行时。

客户端/运行时 文档
克劳德代码 克劳德代码中的MCP
人类API(信息API) 远程MCP服务器
Codex CLI(OpenAI) Codex CLI文档
Gemini CLI(谷歌) Gemini CLI MCP服务器文档
VS代码(副本) 在VS代码中使用MCP服务器
克劳德桌面 Claude Desktop中的MCP
光标 光标文档
风帆冲浪 Windsurf MCP文件
克莱恩 临床MCP文档
Zed Zed上下文服务器文档
任何其他MCP主机 使用命令/args 通用MCP服务器配置

设置(高级用户)

如果快速入门在您的客户中有效,您可以跳过此部分。

通用MCP服务器配置

在任何支持stdio服务器的MCP主机中使用此功能:

  • 命令: npx
  • Args: ["-y", "anwb-mcp"]
  • 可选环境变量: ANWB_CACHE_TTL, ANWB_MAX_RETRIES, ANWB_TOOLSETS (参见 配置)

主机密钥映射:

主持人 顶级密钥 备注
VS代码 servers 添加 "type": "stdio" 在服务器对象上
克劳德桌面/光标/风帆/克莱恩 mcpServers 相同的命令/args块
Zed context_servers 相同的命令/args块
食品法典委员会CLI(TOML) mcp_servers 使用TOML,如下所示

克劳德生态系统笔记

Claude目前有多个易于混淆的MCP相关概念:

  • 本地MCP服务器(克劳德桌面): 定义于 claude_desktop_config.json 然后在你的机器上开始(文档).
  • 合作: 重用Claude Desktop中连接的MCP服务器(文档).
  • 连接器: 在Claude中管理远程MCP集成(文档).
  • 协作插件: Claude特定的工作流打包(说明+工具/数据集成)(文档).在Claude中很有用,但不能作为其他代理客户端的通用MCP服务器配置进行移植。

根据供应商文件验证 2026-03-05.

克劳德代码

claude mcp add --scope user anwb-mcp -- npx -y anwb-mcp

Codex CLI(OpenAI)

codex mcp add anwb-mcp -- npx -y anwb-mcp

Gemini CLI(谷歌)

gemini mcp add anwb-mcp -- npx -y anwb-mcp

VS代码(副本)

打开命令选项板(Cmd+Shift+P / Ctrl+Shift+P) > MCP: Add Server > 命令(stdio),或使用 .vscode/mcp.json 使用顶级密钥 servers 以及来自的规范命令/args块 通用MCP服务器配置.

克劳德桌面+协作/光标/风帆/克莱恩/泽德

Cowork在Claude Desktop内部运行,并使用相同的连接MCP服务器和权限。在Claude Desktop中配置一次,服务器就可以在Cowork中使用。

使用规范配置块,并将其与匹配的顶级密钥一起放置在下面的主机文件中。

客户端 配置位置 顶级密钥
克劳德桌面(macOS) ~/Library/Application Support/Claude/claude_desktop_config.json mcpServers
克劳德桌面(Windows) %APPDATA%\\Claude\\claude_desktop_config.json mcpServers
光标(项目) .cursor/mcp.json mcpServers
光标(全局) ~/.cursor/mcp.json mcpServers
风帆冲浪 ~/.codeium/windsurf/mcp_config.json mcpServers
临床 MCP设置UI mcpServers
Zed(macOS/Linux) ~/.zed/settings.json 或 ~/.config/zed/settings.json context_servers

码头工人

docker run -i --rm ghcr.io/bartwaardenburg/anwb-mcp

Codex CLI(TOML配置替代)

[mcp_servers.anwb-mcp]
command = "npx"
args = ["-y", "anwb-mcp"]

其他MCP客户端

使用以下值 通用MCP服务器配置.

术语

什么是可跨主机移植的:

  • MCP服务器运行时设置(command, args, env)
  • 运输模型(stdio 命令服务器)
  • 此服务器公开的工具名称和工具模式

什么是特定于主机/供应商的(不可移植):

安全说明

  • 信任模型: 任何允许调用此MCP服务器的提示或代理都可以代表用户执行ANWB API操作。
  • 无需凭据: 此服务器使用可公开访问的ANWB端点,因此没有需要保护的秘密。然而,路线查询可能会揭示位置数据。
  • 团队配置治理: 将共享MCP配置保留在版本控制中,并要求检查命令/args/env/toolset过滤的更改。

配置

不需要API密钥。以下可选环境变量可用:

变量 描述 默认值
ANWB_CACHE_TTL 缓存TTL(秒)(设置为 0 禁用)。路线/事件使用60秒,地点使用300秒。 未设置
ANWB_MAX_RETRIES 具有指数回退的速率限制(429)请求的最大重试尝试次数。 3
ANWB_TOOLSETS 要启用的工具类别的逗号分隔列表(请参见 工具集筛选). 所有工具集

可用工具

位置

工具 说明
find_locations 搜索位置、地址、街道、城市和POI。返回对路线规划有用的坐标。支持按地理区域和索引集进行过滤。

路线

工具 说明
calculate_route 通过汽车、房车、自行车(普通/电动自行车)或步行计算两个或多个地点之间的路线。返回距离、持续时间、转弯方向、收费信息(汽车/房车)和替代路线。支持避开收费公路、高速公路、渡轮和未铺砌的道路。
calculate_ev_route 根据电池消耗、充电站和充电站建议规划电动汽车路线。需要电动汽车型号ID、电池容量和充电状态
list_ev_cars 从ANWB数据库中浏览可用的电动汽车型号。按品牌过滤或按型号名称搜索。返回汽车ID以供使用 calculate_ev_route.

事件

工具 说明
get_traffic_incidents 获取荷兰高速公路上当前的交通事件——堵塞、封闭、道路施工和测速摄像头。按道路和/或类别过滤。
get_traffic_summary 获取交通状况的简明摘要——所有高速公路上的拥堵、封闭、道路施工和雷达的总数。

工具集筛选

通过仅启用所需的工具类别来减少上下文窗口的使用。设置 ANWB_TOOLSETS 将环境变量转换为逗号分隔的列表:

ANWB_TOOLSETS=routes,incidents
工具集 包含的工具
locations 位置和地址搜索
routes 路线计算、电动汽车路线和电动汽车数据库
incidents 交通事故及总结

如果未设置,则启用所有工具集。无效名称将被忽略;如果所有名称都无效,则启用所有工具集作为回退。

例子

一旦连接,您可以用简单的荷兰语提问:

  • “搜索阿姆斯特丹附近的地点”
  • “Eindhoven Centraal的坐标是什么?”
  • “计算从阿姆斯特丹到埃因霍温的路线”
  • “计划从Utrecht Centraal到De Uithof的自行车路线”
  • “你要从水坝走多久才能到达Vondelpark公园?”
  • “从乌得勒支到海牙的最快路线是什么?”
  • “A2公路上有人吗?”
  • “现在有哪些道路工程?”
  • “交通摘要”
  • “A1上有哪些闪光灯?”
  • “计划从Ede到Zwolle没有收费公路的路线”
  • “计算从阿姆斯特丹到Veluwe的大篷车路线”
  • “计划从乌得勒支到阿默斯福特的电动自行车路线”
  • “特斯拉有哪些电动汽车?”
  • “使用特斯拉Model 3计划从阿姆斯特丹到马斯特里赫特的EV路线”
  • “如果没有高速公路,从鹿特丹到格罗宁根需要多长时间?”

示例用法

连接后,您可以使用自然语言与ANWB API进行交互:

  • “搜索阿姆斯特丹附近的地点”
  • “找到埃因霍温中心的坐标”
  • “计算从阿姆斯特丹到埃因霍温的路线”
  • “计划从Utrecht Centraal到De Uithof的自行车路线”
  • “从水坝广场步行到冯德尔公园需要多长时间?”
  • “从乌得勒支到海牙最快的路线是什么?”
  • “A2公路上有交通堵塞吗?”
  • “显示所有当前的道路工程”
  • “给我一个交通摘要”
  • “A1上有哪些测速摄像头?”
  • “规划一条从Ede到Zwolle的路线,避免通行费”
  • “计算从阿姆斯特丹到Veluwe的商队路线”
  • “规划从乌得勒支到阿默斯福特的电动自行车路线”
  • “特斯拉有哪些电动汽车?”
  • “用特斯拉Model 3规划从阿姆斯特丹到马斯特里赫特的电动汽车路线”
  • “从鹿特丹开车到格罗宁根避开高速公路需要多长时间?”

社区

发展

# Install dependencies
pnpm install

# Run in development mode
pnpm dev

# Build for production
pnpm build

# Run tests
pnpm test

# Type check
pnpm typecheck

项目结构

src/
  index.ts              # Entry point (stdio transport)
  server.ts             # MCP server setup and toolset filtering
  anwb-client.ts        # ANWB API HTTP client with caching and retry
  cache.ts              # TTL-based in-memory response cache
  types.ts              # TypeScript interfaces for ANWB API responses
  tool-result.ts        # Error formatting with recovery suggestions
  update-checker.ts     # NPM update notifications
  tools/
    locations.ts        # Location and address search
    routes.ts           # Route calculation with directions
    incidents.ts        # Traffic incidents and summary

需求

  • Node.js>=20

许可证

麻省理工学院-见 许可证 了解详情。