garmin-mcp
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.
Установка
Установите зависимости:
cd garmin_mcp uv syncВыполните однократный интерактивный вход:
uv run python scripts/setup_auth.pyВведите email и пароль от Garmin Connect (пароль будет сохранён в связке ключей для следующего раза). Введите MFA-код по запросу. В случае успеха вы увидите подтверждение и путь к кэшу токенов.
Зарегистрируйте сервер в 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"] } } }Полностью завершите работу Claude Desktop (Cmd+Q, а не просто закройте окно) и откройте его снова. На иконке инструментов (молоток) должны появиться инструменты
garmin.
Инструменты
Инструмент | Описание |
| Последние активности, сначала новые (постранично, опциональный фильтр по типу) |
| Полная информация по одной активности: сводка + временные ряды по каждой метрике |
| Данные по кругам/отрезкам для одной активности |
| Ежедневная ЧСС в покое + внутридневная шкала ЧСС |
| Шаги, калории, ЧСС в покое, дистанция, этажи, минуты интенсивности |
| Стадии сна, продолжительность, оценка сна |
| Вариабельность сердечного ритма |
| Запас энергии Body Battery за диапазон дат |
| Уровень стресса за весь день |
| Оценка готовности к тренировке и влияющие факторы |
| Личные данные, настройки единиц измерения, персональные настройки (макс. ЧСС, ЧСС в покое, вес, рост, VO2max), зоны ЧСС и мощности для каждого вида спорта |
| Беговой лактатный порог: частота сердечных сокращений, мощность и скорость |
| Последнее значение функциональной пороговой мощности (FTP) для велосипеда |
| Исторические значения FTP для вида спорта за диапазон дат |
| Данные максимальных метрик (например, VO2max) за диапазон дат |
| Тренд ежедневной ЧСС в покое за диапазон дат |
| Фитнес-возраст Garmin для указанной даты |
| Личные рекорды |
| Сохранённые шаблоны тренировок, сначала новые (постранично) |
| Полная структура одной тренировки: сегменты, целевые показатели, интервалы |
| Календарь тренировок, запланированных на указанный месяц |
| Подробности об одном запланированном экземпляре тренировки |
| Тренировочные планы |
| Подробности о конкретном тренировочном плане |
| Подробности о конкретном адаптивном тренировочном плане |
Все параметры даты принимают формат 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 loginThis server cannot be installed
Maintenance
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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