Transitland Transit MCP服务器
模型上下文协议(MCP)服务器,使用Transitland API和谷歌地图集成提供全面的交通信息。此工具允许您搜索交通信息、运营商、路线、站点和实时出发信息。
特性
- 定位服务:地理编码地址和反向地理编码坐标
- 过境饲料:搜索和检索GTFS提要信息
- 运营商和机构:按地点查找公交运营商和机构
- 路线:搜索具有过滤功能的过境路线
- 停止:按位置、名称或出发时间坐标查找站点
- 实时信息:获取实时出发时间和延误
- 行程计划:访问详细的行程和停车时间信息
安装
先决条件
- Python 3.8或更高版本
- pip包管理器
设置
- 克隆或下载项目
git clone
cd Transitland_Transit_MCP_Agent- 安装依赖项
pip install -r requirements.txt- 配置环境变量
复制示例环境文件:
cp .env.example .env编辑 .env 并添加您的API密钥:
# Transitland API Configuration
TRANSITLAND_API_KEY=your_transitland_api_key_here
# Google Maps API Configuration
GOOGLE_MAPS_API_KEY=your_google_maps_api_key_here获取API密钥
Transitland API密钥
- 访问 过境
- 注册一个账户
- 导航到仪表板以获取API密钥
- 将密钥添加到您的
.env文件
谷歌地图API密钥
- 转到 谷歌云控制台
- 创建新项目或选择现有项目
- 启用以下API:
- 地理编码API - 映射JavaScript API(可选,用于增强功能)
- 创建凭据(API密钥)
- 将密钥添加到您的
.env文件
用法
运行服务器
启动MCP服务器:
python server.py服务器将使用stdio传输运行,并可以与MCP兼容的客户端集成。
可用工具
定位服务
geocode_address(address)-将地址转换为坐标search_nearby_stops(latitude, longitude, radius, route_types, limit)-查找坐标附近的站点
交通信息
search_feeds(spec, search, limit)-搜索GTFS订阅源get_feed_details(feed_id)-获取详细的订阅源信息search_operators(search, adm0_name, adm1_name, city_name, limit)-查找操作员search_agencies(search, agency_name, adm0_name, adm1_name, limit)-查找代理机构search_routes(search, route_type, operator_onestop_id, include_geometry, limit)-查找路线search_stops(search, lat, lon, radius, served_by_route_types, limit)-查找站点
实时信息
search_stops_by_location_name(location_name, radius, route_types, limit)-查找指定位置附近的站点get_stop_departures(stop_id, next, include_alerts, limit)-获取出发时间find_stops_and_departures(location_name, radius, max_stops)-停车和出发联合搜索get_live_transit_info(location_name, radius)-综合实时交通信息
行程计划
get_route_trips(route_id, service_date, include_geometry, limit)-获取路线旅行get_trip_details(route_id, trip_id)-获取包含停车时间的详细行程信息
路线类型
使用路由类型筛选器时,请使用以下GTFS路由类型代码:
0-电车、有轨电车、轻轨1-地铁,地铁2-铁路3-公交车4-渡船5-缆车6-缆车7-缆车
示例用法
# Find transit stops near Times Square
result = await search_stops_by_location_name("Times Square, NYC", radius=500, limit=10)
# Get live departures for a specific area
info = await get_live_transit_info("Union Station, Chicago", radius=1000)
# Search for bus routes in a city
routes = await search_routes(search="downtown", route_type=3, limit=20)
# Get next departures from a stop
departures = await get_stop_departures("stop_id_here", next=5)项目结构
Transitland_Transit_MCP_Agent/
├── server.py # Main MCP server implementation
├── requirements.txt # Python dependencies
├── .env.example # Environment variables template
├── .env # Your API keys (create this)
└── README.md # This documentation依赖项
- fastmcp -MCP服务器框架
- httpx -API请求的异步HTTP客户端
- python dotenv -环境变量管理
安全说明
- 永远不要承诺你的
.env带有实际API密钥的文件 - 这
.env.example文件提交是安全的,因为它不包含真正的凭据 - 确保API密钥的安全并定期轮换
- 考虑对生产部署实施速率限制
故障排除
常见问题
- 缺少API密钥:确保您的
.env文件存在并且包含有效的API密钥 - 未找到模块:运行
pip install -r requirements.txt安装依赖项 - API费率限制:一些API有速率限制;必要时实施适当的延迟
- 没有结果:检查您的搜索参数是否有效,以及您所在地区是否存在交通数据
调试
通过设置环境变量启用调试日志记录:
export PYTHONPATH=.
export DEBUG=1
python server.py贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 彻底测试
- 提交拉取请求
作者
吉坦希·戈尔
许可证
这个项目是开源的。请检查存储库以了解许可证详细信息。
支持
对于问题和疑问:
- 检查上面的故障排除部分
- 查看 Transitland API文件
- 检查 谷歌地图API文档
- 在项目存储库中打开问题
