Skip to main content
Glama

garmin-mcp

Удалённый MCP-сервер для Garmin Connect на Cloudflare Workers (бесплатный тариф). Полный порт на TypeScript проекта taxuspt/garmin_mcp: все 138 инструментов плюс проброс garmin_get (всего 139) и 5 ресурсов MCP для шаблонов/справочников тренировок.

Модули: управление активностью (21), здоровье и самочувствие (29), тренировки и производительность (15), тренировки + конструкторы (19), питание (14), челленджи/устройства/снаряжение (18), вес/тело/женское здоровье/курсы (14), анализ FIT-файлов (4), профиль пользователя (4), проброс (1).

Авторизация: это OAuth 2.1-сервер авторизации (через @cloudflare/workers-oauth-provider). При добавлении в MCP-клиент открывается страница в браузере, где вы вводите свой адрес электронной почты Garmin и пароль (а также MFA-код, если в вашем аккаунте используется 2FA). Worker выполняет на стороне сервера процесс входа через SSO-виджет Garmin — единственный путь входа, который не блокируется антибот-защитой для IP-адресов дата-центров, — получает долгоживущий (~1 год) OAuth1-токен, отбрасывает ваши учётные данные и сохраняет только этот токен в зашифрованном виде в grant. Затем он по требованию выпускает короткоживущие OAuth2 bearer-токены для connectapi.garmin.com. Резервный вариант «вставить токен» (через локальный скрипт ниже) спрятан за сворачиваемым блоком details на случай, если Garmin когда-нибудь начнёт блокировать серверный вход.

Деплой

  1. npm install

  2. npx wrangler kv namespace create OAUTH_KV — вставьте id в wrangler.jsonc

  3. npx wrangler deploy

Related MCP server: Garmin Open MCP

Подключение клиента

claude mcp add garmin --transport http https://garmin-mcp.<your-subdomain>.workers.dev/mcp

Claude Code открывает страницу авторизации в вашем браузере; выполните два её шага. В веб-версии claude.ai: Настройки → Коннекторы → Добавить пользовательский коннектор с тем же URL. Claude Desktop и другие клиенты, поддерживающие только stdio: mcp-remote тоже обрабатывает OAuth-поток.

Доступ возможен только через OAuth — пути с raw-заголовками нет. Каждый запрос /mcp проверяется по access-токену, выданному провайдером, а access-токен выпускается только после завершения процесса входа.

Ограничение только вашим аккаунтом

Задайте OWNER_GARMIN_IDS в wrangler.jsonc равным вашему Garmin displayName (значению, которое возвращает get_user_profile) — это список разрешённых, разделённый запятыми. Любой вход для аккаунта Garmin, которого нет в списке, отклоняется на этапе авторизации, поэтому посторонние не смогут использовать ваш деплой даже со своими действительными учётными данными Garmin. Оставьте его пустым, чтобы разрешить любой аккаунт Garmin.

Отличия от оригинала (адаптации для remote/serverless)

  • download_activity_file возвращает содержимое файла инлайн (fit — как base64, gpx/tcx/csv — как текст, с ограничением размера) вместо записи на локальный диск; set_fit_download_dir — документированная no-op.

  • upload_course принимает gpx_content (текст GPX XML) вместо локального пути к файлу.

  • get_activity_fit_data охватывает сессии/круги/записи + анализ мощности (NP, VI, кривая мощности, Вт/кг); функции оригинала — Di2 shift, climb-detection и HRV-аналитика — не перенесены.

  • Лимит подзапросов бесплатного тарифа (~50 на вызов): get_training_load_trend ограничен 45 днями (было 90), get_power_duration_curve — 15 активностями (было 20), get_hrv_trend использует эндпоинт диапазона за один вызов, циклы пагинации целей/шагов/менструальных данных ограничены.

  • Инструменты возвращают JSON-объекты, а не предварительно сериализованные строки; ошибки отображаются как ошибки инструментов MCP.

Примечания

  • Токен Garmin хранится зашифрованным внутри grant в Workers KV; когда срок его действия истекает (~1 год), вызовы инструментов начинают завершаться ошибкой — повторно аутентифицируйте сервер в вашем клиенте, чтобы снова выполнить поток.

  • Access-токены — это bearer-учётные данные: любой, у кого есть действительный токен, имеет доступ к вашим данным до его истечения, поэтому безопасность зависит от того, что ваш MCP-клиент хранит сохранённый токен в секрете.

  • Локальная разработка: npm run dev, затем укажите клиенту адрес http://localhost:8787/mcp.

F
license - not found
Not graded
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 Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Personal MCP server for interacting with your Garmin Connect data. Exposes 62 tools across 11 domains including activities, health, training, and workouts.
    1
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Unofficial MCP server bridging Garmin Connect to MCP clients and ChatGPT, providing tools to access health data, activities, and trends via a self-hosted API.
    11
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server for Garmin Connect that enables users to access and manage their personal health and fitness data, including daily summaries, heart rate, sleep, HRV, stress, body composition, activities, and training readiness, with secure per-user authentication.
    Apache 2.0

View all related MCP servers

Related MCP Connectors

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

  • Hosted remote MCP server for YNAB on Cloudflare Workers with OAuth

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

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

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