公共交通数据服务

一个提供爱沙尼亚公共交通时间表、行程规划、站点搜索和实时车辆追踪的MCP服务器。

  • by a-rank
  • Python
  • 混合部署
  • 1 星标
  • 更新于
在 GitHub 查看 a-rank/estonian-transport-mcp

使用说明

爱沙尼亚交通MCP

一 主控程序 爱沙尼亚公共交通服务器——时间表、行程规划、站点搜索和实时车辆跟踪。

工具

工具 说明
search_stops 按名称搜索站点(例如“Viru”、“Balti jaam”)
get_departures 实时预测即将出发的航班
plan_trip 使用日期/时间选项在两个坐标之间计划行程
nearby_stops 查找某个位置半径范围内的站点
get_route 获取路线详细信息,包括所有停车模式
get_trip_stops 获取特定行程的完整时间表——所有停靠站的到达/离开时间
tallinn_vehicles 塔林公共汽车、有轨电车和无轨电车的实时GPS位置

先决条件

此服务器通过运行 uvx,一个零安装Python包运行器。安装 uv 第一:

# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

# or via Homebrew
brew install uv

无需其他设置-- uvx 首次运行时自动下载依赖项。

用法

克劳德代码

添加到MCP设置(.claude/settings.json 或项目级别 .mcp.json):

{
  "mcpServers": {
    "estonian-transport": {
      "command": "uvx",
      "args": ["estonian-transport-mcp"]
    }
  }
}

克劳德桌面

配置文件位置:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • 视窗: %APPDATA%\Claude\claude_desktop_config.json

添加到 mcpServers 章节:

{
  "mcpServers": {
    "estonian-transport": {
      "command": "uvx",
      "args": ["estonian-transport-mcp"]
    }
  }
}

备注:Claude Desktop可能找不到 uvx 在其路径中。如果服务器无法启动,请更换 "uvx" 完整的路径。通过跑步找到它 which uvx 在终端中,然后使用该路径:

{
  "mcpServers": {
    "estonian-transport": {
      "command": "/Users/yourname/.local/bin/uvx",
      "args": ["estonian-transport-mcp"]
    }
  }
}

保存配置后重新启动Claude Desktop。

远程服务器(HTTP)

作为HTTP服务器运行以进行远程访问(例如,从移动设备上的claude.ai/code):

estonian-transport-mcp --transport streamable-http --port 8000

然后使用URL从任何MCP客户端连接到它 http://your-server:8000/mcp.

在VPS上使用systemd进行部署的示例:

[Unit]
Description=Estonian Transport MCP
After=network.target

[Service]
ExecStart=/home/user/.local/bin/estonian-transport-mcp --transport streamable-http --port 8000
Restart=always
User=user

[Install]
WantedBy=multi-user.target

手动测试

# stdio mode (default)
uvx estonian-transport-mcp

# HTTP mode
uvx estonian-transport-mcp --transport streamable-http --port 8000

使用MCP检查器进行交互式测试:

npx @modelcontextprotocol/inspector uvx estonian-transport-mcp

数据源和API

Peatus.ee-OpenTripPlanner GraphQL API

  • 端点: https://api.peatus.ee/routing/v1/routers/estonia/index/graphql
  • 协议:基于HTTP POST的GraphQL
  • 认证:无(开放获取)
  • 维护:Transpardiame(爱沙尼亚交通管理局)
  • 覆盖:爱沙尼亚所有公共交通工具——全国范围内的公共汽车、有轨电车、无轨电车、火车和渡轮
  • 数据:站点搜索、出发时间、行程规划、路线模式、实时到达预测
  • 基于: OpenTripPlanner 和 数字翻译
  • 基础数据:整合了爱沙尼亚所有运输运营商的国家GTFS数据

工具使用: search_stops, get_departures, plan_trip, nearby_stops, get_route

塔林交通——实时车辆GPS

  • 端点: https://transport.tallinn.ee/gps.txt
  • 协议:纯文本CSV通过HTTP GET
  • 认证:无(开放获取)
  • 更新频率:约10秒
  • 覆盖:仅限塔林市-TLT(Tallinna Linnatransport)运营的公共汽车、有轨电车和无轨电车
  • 数据:车辆类型、线路编号、GPS坐标(WGS84微粒)、航向、车辆ID、目的地
  • 格式:每条线路都是一辆车: type,line,lon,lat,,heading,vehicle_id,status,unknown,destination
    • 车辆类型: 1 =无轨电车, 2 =公共汽车, 3 =有轨电车
    • 坐标:整数微格(小数除以1000000)
    • 标题 999 =未知

工具使用: tallinn_vehicles

技术栈

  • python 和 FastMCP (mcp[cli])
  • httpx 用于异步HTTP请求
  • 运输:stdio(用于本地集成的标准MCP传输)