garminmcp — MCP-сервер для Claude Code: данные Garmin Connect
Отдаёт агенту Body Battery, готовность к тренировке, сон, HRV и активности из Garmin Connect. Токены остаются на вашей машине.
claude mcp add --env GARMIN_TOKEN_PATH=<GARMIN_TOKEN_PATH> --env GARMIN_PRIVACY_MODE=<GARMIN_PRIVACY_MODE> --env GARMIN_CACHE=<GARMIN_CACHE> --env GARMIN_CACHE_PATH=<GARMIN_CACHE_PATH> --env GARMIN_DOMAIN=<GARMIN_DOMAIN> --transport stdio garminmcp -- npx -y garmin-mcp-unofficialЧто делает garminmcp
Сервер поднимается локально и общается с Garmin Connect в режиме личных токенов. Пароль Garmin не сохраняется — на диск попадают только токены, в ~/.garmin-mcp/garmin_tokens.json и с правами доступа одного пользователя. Отсюда и «local-first»: запросы к сервису Garmin идут с вашего компьютера, а не через чужой сервер.
Стартовать удобно с трёх команд: setup записывает локальную конфигурацию MCP, auth запускает встроенный логин на Node и спрашивает почту, пароль и код MFA прямо в терминале, doctor проверяет готовность. Python при этом не нужен. Дальше агент вызывает инструменты: garmin_connection_status, garmin_daily_summary, garmin_weekly_summary; есть и промпт garmin_intraday_investigation для разбора дня по стрессу.
По умолчанию транспорт stdio. Есть опциональный Streamable HTTP — только на loopback, на http://127.0.0.1:3000, без сессий; включается флагом --http. Проект неофициальный и не связан с Garmin: он ходит через приватный режим Garmin Connect, а не через официальный Health API. Если Garmin отвечает HTTP 429 или показывает Cloudflare-заглушку, повторять логин подряд не стоит — серия попыток только усилит троттлинг, поэтому выждите паузу.
Какие задачи решает
- собрать утреннюю сводку по сну, нагрузке и Body Battery
- найти узкое место в восстановлении за неделю
- разобрать день по уровню стресса с оговорками о данных
- проверить, что коннектор к Garmin реально настроен
- поднять локальный HTTP-эндпоинт для MCP без внешнего сервера
Примеры запросов агенту
- Проверь
garmin_connection_status, затем вызовиgarmin_daily_summaryи дай короткую сводку на сегодня. - Вызови
garmin_weekly_summaryсresponse_format=json, найди главное узкое место по восстановлению и распиши план на следующую неделю. - Запусти промпт
garmin_intraday_investigationдля сегодняшнего дня с фокусом на стрессе и не приписывай Garmin того, чего он не показывает.
Как установить garminmcp
Командой платформы
claude mcp add --env GARMIN_TOKEN_PATH=<GARMIN_TOKEN_PATH> --env GARMIN_PRIVACY_MODE=<GARMIN_PRIVACY_MODE> --env GARMIN_CACHE=<GARMIN_CACHE> --env GARMIN_CACHE_PATH=<GARMIN_CACHE_PATH> --env GARMIN_DOMAIN=<GARMIN_DOMAIN> --transport stdio garminmcp -- npx -y garmin-mcp-unofficialВместо <…> подставьте свои значения. Ещё 1 переменная окружения — в README сервера
Командой платформы
codex mcp add garminmcp --env GARMIN_TOKEN_PATH=<GARMIN_TOKEN_PATH> --env GARMIN_PRIVACY_MODE=<GARMIN_PRIVACY_MODE> --env GARMIN_CACHE=<GARMIN_CACHE> --env GARMIN_CACHE_PATH=<GARMIN_CACHE_PATH> --env GARMIN_DOMAIN=<GARMIN_DOMAIN> -- npx -y garmin-mcp-unofficialВместо <…> подставьте свои значения. Ещё 1 переменная окружения — в README сервера
Файл настроек
{
"mcpServers": {
"garminmcp": {
"command": "npx",
"args": [
"-y",
"garmin-mcp-unofficial"
],
"env": {
"GARMIN_TOKEN_PATH": "<GARMIN_TOKEN_PATH>",
"GARMIN_PRIVACY_MODE": "<GARMIN_PRIVACY_MODE>",
"GARMIN_CACHE": "<GARMIN_CACHE>",
"GARMIN_CACHE_PATH": "<GARMIN_CACHE_PATH>",
"GARMIN_DOMAIN": "<GARMIN_DOMAIN>"
}
}
}
}Вместо <…> подставьте свои значения. Ещё 1 переменная окружения — в README сервера
Файл настроек
{
"servers": {
"garminmcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"garmin-mcp-unofficial"
],
"env": {
"GARMIN_TOKEN_PATH": "<GARMIN_TOKEN_PATH>",
"GARMIN_PRIVACY_MODE": "<GARMIN_PRIVACY_MODE>",
"GARMIN_CACHE": "<GARMIN_CACHE>",
"GARMIN_CACHE_PATH": "<GARMIN_CACHE_PATH>",
"GARMIN_DOMAIN": "<GARMIN_DOMAIN>"
}
}
}
}Вместо <…> подставьте свои значения. Ещё 1 переменная окружения — в README сервера
Командой платформы
gemini mcp add -e GARMIN_TOKEN_PATH=<GARMIN_TOKEN_PATH> -e GARMIN_PRIVACY_MODE=<GARMIN_PRIVACY_MODE> -e GARMIN_CACHE=<GARMIN_CACHE> -e GARMIN_CACHE_PATH=<GARMIN_CACHE_PATH> -e GARMIN_DOMAIN=<GARMIN_DOMAIN> garminmcp npx -y garmin-mcp-unofficialВместо <…> подставьте свои значения. Ещё 1 переменная окружения — в README сервера
По шагам, с командами для каждой платформы: Как подключить MCP-сервер: Claude Code, Codex, Cursor, VS Code, Gemini CLI и другие
Вопросы о garminmcp
Как установить garminmcp в Claude Code?
Одной командой: claude mcp add garminmcp -- npx -y garmin-mcp-unofficial. Если нужны переменные окружения и явный транспорт, используйте расширенный вариант с --env и --transport stdio.
Что делает garminmcp?
Это MCP-сервер, который отдаёт агенту ваши показатели из Garmin Connect: готовность к тренировке, сон, HRV, активности. Работает локально, токены не покидают машину.
Нужен ли Garmin developer app или Python?
Developer app не требуется. Логин выполняет встроенная Node-команда auth, она же спрашивает MFA, если Garmin его запросит.