Garmin Read-Only MCP
Garmin Read-Only MCP
Намеренно ограниченная интеграция с Garmin Connect для локального использования с Hermes Agent. Она синхронизирует выбранные сводки Garmin в кэш SQLite, доступный только владельцу, а затем предоставляет только этот нормализованный кэш через три инструмента MCP, доступных только для чтения.
Этот проект использует поддерживаемый сообществом клиент
python-garminconnectи недокументированные конечные точки Garmin Connect. Он не связан с Garmin и не поддерживается ею. Конечные точки могут измениться, а автоматизированный доступ может нести риски для учетной записи или условий использования. Официальная программа для разработчиков Garmin Connect остается предпочтительным способом для одобренных бизнес-интеграций.
Модель безопасности
Архитектура разделяет сетевой доступ и процесс MCP:
garmin-readonly-authвыполняет одноразовый интерактивный вход в локальном терминале. Ввод пароля и MFA скрыт и никогда не принимается в качестве аргументов команды.garmin-readonly-syncзагружает повторно используемые локальные данные сессии, получает данные за ограниченный диапазон дат, отфильтровывает поля из исходного API и записывает нормализованные сводки в SQLite.garmin-readonly-mcpне импортирует ни клиент Garmin, ни данные сессии. Он читает только нормализованный кэш SQLite и отклоняет кэши, которые являются символическими ссылками, нерегулярными файлами, не принадлежат текущему пользователю или доступны группе/другим пользователям.
Каталог состояния по умолчанию:
~/.local/share/garmin-readonly-mcp/
├── tokens/ # Garmin session material, mode 0700/0600
└── cache.sqlite3 # normalized cache, mode 0600Установите несекретную переменную окружения GARMIN_READONLY_HOME, чтобы использовать другой корневой каталог.
Никогда не размещайте каталог состояния внутри репозитория.
Related MCP server: garmin-mcp-local
Область данных
Кэш и MCP предоставляют только:
Общие, активные и базальные/калории покоя за день
Шаги и пульс в покое, когда доступны
Тип активности, время начала, продолжительность, дистанция и калории
Продолжительность/оценка сна, Body Battery, ночной HRV/статус и готовность к тренировкам, когда доступны
Они намеренно исключают:
Профиль Garmin и социальные данные
Идентификаторы учетной записи и идентификаторы активностей
Информацию об устройствах
GPS-координаты, маршруты и файлы FIT/GPX/TCX
Вес и композицию тела
Необработанные ответы Garmin
Операции загрузки, обновления, планирования или удаления
Общий или произвольный доступ к API Garmin
Значения калорий Garmin — это контекст активности, а не команда к увеличению потребления пищи.
Требования
Linux или другое Unix-подобное окружение с приватными правами доступа к файлам
Python 3.12+
Учетная запись Garmin Connect
Установка
git clone https://github.com/alexpomsft/garmin-readonly-mcp.git
cd garmin-readonly-mcp
uv sync --frozenАутентификация локально
Запустите это в приватном локальном терминале — не в Telegram, чате, истории команд или на общем экране:
uv run garmin-readonly-authКоманда запрашивает локально email, скрытый пароль и скрытый MFA, если Garmin этого требует. Она сохраняет повторно используемые данные сессии, но не пароль.
Синхронизация
По умолчанию синхронизируются сегодня и вчера:
uv run garmin-readonly-syncМожно запросить ограниченный исторический диапазон:
uv run garmin-readonly-sync --end-date 2026-08-18 --days 14--days должен быть от 1 до 31. Ошибки провайдера заменяются фиксированным публичным
сообщением, чтобы необработанные ответы Garmin и данные аутентификации не выводились.
Запуск MCP-сервера
После хотя бы одной успешной синхронизации:
uv run garmin-readonly-mcpСервер stdio предоставляет ровно:
get_daily_activity(date: YYYY-MM-DD)get_recent_activities(days: 1..31 = 7)get_recovery_summary(date: YYYY-MM-DD)
Схемы инструментов отклоняют необъявленные аргументы.
Подключение к Hermes Agent
Используйте команду MCP Hermes, а не редактируйте config.yaml вручную:
hermes mcp add garmin-readonly \
--command /absolute/path/to/garmin-readonly-mcp/.venv/bin/garmin-readonly-mcp
hermes mcp test garmin-readonlyПерезапустите Hermes после добавления сервера, чтобы его инструменты были обнаружены. Никакие учетные данные или
пути к токенам сессии не передаются в конфигурацию MCP; она использует приватный корневой каталог состояния
по умолчанию. Если GARMIN_READONLY_HOME был изменен, передайте только этот несекретный параметр
с помощью hermes mcp add ... --env GARMIN_READONLY_HOME=/private/path.
Разработка и проверка
uv sync --frozen
uv run pytest --cov=garmin_readonly_mcp --cov-report=term-missing
uv run ruff check .
uv run mypy src tests
uv run pip-auditРеализация разрабатывалась с использованием подхода «сначала падающие тесты». CI запускает те же самые проверки: тесты, линтинг, проверку типов и аудит зависимостей.
Ограничения
Конечные точки Garmin Connect являются результатом обратной разработки и могут сломаться без предупреждения.
Garmin может ограничивать скорость, запрашивать подтверждение или блокировать автоматизированных клиентов.
Некоторые поля восстановления недоступны на некоторых устройствах или датах и возвращают
null.Локальный кэш — это снимок; запускайте
garmin-readonly-syncотдельно, если нужны более свежие данные.Этот проект не изменяет автоматически целевые показатели калорий и не предоставляет медицинских консультаций.
См. SECURITY.md для информации об обработке учетных данных и сообщении об уязвимостях.
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 Servers
- AlicenseAqualityCmaintenanceMCP server for Garmin Connect that provides read-only access to daily health metrics, activities, workouts, and body composition data.32MIT
- AlicenseAqualityBmaintenanceA local MCP server that caches Garmin Connect data in SQLite for fast, read-only queries, with tools for bulk import, rate-limited sync, and failure alerts.9MIT
- AlicenseAqualityBmaintenanceMCP server for reading and querying Garmin Connect data, including activities, strength history, recovery, trends, and optionally creating workouts.12MIT
- Alicense-qualityCmaintenanceRead-only MCP server that exposes Garmin Connect health data from a local SQLite database to AI assistants, enabling queries for recent days, sleep, weekly trends, and a guarded SQL query surface.MIT
Related MCP Connectors
MCP server for Withings health data — sleep, activity, heart, and body metrics.
Garmin data in Claude & ChatGPT via the Garmin Health API. OAuth sign-in, no password sharing.
Read-only MCP server for ClassQuill, a tutoring-business-management platform.
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/alexpomsft/garmin-readonly-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server