Skip to main content
Glama

Tyme Wear MCP Server

Сервер Model Context Protocol, который подключает Claude к платформе дыхательных датчиков Tyme Wear. Анализируйте данные вентиляции, активности, пороги и тренировочные зоны напрямую через Claude.

Построен на той же архитектуре, что и trainingpeaks-mcp.

Что такое Tyme Wear?

Tyme Wear производит нагрудный ремень VitalPro — носимый дыхательный датчик, который измеряет показатели вентиляции (частота дыхания, дыхательный объем, минутная вентиляция) вместе с частотой сердечных сокращений. Он использует вентиляционные пороги (VT1, VT2) для определения персонализированных тренировочных зон. Используется командой Team Visma | Lease a Bike.

Related MCP server: Strava MCP Server

Возможности

  • 40 MCP-инструментов для профиля, активностей, данных дыхания, порогов VE, компактного поактивного анализа, файлов/обнаружения активностей, планов тренировок, рекомендаций по тренировкам, интеграций, подписки/аккаунта, физиологии покоя/максимума и экспорта

  • Безопасное хранение учетных данных через системную связку ключей (связка ключей macOS / диспетчер учетных данных Windows) с резервным AES-256-GCM зашифрованным файлом

  • Автоаутентификация с кэшированием токенов и автоматической повторной аутентификацией по истечении срока

  • Умные данные дыхания с режимами summary, window и full для предотвращения переполнения контекста

  • Поактивная аналитика (tw_get_activity_insights): обнаруженные VT1/VT2/VO2max с измеренной мощностью на пороге, показатели уверенности, флаг усеченного теста и время/калории по зонам — одним вызовом, без парсинга FIT

  • Компактный анализ активности (tw_get_activity_analysis): согласованные временные метки, помеченные сводки и состояния возможностей, поканальные processed/new-processed/FIT fallback, детерминированное слияние по прошедшим секундам и пагинация

  • Компактные полезные нагрузки активностей: tw_get_activity и tw_get_activity_workout_zone_detection по умолчанию отбрасывают многомегабайтные массивы посекундных данных (можно вернуть с помощью include=[...])

  • Публичный режим Streamable HTTP со статическим bearer-токеном или OAuth-аутентификацией (коннектор claude.ai в один клик), однопользовательский, привязанный к аккаунту оператора Tyme Wear

Быстрый старт

1. Установка

git clone https://github.com/tkelkermans/tymewear-mcp.git
cd tymewear-mcp
python -m venv .venv
source .venv/bin/activate
pip install -e .

2. Аутентификация

tymewear-mcp auth

Введите ваши email и пароль от Tyme Wear. Учетные данные безопасно сохраняются в системной связке ключей с резервным зашифрованным файлом.

3. Настройка Claude Desktop

Добавьте в конфигурацию Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json на macOS):

{
  "mcpServers": {
    "tymewear": {
      "command": "/path/to/tymewear-mcp/.venv/bin/tymewear-mcp",
      "args": ["serve"]
    }
  }
}

Или выполните tymewear-mcp config, чтобы сгенерировать фрагмент с правильным путем.

4. Перезапустите Claude Desktop

Инструменты Tyme Wear появятся в списке инструментов Claude.

Команды CLI

Команда

Описание

tymewear-mcp auth

Сохранить учетные данные Tyme Wear (интерактивно или через --email/--password)

tymewear-mcp auth-status

Проверить, действительны ли сохраненные учетные данные

tymewear-mcp auth-clear

Удалить сохраненные учетные данные

tymewear-mcp config

Вывести фрагмент конфигурации для Claude Desktop

tymewear-mcp serve

Запустить MCP-сервер (транспорт stdio)

tymewear-mcp serve-public

Запустить публичный сервер Streamable HTTP

Публичное интернет-развертывание

serve-public предоставляет конечную точку Streamable HTTP MCP для размещенных развертываний. Она аутентифицирована и не сохраняет состояние; это не анонимный публичный API.

Публичный сервер

Установите публичный URL и один или несколько MCP bearer-токенов через переменные окружения. Каждый bearer-токен должен быть длиной не менее 32 символов; используйте сгенерированный случайный секрет.

export TYMEWEAR_PUBLIC_URL="https://mcp.example.com/mcp"
export TYMEWEAR_PUBLIC_BEARER_TOKENS="replace-with-a-long-random-secret-of-32-plus-chars"

tymewear-mcp serve-public \
  --host 0.0.0.0 \
  --port 8000 \
  --public-url "$TYMEWEAR_PUBLIC_URL"

Конечная точка MCP по умолчанию — /mcp. /healthz возвращает только {"status":"ok"} и не раскрывает данные клиентов.

Контейнер

Включенный Dockerfile запускает публичный сервер от имени непривилегированного пользователя. Внедрите секреты во время выполнения:

docker build -t tymewear-mcp-public .

docker run --rm -p 8000:8000 \
  -e TYMEWEAR_PUBLIC_URL="https://mcp.example.com/mcp" \
  -e TYMEWEAR_PUBLIC_BEARER_TOKENS="replace-with-a-long-random-secret-of-32-plus-chars" \
  tymewear-mcp-public

Vercel

Репозиторий также содержит корневую точку входа Python ASGI для Vercel (main.py). Фреймворк Python Vercel направляет запросы непосредственно в приложение ASGI, поэтому vercel.json не должен переписывать /mcp, /healthz или /.well-known/* на внутренний путь функции. Свяжите локальный каталог с целевым проектом Vercel, подключите этот проект к Git-репозиторию, затем настройте как минимум TYMEWEAR_PUBLIC_BEARER_TOKENS для Production и Preview. Точка входа завершается с ошибкой, если переменная окружения публичного bearer-токена отсутствует. Используйте отдельный bearer-токен для Preview, чтобы ограничить область действия учетных данных. TYMEWEAR_PUBLIC_URL рекомендуется для псевдонимов продакшена, но развертывания preview могут получить его из URL развертывания Vercel.

PRODUCTION_TOKEN_FILE=/path/to/generated-production-bearer-token
PREVIEW_TOKEN_FILE=/path/to/generated-preview-bearer-token
chmod 600 "$PRODUCTION_TOKEN_FILE" "$PREVIEW_TOKEN_FILE"
vercel link
vercel git connect
vercel env add TYMEWEAR_PUBLIC_BEARER_TOKENS production --sensitive --yes < "$PRODUCTION_TOKEN_FILE"
vercel env add TYMEWEAR_PUBLIC_BEARER_TOKENS preview --sensitive --yes < "$PREVIEW_TOKEN_FILE"

Храните файлы токенов доступными только для чтения их владельцем; обертка развертывания отклоняет файлы токенов, доступные для группы или других пользователей. Используйте vercel env update TYMEWEAR_PUBLIC_BEARER_TOKENS production --sensitive --yes < "$PRODUCTION_TOKEN_FILE" при ротации существующего токена. Не передавайте bearer-токены через vercel deploy --env, shell echo или другие аргументы команд, которые могут попасть в историю оболочки или списки процессов.

Тот же путь используется скриптом scripts/deploy_public_vercel.sh для ручного восстановления развертываний. Он требует существующей ссылки на проект Vercel, загружает токен из файла, развертывает продакшен и запускает scripts/verify_public_endpoint.py для проверки развернутого URL MCP:

scripts/deploy_public_vercel.sh --token-file "$PRODUCTION_TOKEN_FILE"

Установите PYTHON=/path/to/python, если верификатор должен работать с конкретным интерпретатором, например, с виртуальным окружением репозитория.

Автоматизированное развертывание (CI/CD)

.github/workflows/deploy.yml запускает заблокированный набор тестов (ruff + mypy + pytest) при каждом push и pull request. Он не содержит учетных данных Vercel и не развертывает приложение.

Связанная интеграция Git с Vercel создает preview-развертывания для функциональных веток и pull request, а затем создает production-развертывание при обновлении main. Секрет VERCEL_TOKEN GitHub Actions не требуется. Переменные времени выполнения, такие как TYMEWEAR_PUBLIC_BEARER_TOKENS, остаются управляемыми в проекте Vercel и сохраняются между Git-развертываниями.

Коннектор claude.ai (OAuth)

Статический bearer-токен работает для клиентов, поддерживающих заголовки (Claude Code: claude mcp add --transport http <url> --header "Authorization: Bearer <token>"). Коннектор claude.ai вместо этого аутентифицируется через OAuth, поэтому для добавления MCP туда сервер работает как OAuth защищенный ресурс: он проверяет JWT-токены доступа от управляемого провайдера (например, WorkOS AuthKit или Stytch) и применяет белый список email. Он остается однопользовательским — каждый авторизованный пользователь читает данные оператора через серверные учетные данные.

Установите эти (чувствительные) переменные окружения Vercel для включения:

Переменная

Назначение

TYMEWEAR_PUBLIC_ISSUER_URL

URL поставщика (включает режим защищенного ресурса OAuth)

TYMEWEAR_OIDC_AUDIENCE

Необязательное ожидаемое значение aud токена; если не указано, aud не проверяется (подпись эмитента + белый список email все равно применяются)

TYMEWEAR_OIDC_JWKS_URL

Необязательный явный URL JWKS (иначе определяется из эмитента)

TYMEWEAR_OIDC_SCOPES

Необязательные области, рекламируемые клиенту (по умолчанию openid profile email)

TYMEWEAR_ALLOWED_EMAILS

Разделенный запятыми список email, разрешенных для подключения

TYMEWEAR_EMAIL / TYMEWEAR_PASSWORD

Учетные данные Tyme Wear оператора, используемые для всех вышестоящих вызовов

Настройка провайдера (пример WorkOS AuthKit): создайте приложение, включите вход через Google/email, включите Dynamic Client Registration, чтобы claude.ai мог зарегистрироваться самостоятельно, и скопируйте URL эмитента в TYMEWEAR_PUBLIC_ISSUER_URL. Затем добавьте коннектор в claude.ai — он обнаружит провайдера через /.well-known/oauth-protected-resource сервера, зарегистрируется и запустит хостинговый вход; будут допущены только email из белого списка.

Статический путь TYMEWEAR_PUBLIC_BEARER_TOKENS продолжает работать вместе с OAuth (двухрежимный). Без TYMEWEAR_PUBLIC_ISSUER_URL OAuth отключен, и активен только bearer-путь.

Проверка после развертывания

После развертывания проверьте публичную конечную точку без вывода секретов:

TYMEWEAR_PUBLIC_URL="https://mcp.example.com/mcp" \
python scripts/verify_public_endpoint.py --bearer-token-file "$TOKEN_FILE"

Верификатор проверяет /healthz, отклонение неаутентифицированного /mcp, аутентифицированный MCP initialize, аутентифицированный tools/list, необходимые инструменты compact-analysis/profile, а также публичные заголовки безопасности/без кэширования. Он также подтверждает, что публичные развертывания не рекламируют чтение сырых активностей или экспорт на диск, а развертывания по умолчанию не рекламируют инструменты модификации.

Аутентификация публичного клиента

Публичный режим однопользовательский: он аутентифицируется вышестоящим Tyme Wear с собственными учетными данными оператора из TYMEWEAR_EMAIL / TYMEWEAR_PASSWORD (серверная переменная окружения), поэтому каждый авторизованный вызывающий читает данные оператора. Клиенты должны только доказать, что им разрешено подключаться — никакого токена Tyme Wear на каждый запрос нет.

Клиенты, поддерживающие заголовки (например, Claude Code), отправляют статический gateway bearer-токен:

Authorization: Bearer <TYMEWEAR_PUBLIC_BEARER_TOKENS entry>

Когда OAuth включен (установлен TYMEWEAR_PUBLIC_ISSUER_URL), клиенты, такие как коннектор claude.ai, вместо этого отправляют JWT, выданный провайдером, полученный через хостинговый вход; сервер проверяет его (подпись через JWKS, эмитент, необязательная аудитория) и допускает только email из белого списка. Оба пути работают одновременно (двухрежимный).

В более ранних версиях требовался заголовок X-Tymewear-Token для каждого запроса. Однопользовательский режим удалил его — теперь учетные данные находятся на стороне сервера.

Политика данных в публичном режиме

В публичном режиме:

  • Доступ ограничен статическим bearer-токеном и/или белым списком email OAuth; подключаются только идентификаторы из белого списка.

  • Учетные данные Tyme Wear оператора хранятся только в серверной переменной окружения (храните их в менеджере секретов). Они читаются непосредственно из окружения — публичный режим не затрагивает локальную связку ключей или зашифрованный файл учетных данных (они пишут в $HOME, который доступен только для чтения в serverless).

  • Каждый результат инструмента и стабильная публичная ошибка проходят через одну неизменяющую рекурсивную проекцию конфиденциальности перед JSON-сериализацией. Она удаляет не-JSON значения, неконечные числа, email, UUID пользователей/аккаунтов/профилей, идентификаторы/серийные номера устройств, токены, подписанные/callback/загрузочные URL, S3 или временные пути, тяжелые сырые поля и координаты за пределами явного контракта местоположения анализа.

  • tw_get_activity_analysis — это публичный компактный интерфейс сырых выборок. Он сохраняет помеченную доступность, возможности, каналы, происхождение, сводку и данные выборок с пагинацией. include_location должен быть литеральным boolean true; только raw_samples.data[*].position_lat/position_long и соответствующие метаданные канала могут тогда сохраниться. Домашние, общие и несвязанные координаты всегда удаляются.

  • Публичные ответы включают Cache-Control: no-store, Pragma: no-cache, X-Robots-Tag: noindex, nofollow, HSTS для публичных URL по HTTPS и базовые заголовки безопасности для уменьшения случайного кэширования, индексации и утечки данных клиентов через браузер.

  • Инструменты модификации профиля/активности скрыты и по умолчанию возвращают PUBLIC_MUTATIONS_DISABLED. Включайте их только с помощью --allow-mutations или TYMEWEAR_PUBLIC_ALLOW_MUTATIONS=true для доверенных развертываний.

  • Инструменты экспорта CSV, FIT и strap-файлов возвращают PUBLIC_EXPORTS_DISABLED, так как локальная реализация записывает файлы на диск.

  • tw_get_processed_data, tw_get_new_processed_data, tw_get_activity_logs и tw_get_activity_strap_files скрыты и возвращают PUBLIC_RAW_DATA_DISABLED, даже если включены мутации. Локальный режим stdio сохраняет эти инструменты. Компактное обнаружение тренировочных зон остается публичным.

Ошибки публичных инструментов стабильны и не возвращают текст исключений вышестоящего потока:

Код

Значение

INVALID_TOOL_ARGUMENTS

Запрос не соответствует опубликованной строгой схеме инструмента

UNKNOWN_TOOL

Запрашиваемый инструмент не зарегистрирован

TYMEWEAR_UPSTREAM_TOKEN_REQUIRED

Серверные учетные данные Tyme Wear недоступны

PUBLIC_TOOL_FAILED

Сбой операции публичного клиента, обработчика, закрытия или проекции

PUBLIC_RAW_DATA_DISABLED

Инструмент чтения сырых данных/логов/файлов недоступен в публичном режиме

PUBLIC_EXPORTS_DISABLED

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

PUBLIC_MUTATIONS_DISABLED

Изменение недоступно без явного согласия доверенного развертывания

Усиление защиты в промышленной среде

  • Завершайте TLS на границе сети и укажите TYMEWEAR_PUBLIC_URL равным каноническому HTTPS-адресу MCP.

  • Следите, чтобы путь TYMEWEAR_PUBLIC_URL совпадал с подключенным путём MCP (по умолчанию /mcp). Публичный режим отвергает строки запроса URL, фрагменты и несовпадения маршрута/пути при запуске.

  • Передавайте TYMEWEAR_PUBLIC_BEARER_TOKENS из менеджера секретов, а не из истории командной оболочки или системы контроля версий. Токены короче 32 символов отклоняются при запуске.

  • Оставляйте публичные развертывания доступными только для чтения, если у вас нет особых требований доверенного клиента к изменению профиля или активности.

  • Для недоверенных клиентов перед serve-public используйте OAuth-прокси или прокси с идентификацией; регулярно меняйте статические Bearer-токены.

  • При использовании прокси или сервера авторизации с поддержкой OAuth установите TYMEWEAR_PUBLIC_ISSUER_URL или --issuer-url, чтобы MCP-клиенты могли обнаруживать метаданные защищённого ресурса.

  • Тела публичных HTTP-запросов по умолчанию ограничены 1 МиБ, включая фрагментированные/потоковые тела. Изменяйте с помощью TYMEWEAR_PUBLIC_MAX_BODY_BYTES или --max-body-bytes только в том случае, если доверенному развертыванию нужны более крупные JSON-RPC-запросы.

  • Отключите журналирование заголовка авторизации, тела запроса и тела ответа на обратном прокси и платформе приложения.

  • Ограничьте исходящий сетевой трафик хостами API Tyme Wear, если ваша платформа это поддерживает.

  • Устанавливайте явные значения --allowed-host и --allowed-origin, если хост публичного URL не является единственным допустимым хостом/источником. Публичный режим отклоняет недоверенные заголовки Host на всех маршрутах, запрещает конфигурацию хоста/источника с подстановочным знаком *, требует, чтобы разрешённые источники были точными http(s)-источниками без путей, и требует использования HTTPS для источников не на localhost.

Доступные инструменты

Авторизация и профиль

Инструмент

Описание

tw_auth_status

Проверить статус авторизации и действительность токена

tw_get_profile

Получить профиль спортсмена: вес, рост, цели по VE (VT1, BP, VT2, VO2max) для каждого вида спорта, статус подписки, внешние аккаунты

tw_update_profile

Обновить поля профиля (вес, рост, единицы измерения)

Активности

Инструмент

Описание

tw_get_activities

Список активностей с курсорной пагинацией и фильтрами сайта по видам спорта, типам активностей, поиску, ID пользователя и профессиональной команде

tw_get_activity

Полная детализация активности: продолжительность, пороги, зоны, TSS, прошивка, сторонние ссылки. Массивы большого объёма по умолчанию свёрнуты. Локальные вызывающие через stdio могут использовать include=[...]; публичный режим возвращает спроецированные компактные данные

tw_get_activity_analysis

Компактный анализ только для чтения с согласованными временными метками, сводкой, точками останова, явными возможностями, источником/единицей/покрытием/происхождением на канал и объединёнными перед пагинацией выборками. include_location=true добавляет только координаты аналитических выборок

tw_get_activity_insights

Компактный отчёт по активности: значения VT1/VT2/Endurance VE+HR+достоверность, измеренная мощность на пороге, обнаруженное время точек останова, время/калории по зонам, флаги качества, флаг усечённого теста и цели по VE — работает как для тестов, так и для поездок

tw_get_activity_status

Статус обработки алгоритмами для активности

tw_pin_activity

Закрепить/открепить активность для обнаружения порога

tw_get_pinned_activity

Получить текущую закреплённую активность

tw_delete_activity

Удалить активность (необратимо)

Данные дыхания

Инструмент

Описание

tw_get_processed_data

Только для локального использования — посекундный временной ряд дыхания с режимами сводки, окна и полных данных; в публичном режиме используйте tw_get_activity_analysis

tw_get_new_processed_data

Только для локального использования — обработанные данные в новом формате, если доступны; в публичном режиме используйте tw_get_activity_analysis

Файлы активностей и обнаружение

Инструмент

Описание

tw_get_activity_logs

Получить локальные журналы/события активности только для чтения

tw_get_activity_strap_files

Получить локальные метаданные strap-файлов, если доступны

tw_export_activity_strap_files

Экспортировать исходные strap-файлы, если доступны

tw_get_activity_workout_zone_detection

Обнаружение зон тренировки (время/калории по зонам, VT1/VT2 VE+HR+достоверность, оценочная мощность). Облака точек по умолчанию свёрнуты. Локальные вызывающие через stdio могут использовать include=[...]; публичный режим возвращает спроецированные компактные данные

Планы тренировок и тренировки

Инструмент

Описание

tw_get_training_plan

Получить текущий план тренировок

tw_get_training_plan_by_date

Получить данные плана тренировок на дату

tw_get_training_plan_by_week

Получить данные плана тренировок на неделю

tw_get_training_plan_history

Получить историю планов тренировок

tw_get_training_plan_config

Получить конфигурацию плана тренировок

tw_get_training_plan_preview

Получить предварительный просмотр плана тренировок

tw_get_workout_recommendation

Получить рекомендацию по тренировке

Интеграции и аккаунт

Инструмент

Описание

tw_get_integrations

Список интеграций

tw_get_integration

Получить детали интеграции

tw_get_integration_health

Получить состояние/статус интеграции

tw_get_subscription_status

Получить статус подписки

tw_get_subscription_plans

Получить доступные планы подписки

tw_get_resting_max_values

Получить значения физиологии в покое/максимуме

Пороги и зоны

Инструмент

Описание

tw_get_ve_targets

Текущие цели по VE (VT1, BP, VT2, VO2max) для каждого вида спорта

tw_compute_power_at_threshold

Соединить внешний ряд мощности ([[t_seconds, watts], ...]) с обнаруженными точками останова → средняя мощность на VT1/VT2/VO2max/FatMax. Перекрёстная проверка/обратное заполнение для мощности, уже записанной Tyme Wear

tw_get_zone_distribution

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

tw_tag_threshold

Пометить вентиляционный порог (vt1, vt2, bp, vo2max) из конкретной активности

tw_tag_new_zone

Пометить значение зоны новой модели (fatmax, vt1, vt2, vo2max) из конкретной активности

Максимальные значения

Инструмент

Описание

tw_get_max_value_detections

Список ожидающих уведомлений об обнаружении максимальных значений

tw_respond_max_value

Принять или отклонить обнаруженное максимальное значение

Экспорты

Инструмент

Описание

tw_export_csv

Экспорт активности в CSV

tw_export_csv_full

Экспорт полного CSV со всеми каналами данных

tw_export_fit

Экспорт активности в файл FIT

Примеры запросов

После настройки вы можете задавать Claude такие вопросы:

  • "Покажи мои последние 10 велосипедных активностей"

  • "Проанализируй данные дыхания с моей вчерашней поездки — каковы были средние VE и время в каждой зоне?"

  • "Какие у меня текущие пороги VT1 и VT2 для велоспорта?"

  • "Извлеки инсайты из моего последнего порогового теста — какова моя мощность на VT2 и достиг ли я VO2max?"

  • "Экспортируй мою последнюю активность в файл FIT"

  • "Сравни мои целевые показатели VE для бега и велоспорта"

  • "Покажи мой текущий план тренировок и рекомендации по тренировке"

  • "Проверь, есть ли у моей последней поездки strap-файлы, логи или результаты определения workout-zone"

  • "Перечисли мои подключенные интеграции и статус подписки"

Безопасность

  • Учетные данные хранятся в системной связке ключей (предпочтительно) или в зашифрованном файле AES-256-GCM с выводом ключа PBKDF2 (600 000 итераций, машинно-специфичная соль)

  • Токены и учетные данные никогда не возвращаются в результатах инструментов MCP (очищаются перед передачей Claude)

  • Для CI/контейнеров доступна аутентификация через переменные окружения: TYMEWEAR_EMAIL + TYMEWEAR_PASSWORD

  • Права доступа к файлам с зашифрованными учетными данными установлены в 600 (только чтение/запись владельца)

  • Публичный режим требует аутентификации через bearer или OAuth и является однопользовательским: вышестоящая аутентификация Tyme Wear использует серверные переменные окружения TYMEWEAR_EMAIL/TYMEWEAR_PASSWORD (никогда не локальную связку ключей или зашифрованный файл, которые доступны только для чтения в serverless), каждый результат скрывает приватные данные, а инструменты экспорта сырых/файловых данных отключены

Архитектура

tymewear-mcp/
├── src/tymewear_mcp/
│   ├── cli.py              # CLI entry point
│   ├── server.py           # MCP server + 40 tool registrations
│   ├── public.py           # Public Streamable HTTP server + bearer/OAuth auth
│   ├── auth/               # Credential storage (keyring → encrypted → env) + OIDC verifier (oidc.py)
│   ├── client/             # Async HTTP client + Pydantic models
│   └── tools/              # Tool implementations (incl. threshold_analysis.py, _slimming.py)
└── tests/                  # 340 tests

Технологический стек: Python 3.10+, MCP SDK, httpx, Pydantic, keyring, cryptography, PyJWT

Разработка

pip install -e ".[dev]"
pytest tests/ -v          # Run tests
ruff check src tests      # Lint
mypy src/                 # Type check

Лицензия

MIT

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

UpdatingMaintainers
UpdatingResponse time
Release cycle
0Releases (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

View all related MCP servers

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.

  • WHOOP recovery, strain, sleep and workouts in Claude via official WHOOP OAuth. 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/tkelkermans/tymewear-mcp'

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