Skip to main content
Glama
asilenin

garmin-raw-mcp

by asilenin

garmin-raw

Минимальный сырьевой доступ к Garmin Connect для тренировочного анализа. Один бэкенд (garminconnect 0.3.x) обслуживает два фронтенда:

  • MCP-сервер (garmin-raw-mcp) — живой доступ к данным прямо в чате Claude Desktop.

  • One-shot экспорт (garmin-raw-export) — выгрузка периода в JSON для тиража (атлет/коуч заливает файл в чат).

Принцип: только сырьё (пульс/каденс/мощность/шаг/высота по кругам, посекундные потоки, комментарий-лактат). Никаких VO2max / training-effect / device-оценок порога — они по методологии отвергаются.

Установка

git clone <this-repo> garmin-raw && cd garmin-raw
uv sync

Требуется Python 3.10+ и uv.

Related MCP server: Garmin MCP Server

1. Авторизация (один раз)

uv run garmin-raw-auth

Введёшь email, пароль и MFA-код. Токены сохранятся в ~/.garminconnect (формат 0.3.x). Дальше логин не нужен — сервер и экспорт работают по токенам (и не ловят 429 от повторных входов). Токены живут долго и сами обновляются; повторить garmin-raw-auth нужно только если Garmin их инвалидирует.

2a. Живой MCP в Claude Desktop

Добавь в ~/Library/Application Support/Claude/claude_desktop_config.json (подставь полный путь к uvwhich uv — и к этой папке):

{
  "mcpServers": {
    "garmin-raw": {
      "command": "/Users/<you>/.local/bin/uv",
      "args": ["--directory", "/path/to/garmin-raw", "run", "garmin-raw-mcp"]
    }
  }
}

Полный перезапуск Claude Desktop (Cmd+Q). Появятся 6 тулзов.

2b. Экспорт для тиража

# весь период
uv run garmin-raw-export --start 2026-06-01 --end 2026-06-21

# одна активность + посекундные потоки
uv run garmin-raw-export --start 2026-06-20 --end 2026-06-21 \
    --activity 23321211303 --streams

Получишь garmin_export.json — залей в чат.

Тулзы (одинаковы в MCP и экспорте)

Тул

Отдаёт

list_activities(start, end, sport)

сырые сводки за период (1 запрос)

get_activity_laps(id)

пульс/каденс/мощность/шаг/высота по кругу (lapDTOs)

get_activity_streams(id)

посекундные потоки (HR, каденс, высота, уклон, мощность, шаг, дыхание)

get_activity_comment(id)

комментарий активности + распарсенный лактат (LA:x.x)

get_wellness(date)

сон, HRV, RHR, стресс, Body Battery

get_personal_records()

PR по дистанциям

Лактат

Вносится в комментарий активности в Garmin Connect строкой вида LA:6.1 (можно с контекстом: LA:6.6 @rep12). get_activity_comment достаёт поле description и парсит все значения в lactate_mmol. Комментарий тянется лениво — только для активностей, реально идущих в анализ, чтобы не удваивать число запросов.

Замечания

  • Wellness/PR зовутся через перебор кандидатов-методов: если в твоей версии garminconnect метод назван иначе, тул вернёт _error, не роняя весь ответ. Сверь на первом запуске — при необходимости поправь список имён в backend.py.

  • PII (имя/ID владельца) вырезается из выгрузок — гигиена для тиража.

  • Если MCP молча перестал отвечать — почти всегда это протухшие токены: прогони garmin-raw-auth заново. One-shot экспорт — устойчивый фолбэк на этот случай.

F
license - not found
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/asilenin/Garmin-TN-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server