使用直接 HTTP 请求与运输 NSW API 交互的 Model Context Protocol (MCP) 服务实现。本项目可助力开发者便捷地与运输 NSW 的 API 进行交互,获取各类运输信息。
uv venv
uv sync
.env 文件并添加您的 API 密钥:OPEN_TRANSPORT_API_KEY=your_api_key_here
uv run mcp dev api.py
并访问服务器 http://localhost:5173(端口可能不同)。使用 uv 安装依赖:
uv venv
uv sync
创建 .env 文件并添加 API 密钥:
OPEN_TRANSPORT_API_KEY=your_api_key_here
from api import find_transport_stops
# 按名称搜索
stops = find_transport_stops(stop_name="Central Station")
# 按坐标(中央车站区域)搜索
central_station = '151.206290:-33.884080:EPSG:4326'
stops = find_transport_stops(coord=central_station, radius=500)
from api import get_transport_alerts
# 获取所有当前警报
alerts = get_transport_alerts()
# 获取特定日期的警报
date_alerts = get_transport_alerts(date='22-03-2025')
# 获取火车警报(mot_type=1)
train_alerts = get_transport_alerts(mot_type=1)
from api import get_departure_monitor
# 获取中央车站的出发信息
departures = get_departure_monitor("200060") # Central Station ID
# 获取特定时间的出发信息
from datetime import datetime
time_departures = get_departure_monitor("200060", time="15:30")
# 只获取火车出发信息
train_departures = get_departure_monitor("200060", mot_type=1) # 1 = 火车
MCP 示例即将推出。
该项目包含一个全面的演示脚本,展示所有 API 功能:
# 运行完整的演示
python demo.py
# 运行特定部分
python demo.py --stops # 停靠站查找演示
python demo.py --alerts # 运输警报演示
python demo.py --departures # 出发监控演示
使用 pytest 运行完整的测试套件:
uv run pytest
带有覆盖报告的测试:
uv run pytest --cov=api
GitHub Actions 自动为每个推送到主分支的推送和拉取请求运行测试。工作流程如下:
使用此功能的方法:
OPEN_TRANSPORT_API_KEY 添加为 GitHub 仓库机密。该项目使用 uv,一种用 Rust 编写的现代 Python 包管理器。依赖项通过以下方式管理:
pyproject.toml:定义项目依赖。uv.lock:锁定依赖版本以确保可重复环境。