驱动时间绘图仪MCP
模型上下文协议(MCP)服务器,使用谷歌地图API分析全天的交通模式,提供快速的视觉见解和建议。
受到激励 拥抱面孔MCP黑客马拉松 -用于智能通勤规划的生产就绪MCP服务器。
它做什么
- 以15分钟为间隔分析24小时内的交通模式
- 显示乐观/悲观/平均驾驶时间预测
- 使用并行API请求在约4秒内完成完整分析(比顺序请求快120倍!)
- 可与Claude Desktop、Claude Code和独立CLI配合使用
- 生成终端ASCII图和路线图
快速开始
1.安装
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
pip install -e .2.设置API密钥
从获取您的Google Maps API密钥https://console.cloud.google.com/apis/credentials
启用这些API:
- 地理编码API
- API指南
- 映射静态API
创建 .env 模板中的文件:
cp .env.example .env
# Edit .env and add your key:
# GOOGLE_MAPS_API_KEY=your_key_here3.测试
./test.sh您应该在大约4秒后看到流量分析!
______________________________________________________________________
用法
终端(最快)
./test_custom.sh编辑 test_custom.sh 自定义:
- 起点/终点(默认:加州大学伯克利分校埃文斯厅→ SFO)
- 日期
- 时间范围
- 间隔
或者直接使用CLI:
python cli/driveplot_fast.py \
--origin "Your Home" \
--destination "Your Work" \
--date 2025-11-20 \
--start 06:00 --end 10:00 \
--interval 15 \
--ascii --save-map outputs/route.png --yes使用Claude作为MCP服务器
添加到 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"drivetime-plotter": {
"command": "python",
"args": ["-m", "mcp_server.server"],
"env": {
"GOOGLE_MAPS_API_KEY": "your_key_here"
},
"cwd": "/path/to/mcp-hackathon"
}
}
}重新启动克劳德桌面。你现在可以问克劳德:“我什么时候从X开车到Y?”
______________________________________________________________________
运作原理
对于终端用户
- 跑
./test_custom.sh - 在约4秒内获得结果(并行API调用)
- 见两个输出:
- 彩色ANSI图 (美丽的终端可视化) - 简单文本绘图 (Claude Code使用+、o、\*字符的纯文本)
克劳德/克劳德代码
当你问“我什么时候从X开车到Y?”:
- 快速响应 (\10秒)**
→ 网络问题 → 稍后再试 → 默认值:30名工人→ 10 重试工人(可在代码中调整)
安装问题
运行MCP服务器时“找不到模块” → Run pip install -e . 以可编辑模式安装软件包
.sh文件上的“权限被拒绝” → Run chmod +x test.sh test_custom.sh
输出文件未保存 → Check outputs/ 文件夹已存在(自动创建) → 验证路径 --save-map 旗帜
______________________________________________________________________
成本
非常便宜!
- 完整的24小时查询(96分):~0.001美元
- 200美元/月免费信用=约200000次查询
- 在开发或正常使用过程中不会达到极限
______________________________________________________________________
黑客马拉松评委
我们建造了什么
用于流量分析的生产就绪MCP服务器,具有:
- ✅ 120倍加速 (10分钟→ 4 秒通过并行处理)
- ✅ 美丽的终端可视化 (双输出:ANSI+纯文本)
- ✅ 人性化的人工智能行为 (考虑睡眠/工作时间表)
- ✅ 智能重试逻辑 (当循环多轮时,只重试失败)
- ✅ 干净、可发布的代码 (最少的必要文件,全面的文档)
关键创新
- 双层响应系统
- 先快速回答(\<10秒) - 根据请求进行详细分析 - 防止缓慢、压倒性的反应
- 人类现实约束
- 不建议凌晨2点出发 - 考虑工作时间、睡眠需求 - 实际时间窗口
- 双输出格式
- 终端用户彩色ANSI - Claude Code响应的简单文本(+,o,\*) - 解决ANSI渲染限制
- API处理稳健
- 使用ThreadPoolExecutor的并行请求 - While循环重试(不仅仅是2次) - 智能并发减少(30→10个工人) - 失败后的优雅降级
轨道
轨道1:构建MCP
这是一个完整的、可用于生产的MCP服务器,它:
- 展示有用的工具(地理编码、eta_series、static_map)
- 解决实际问题(通勤计划、会议日程安排)
- 适用于Claude Desktop和Claude Code
- 拥有出色的文档
- 已准备好发布和使用
______________________________________________________________________
高级用法
自定义时间范围
python cli/driveplot_fast.py \
--origin "Your Home" \
--destination "Your Work" \
--date 2025-11-20 \
--start 06:00 --end 10:00 \ # Morning only
--interval 30 \ # Every 30 min
--ascii --yes不同的间隔
- 15分钟:详细分析(96个数据点,约4秒)
- 30分钟:平衡(48分,约2秒)
- 60分钟:快速概述(24分,约1秒)
将地图保存到输出/
python cli/driveplot_fast.py \
--origin "Berkeley, CA" \
--destination "San Francisco, CA" \
--date 2025-11-20 \
--ascii --save-map outputs/my_route.png --yes______________________________________________________________________
安全
✅ API密钥受保护:
- 存储在
.env(忽略) - 从未致力于版本控制
- 单一事实来源
- 易于旋转
- 提供模板(
.env.example)
✅ 没有硬编码的秘密 代码库中的任何位置
✅ 最佳实践:
- 通过python dotenv实现环境变量
- 代码和配置的明确分离
- 综合.gitignore
______________________________________________________________________
未来改进
扩展思路:
- 添加Apple Maps支持(已为此构建)
- 历史数据跟踪(比较随时间变化的交通模式)
- 日历集成(自动建议出发时间)
- 多路线比较(A与B)
- 带Gradio的Web UI(用于Track 2提交)
______________________________________________________________________
许可证
MIT许可证 -自由使用!
这是MCP服务器的标准许可证。请随意:
- 用于商业项目
- 修改和重新分发
- 整合到闭源软件中
______________________________________________________________________
鸣谢
为 拥抱脸MCP黑客马拉松(轨道1)
使用的技术:
- FastMCP -MCP服务器框架
- 谷歌地图平台API -地理编码、方向、静态地图
- 犁 -终端绘图
- 富有的 -漂亮的终端输出
- 线程池执行器 -并行API请求
______________________________________________________________________
问题?
对于问题或疑问:
- 检查上面的故障排除部分
- 验证您的
.env文件设置正确 - 跑
./test.sh验证安装 - 检查云控制台中是否启用了Google Maps API
