mcpField
U
Unoffiicial Mvg Public Transport Incidents Mcp Server (munich/germany)

Unoffiicial Mvg Public Transport Incidents Mcp Server (munich/germany)

本地服务
github.com/rmoriz地图与出行069 周前更新

关于 Unoffiicial Mvg Public Transport Incidents Mcp Server (munich/germany)

MVG Störung MCP 服务为 MCP 客户端提供慕尼黑公共交通事故信息,覆盖地铁、电车和公交。它从 MVG 官方 API 获取数据,缓存结果并支持按线路、标题或描述搜索。

主要功能

  1. 01获取当前交通事故
  2. 02缓存至少 10 分钟
  3. 03按线路、标题或描述搜索
  4. 04提供缓存状态与资源

适用场景

  1. 01查看慕尼黑公共交通当前事故
  2. 02查询特定线路的服务中断
  3. 03检查缓存状态或手动刷新数据

MCP 相关

该 MCP 服务向兼容客户端公开当前事故和缓存信息,并提供查询、搜索及缓存管理工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"mvg_stoerung_mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/rmoriz/mvg_stoerung_mcp:latest"
]
}
}
}
启动命令docker run -i --rm ghcr.io/rmoriz/mvg_stoerung_mcp:latest

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocighcr.io/rmoriz/mvg_stoerung_mcp:latest

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MVG Störung MCP 服务

一个模型上下文协议(MCP)服务,可缓存访问慕尼黑公共交通(MVG)的运营中断数据。

图片

功能

  • 缓存数据:自动缓存 MVG 运营事件数据,至少缓存 10 分钟,以减少 API 调用
  • 实时事件:从 MVG 官方 API 获取当前运营事件
  • 搜索功能:按线路、标题或描述搜索事件
  • 增强数据:添加易读的时间戳,并整理数据格式,方便使用
  • 兼容 MCP:可与任何兼容 MCP 的客户端配合使用

数据来源

此服务使用 MVG 官方 API 端点:https://www.mvg.de/api/bgw-pt/v3/messages

服务会筛选 API 响应,只返回运营事件(type=INCIDENT),并增强数据,包括:

  • 易读的时间戳
  • 格式化后的描述
  • 去重后的线路信息

安装

# Install dependencies
pip install -r requirements.txt

# Or install as a package
pip install -e .

用法

运行服务
python mvg_mcp_server.py
可用工具
  1. get_mvg_incidents:获取当前 MVG 运营事件(缓存 10 分钟以上)

    • 可选参数:force_refresh(布尔值)——即使缓存尚未过期,也强制刷新缓存
  2. get_cache_status:获取缓存状态信息

  3. search_incidents:按线路、标题或描述搜索事件

    • 必需参数:query(字符串)——搜索查询
    • 可选参数:line(字符串)——按指定线路筛选(例如,'U6'、'S1')
可用资源
  1. mvg://incidents:慕尼黑公共交通(MVG)的当前运营事件
  2. mvg://cache-info:当前缓存状态信息

使用示例

获取所有当前运营事件
{
  "method": "tools/call",
  "params": {
    "name": "get_mvg_incidents"
  }
}
搜索 U6 线路问题
{
  "method": "tools/call",
  "params": {
    "name": "search_incidents",
    "arguments": {
      "query": "verspätung",
      "line": "U6"
    }
  }
}
强制刷新缓存
{
  "method": "tools/call",
  "params": {
    "name": "get_mvg_incidents",
    "arguments": {
      "force_refresh": true
    }
  }
}

缓存行为

  • 缓存时长:至少 10 分钟(可配置)
  • 自动刷新:缓存过期时自动刷新
  • 强制刷新:可通过 force_refresh 参数手动触发
  • 缓存信息:查看缓存状态,包括过期时间和缓存条目数

数据格式

每个运营事件均包含:

  • title:事件标题
  • description:详细描述
  • type:始终为 "INCIDENT"
  • publication:发布时间戳(Unix 毫秒)
  • publication_readable:易读的发布时间
  • validFrom/validTo:有效期
  • validFrom_readable/validTo_readable:易读的有效时间
  • lines:受影响的交通线路及其详细信息
  • provider:始终为 "MVG"

错误处理

服务可处理各种错误情况:

  • API 超时和连接错误
  • 无效的 JSON 响应
  • 缓存过期
  • 缺失或格式错误的数据

开发

项目结构
├── mvg_mcp_server.py    # Main MCP server implementation
├── requirements.txt     # Python dependencies
├── pyproject.toml      # Project configuration
└── README.md           # This file
依赖项
  • mcp>=1.0.0:模型上下文协议框架
  • httpx>=0.25.0:异步 HTTP 客户端
  • pydantic>=2.0.0:数据验证与序列化

许可证

本项目依据 CC0 1.0 Universal 许可证奉献至公有领域。详情请参阅 LICENSE 文件。

贡献

欢迎贡献!欢迎提交问题和拉取请求。

免责声明

本项目并非 MVG 官方项目,也未获其认可或推荐。使用前请向 MVG 征求许可。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。