garmin-mcp
garmin-mcp
Приватный MCP-сервер Garmin Connect для триатлонных тренировок. ~47 инструментов, охватывающих ежедневные показатели здоровья, анализ активностей, тренировочную нагрузку, бег, велосипед, плавание, силовые тренировки и создание тренировок — плюс специфический для триатлона анализ (брик-тренировки, баланс объёма по видам спорта, снимки физической формы по разным дисциплинам).
Развёрнут как удалённый MCP-сервер по HTTPS. Подключается к Claude Desktop или Claude Code через streamable-HTTP транспорт.
Одноразовая настройка аутентификации
Запустите это локально один раз, чтобы сгенерировать токены:
Установите локально:
pip install -e .Выполните аутентификацию в Garmin:
garmin-mcp-authСохраняет токены в
~/.garminconnect/garmin_tokens.jsonи выводит команду экспорта в base64.Скопируйте выведенное значение
GARMIN_TOKENS_JSON=...— оно понадобится для шага с секретами ниже.
Развёртывание на Fly.io
Предварительные требования: установленный flyctl и выполненная аутентификация (flyctl auth login).
Зарегистрируйте имя приложения (только при первом запуске):
flyctl apps create garmin-mcpЕсли имя
garmin-mcpзанято на Fly.io (глобальное пространство имён), используйте уникальное имя, напримерgarmin-mcp-yourname, и обновите полеappвfly.tomlсоответствующим образом.Задайте секреты:
flyctl secrets set \ GARMIN_EMAIL=you@example.com \ GARMIN_TOKENS_JSON=<base64-from-auth-step> \ MCP_AUTH_TOKEN=$(openssl rand -hex 32)Сохраните сгенерированное значение
MCP_AUTH_TOKEN— оно понадобится для конфигурации Claude Desktop.Разверните:
flyctl deployПроверьте:
curl https://garmlink.fly.dev/healthОжидаемый результат:
{"status":"ok"}
Авторазвёртывание через GitHub Actions
После первого ручного развёртывания последующие пуши в main автоматически развёртываются через GitHub Actions.
Добавьте FLY_API_TOKEN в секреты вашего репозитория GitHub:
flyctl tokens create deployСкопируйте вывод, затем перейдите: GitHub repo → Settings → Secrets and variables → Actions → New repository secret → назовите его FLY_API_TOKEN.
Конфигурация Claude Desktop
Добавьте в ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"garmin": {
"url": "https://garmlink.fly.dev/mcp",
"headers": { "Authorization": "Bearer <MCP_AUTH_TOKEN>" }
}
}
}Замените <MCP_AUTH_TOKEN> на значение, которое вы задали на шаге с секретами.
Тренерские навыки
Запускайте эти слэш-команды из каталога проекта в Claude Code:
Команда | Назначение |
| Ежедневный брифинг готовности (HRV, сон, заряд батареи организма) |
| Еженедельный обзор тренировочной нагрузки и баланса видов спорта |
| Оценка физической формы перед гонкой по всем дисциплинам |
| Пошаговый конструктор структурированных тренировок → отправка в Garmin |
Переменные окружения
Переменная | Описание |
| Ваш email Garmin Connect |
| Файл токенов в кодировке Base64 (из |
| Bearer-токен, защищающий конечную точку MCP |
| Порт сервера (по умолчанию: 8000, устанавливается автоматически Fly.io) |
This 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.
List, fetch, create, edit (replace), delete and schedule structured workouts on Garmin Connect (runn
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/knahsirV/garmin-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server