Repository navigation
Releases: endurancetools/garmin-mcp
Releases · endurancetools/garmin-mcp
Release list
v0.3.0
0.3.0 (2026-10-13)
Claude Desktop extension
- The extension is called Garmin MCP in Claude Desktop, not "Garmin Connect", which is Garmin's own service. Its description says it is an unofficial, open-source server, not affiliated with Garmin.
- Every release also carries the extension as
garmin-mcp.mcpb, soreleases/latest/download/garmin-mcp.mcpbalways downloads the newest one.
Morning readiness
- REST needs two signals that agree. By default (
decision_rule: "pairs") the decision is REST only when both signals of a pair are red: HRV with resting heart rate, HRV with sleep, or load with HRV, resting heart rate or sleep. A single red signal gives MODIFY. One short night lowers HRV, raises resting heart rate and shortens sleep together, so the old counting rule could cancel a key session on one event.rules: {"decision_rule": "count"}restores it. - The decision uses HRV, resting heart rate, sleep hours and load only. Sleep is rated by hours; the sleep score stays in the answer. Body Battery and stress are shown for reference (
info), like Garmin's Training Readiness, and do not vote. The rulessleep_score_red,sleep_score_yellow,bb_red,bb_yellowandstress_yelloware gone and are ignored with a note.
Training load
- Aerobic decoupling (Pa:Hr for running, Pw:Hr for power) per session in
get_loadactivities, and its monthly mean in the efficiency trend: the efficiency of the first and second half of a steady session of at least an hour, from the laps of the activity. flags.intensity_sportschooses which sport groups the intensity distribution counts (default run, bike, nordic, row). Addhiketo include mountain walking; it then also gets an efficiency trend from grade adjusted speed.
Documentation
- New pages: Methods and evidence (what fitness, fatigue, form and HRV readiness mean and where the methods come from) and an FAQ.
- Every npm package has its own README;
SECURITY.md,CONTRIBUTING.mdand issue and pull request templates in the repository.
v0.2.0
0.2.0 (2026-10-12)
Training analytics
A new package, garmin-mcp-analytics, computes training metrics on your machine from the data already in the local database. Every formula, default and limit is described on the Training analytics page.
get_load: an own load model. Each activity gets one training stress from the first source available: power (cycling, TSS), pace (running, rTSS), swim pace against CSS (sTSS), heart rate (hrTSS from the time in HR zones, else from average heart rate) or session RPE. From it: fitness, fatigue and form (CTL, ATL, TSB), ACWR, monotony and strain, weekly volume per sport, a three-zone intensity split against LT1 and LTHR, load flags, an optional form per sport and a monthly efficiency factor trend over aerobic sessions.get_readiness: a morning GO, MODIFY or REST decision from overnight HRV, resting heart rate, sleep, Body Battery, stress and load, each compared with your own recent baseline. Garmin's Training Readiness is shown next to it for reference and does not vote.get_thresholds: LTHR, LT1, HRmax, FTP, resting heart rate and the other thresholds in effect on a date, with their history, per-sport values, and the heart rate and power zones of every sport in the Garmin profile.set_threshold: record a field test result. Every metric is computed with the thresholds that applied on the activity's own date, so a new test changes the numbers from its date on.- Thresholds start from the Garmin profile, which is downloaded before an analytics read when it is not stored yet. Without a tested value, documented approximations are used and the answer says so.
- Every flag and readiness rule can be overridden per call (
flags,rules), and every answer returns the values it used.
CLI
garmin load,garmin readinessandgarmin thresholds(list,add,export,import) give the same results in the terminal, as Markdown or--json. They never download; a missing range is reported with thegarmin synccommand to run.garmin import-activities <file.csv...>reads the Activities CSV export of Garmin Connect (English or Polish headers), so load history older than the synced range counts too. Imported activities count only on dates the synced activities do not cover.garmin statusshows the number of stored thresholds and imported activities.
Changed
preview_workoutis merged intocreate_workout. Callcreate_workoutwithdry_run: trueto see the readable steps and the estimated duration without saving anything; the same input withoutdry_runsaves the workout. The tool count stays at 20.get_training_statusandget_period_summary: the CTL/ATL/TSB computed from Garmin's per-activity training load is now one field,garmin_load_model(formerlycomputed_loadandload_at_end), and the descriptions say when to use it and whenget_load.- The server (
serverInfo.version) andgarmin --versionreport the version frompackage.jsoninstead of a fixed0.1.0.
Release
- The Claude Desktop extension
garmin-mcp-<version>.mcpbis attached to every GitHub release.