使用说明
麦克普·加明
MCP服务器(Python)用于查询Garmin Connect数据并管理来自AI客户端的锻炼。
当前刀具表面(干净切削)
此服务器现在仅公开 3个MCP工具:
-
garmin_health_report- 汇总一个日期的运行状况和性能数据。
- 支持
mode=summary(更少的API调用)和mode=full(最大覆盖范围)。 - 返回稳定
summary对象+availableSections,unavailableSections,以及errors.
-
garmin_manage_workout- 锻炼管理操作的单一入口点:
createlist_scheduledlist_libraryupdatedeleteapply_week_plan
create和update支持结构化steps有效载荷(workout_step和repeat_group)因此,Garmin设备可以直接引导代表/时间/休息,而不仅仅是显示免费的文字注释。- 如果
steps以重复的速记方式到达(RONDA 1: ...,RONDA 2: ...),服务器将它们标准化为一个重复组,其中包含有序的儿童练习。 - 解析器还支持传统的重复语法(
stepType: "repeat"+repeatIterations)并将其标准化为GarminRepeatGroupDTO. 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_queryaction=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