Skip to main content
Glama

garmin-mcp

Локальный MCP-сервер, который предоставляет данные вашей активности, здоровья и тренировок из Garmin Connect (активности, HRV, сон, частота сердечных сокращений, стресс, Body Battery, готовность к тренировке, зоны ЧСС/мощности, лактатный порог, FTP, VO2max, личные рекорды, тренировки, запланированные тренировки и тренировочные планы) в виде инструментов внутри Claude Desktop.

Он напрямую работает с действующим API Garmin Connect через библиотеку garminconnect. Данные доступны только для чтения — ничего не записывается обратно в Garmin.

Как работает авторизация

Вход в Garmin намеренно происходит в двух отдельных местах:

  • scripts/setup_auth.py — интерактивный скрипт, который вы запускаете сами в терминале. Он выполняет вход с вашим email/паролем, запрашивает MFA-код, если Garmin его требует, и сохраняет полученный токен сессии в ~/.garmin_mcp/tokens.

  • MCP-сервер (src/garmin_mcp/server.py), запускаемый Claude Desktop в фоновом режиме, только загружает и незаметно обновляет этот кэшированный токен. Он никогда не запрашивает MFA — Claude Desktop не предоставляет ему терминал для запроса, и блокировка на stdin там приведёт к зависанию вызовов инструментов. Если кэшированная сессия отсутствует или истекла, вызовы инструментов завершаются ошибкой с указанием повторно запустить setup_auth.py.

Ваш пароль Garmin хранится в связке ключей macOS (элемент/служба garmin-mcp, просматривается в Keychain Access), и никогда не записывается в файл. Сохраняется только ваш email для входа в Garmin (не секретный) — в ~/.garmin_mcp/config.json.

Установка

  1. Установите зависимости:

    cd garmin_mcp
    uv sync
  2. Выполните однократный интерактивный вход:

    uv run python scripts/setup_auth.py

    Введите email и пароль от Garmin Connect (пароль будет сохранён в связке ключей для следующего раза). Введите MFA-код по запросу. В случае успеха вы увидите подтверждение и путь к кэшу токенов.

  3. Зарегистрируйте сервер в Claude Desktop, отредактировав ~/Library/Application Support/Claude/claude_desktop_config.json и добавив (рядом с другими записями mcpServers):

    {
      "mcpServers": {
        "garmin": {
          "command": "uv",
          "args": ["run", "--project", "/Users/felix.guiony/Code/Perso/garmin_mcp", "garmin-mcp"]
        }
      }
    }
  4. Полностью завершите работу Claude Desktop (Cmd+Q, а не просто закройте окно) и откройте его снова. На иконке инструментов (молоток) должны появиться инструменты garmin.

Инструменты

Инструмент

Описание

list_activities

Последние активности, сначала новые (постранично, опциональный фильтр по типу)

get_activity

Полная информация по одной активности: сводка + временные ряды по каждой метрике

get_activity_splits

Данные по кругам/отрезкам для одной активности

get_heart_rate

Ежедневная ЧСС в покое + внутридневная шкала ЧСС

get_daily_stats

Шаги, калории, ЧСС в покое, дистанция, этажи, минуты интенсивности

get_sleep

Стадии сна, продолжительность, оценка сна

get_hrv

Вариабельность сердечного ритма

get_body_battery

Запас энергии Body Battery за диапазон дат

get_stress

Уровень стресса за весь день

get_training_readiness

Оценка готовности к тренировке и влияющие факторы

get_profile

Личные данные, настройки единиц измерения, персональные настройки (макс. ЧСС, ЧСС в покое, вес, рост, VO2max), зоны ЧСС и мощности для каждого вида спорта

get_lactate_threshold

Беговой лактатный порог: частота сердечных сокращений, мощность и скорость

get_cycling_ftp

Последнее значение функциональной пороговой мощности (FTP) для велосипеда

get_ftp_history

Исторические значения FTP для вида спорта за диапазон дат

get_max_metrics

Данные максимальных метрик (например, VO2max) за диапазон дат

get_resting_heart_rate

Тренд ежедневной ЧСС в покое за диапазон дат

get_fitness_age

Фитнес-возраст Garmin для указанной даты

get_personal_records

Личные рекорды

list_workouts

Сохранённые шаблоны тренировок, сначала новые (постранично)

get_workout

Полная структура одной тренировки: сегменты, целевые показатели, интервалы

get_scheduled_workouts

Календарь тренировок, запланированных на указанный месяц

get_scheduled_workout

Подробности об одном запланированном экземпляре тренировки

list_training_plans

Тренировочные планы

get_training_plan

Подробности о конкретном тренировочном плане

get_adaptive_training_plan

Подробности о конкретном адаптивном тренировочном плане

Все параметры даты принимают формат YYYY-MM-DD и по умолчанию равны сегодняшней дате.

Устранение неполадок

Если вызов инструмента возвращает сообщение «Garmin session error» / «run setup_auth.py». Ваш кэшированный токен обновления истёк или был отозван (это иногда случается, например, после смены пароля или длительного отсутствия активности). Повторно запустите:

uv run python scripts/setup_auth.py

Ограничение частоты запросов. Garmin Connect иногда ограничивает частоту быстрых запросов; используемая библиотека автоматически повторяет временные сбои, но если вы видите ошибку ограничения частоты, подождите немного и попробуйте снова.

Проверка сервера напрямую, вне Claude Desktop:

uv run mcp dev src/garmin_mcp/server.py

открывает MCP Inspector, чтобы вы могли вызывать каждый инструмент вручную и проверять его вывод/схему.

Структура проекта

garmin_mcp/
  pyproject.toml
  src/garmin_mcp/
    auth.py      # keychain + token-cache helpers
    server.py    # FastMCP server and tool definitions
  scripts/
    setup_auth.py  # interactive one-time/occasional login
-
license - not tested
-
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.

Related MCP Connectors

  • Garmin data in Claude & ChatGPT via the Garmin Health API. OAuth sign-in, no password sharing.

  • Garmin data in Claude: 135 tools — activities, sleep, HRV, training, workouts. Free, open source.

  • MCP server for Withings health data — sleep, activity, heart, and body metrics.

View all MCP Connectors

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/sovnheim/garmin-mcp'

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