麦克普·加明
MCP服务器(Python)用于查询Garmin Connect数据并管理来自AI客户端的锻炼。
当前刀具表面(干净切削)
此服务器现在仅公开 3个MCP工具:
garmin_health_report
- 汇总一个日期的运行状况和性能数据。 - 支持 mode=summary (更少的API调用)和 mode=full (最大覆盖范围)。 - 返回稳定 summary 对象+ availableSections, unavailableSections,以及 errors.
garmin_manage_workout
- 锻炼管理操作的单一入口点: - create - list_scheduled - list_library - update - delete - apply_week_plan - create 和 update 支持结构化 steps 有效载荷(workout_step 和 repeat_group)因此,Garmin设备可以直接引导代表/时间/休息,而不仅仅是显示免费的文字注释。 - 如果 steps 以重复的速记方式到达(RONDA 1: ..., RONDA 2: ...),服务器将它们标准化为一个重复组,其中包含有序的儿童练习。 - 解析器还支持传统的重复语法(stepType: "repeat" + repeatIterations)并将其标准化为Garmin RepeatGroupDTO. - durationType: "lap_button" 可用于开放式步骤(在LAP出版社提前)。 - sport_type 接受Garmin风格的别名(cardio_training, strength_training等等)。 - create 自动检测 Força A/B/C 命名并使用结构化模板(回路/重复组),而不是通用的3步锻炼。 - 请求时 sport_type=HIIT,Garmin可能不会坚持自定义HIIT锻炼类型。服务器应用 cardio_training 为了提高可靠性并返回明确的元数据(requestedSportType, appliedSportType, warning). - 为中的计划会话保留内部本地索引 scheduled_workouts_index.json.
garmin_activity_query
- action=list 按日期范围显示活动。 - action=detail 按id进行一项活动。
为什么需要本地计划索引
Garmin Connect公共/私有端点在锻炼CRUD时是稳定的,但在上市时不可靠 在此MCP场景中,按日期范围安排会话。为了保持粒度CRUD的健壮性,服务器 将MCP管理的计划会话存储在 scheduled_workouts_index.json.
配置
GARMIN_SESSION_PATH(默认值:session.json)GARMIN_WORKOUT_INDEX_PATH(默认值:scheduled_workouts_index.json)
在本地运行
python3 server.py测试
python3 -m unittest -v tests/test_server_tool_surface.py tests/test_scheduled_workouts_store.py