openGym MCP
MCP-сервер для учета тренировок: Claude Desktop, Cursor и Cline читают программы, подходы, вес тела и 1ПМ из вашего самостоятельно развернутого openGym
- 17 207 ★ репозитория
- Последний коммит
- AGPL-3.0
Расширенный доступ
Почему такой уровень
- Читает данные о здоровье: вес тела и историю тренировок из файлов вашего экземпляра openGym
- Локальный процесс Node получает доступ к папке data и зависимости из npm install, сеть сервер не использует
Установка
- Работает в
Ручная установка
git clone https://github.com/DuarteSantos8/openGym && cd openGym/mcp && npm installСервер лежит в папке mcp репозитория, пакета в реестре npm у него нет. Сам openGym поднимается отдельно командой docker compose up -d.
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Читает данные о здоровье: вес тела и историю тренировок из файлов вашего экземпляра openGym
- Локальный процесс Node получает доступ к папке data и зависимости из npm install, сеть сервер не использует
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
openGym MCP — MCP-сервер для учета тренировок, который лежит в папке `mcp/` репозитория трекера openGym и отвечает на вопросы о ваших занятиях. Клиент вроде Claude Desktop запускает его как локальный процесс по stdio, сервер читает файлы `state-<uid>.json` из папки `./data` вашего экземпляра openGym и отдает данные в JSON. Сервер только читает, пишущих инструментов в этой версии нет. Девять инструментов: `list_routines` и `get_routine` показывают программы и предписания по упражнениям, `preview_session` показывает, что приложение выведет на экран при старте тренировки после применения правил прогрессии, `get_week_plan` дает план на семь дней, `list_workouts` и `get_workout` возвращают сессии и разбор по подходам, `get_bodyweight` отдает взвешивания и отклонение от цели, `estimate_1rm` считает лучший расчетный одноповторный максимум и тренд, `muscle_balance` ранжирует мышцы по нагрузке и показывает недогруженные. Числа считают те же чистые функции из `frontend/src/lib/`, что рисуют экран статистики, поэтому ответ агента на вопрос о жиме лежа совпадает с цифрами в приложении. Метки подходов, дат и уровней заранее переведены в читаемый вид в `src/labels.js`, и агенту не нужно разбирать их самому.
Для кого. Для тех, кто ведет тренировки в самостоятельно развернутом openGym и хочет спрашивать у ИИ-ассистента про прогресс, нагрузку и план недели.
Подходит, если
- Нужно спросить у ассистента, какой у вас расчетный 1ПМ в жиме и как он менялся за последние месяцы
- Перед тренировкой хочется узнать, какой вес предложит приложение: `preview_session` показывает его после правил прогрессии, а не по сохраненной программе
- Вы хотите понять, какие мышцы за неделю или месяц остались недогруженными, и получить совет по программе
- Нужно сверить вес тела с целевой линией и увидеть отклонение числом, не открывая приложение
Не подходит, если
- Нужно записывать тренировки, вес тела или менять программу через агента: пишущие инструменты автор отложил на следующий этап
- У вас нет самостоятельно развернутого openGym: сервер читает файлы из папки `./data` экземпляра и не подключается к чужим серверам или облаку
- Приложение стоит на другой машине, чем клиент, или нужен доступ по HTTP: сервер читает папку данных напрямую, а транспорт HTTP запланирован только на третий этап
- На машине нет Node.js или нельзя выполнить `npm install`: сервер держится на пакетах MCP SDK и zod
Пример запроса к агенту
Какой у меня расчетный 1ПМ в жиме лежа и как он менялся за последние три месяца? И какие мышцы я недогрузил на этой неделе?MCP
- Транспорт
- stdio
- Авторизация
- не нужна
Переменные окружения
OPENGYM_DATA- Путь к папке data экземпляра openGym, откуда сервер читает файлы состояния
OPENGYM_UID- Идентификатор профиля из data/db.json, нужен при нескольких пользователях
Ограничения
- Сервер запускается из исходников: нужен клон репозитория, команда `npm install` в папке `mcp/` и Node.js. В образ Docker он не входит.
- Версия 0.1.0 только читает данные. Запись тренировок, веса и правка программ запланированы на второй этап вместе с ключом доступа, который выдает панель администратора.
- Сервер видит одного пользователя за запуск. При единственном профиле он находится сам, при нескольких укажите `OPENGYM_UID`: идентификатор лежит в `./data/db.json` в списке `users`.
- Сам трекер openGym, по словам автора, в значительной части написан в Claude Code. Логика тренировок покрыта тестами, а у сервера в папке `mcp/` есть свои 58 проверок на данных демонстрационной версии.
- Лицензия AGPL-3.0-or-later. Медиафайлы упражнений в приложении имеют отдельную лицензию и в сервер не входят.
Как отключить. Уберите блок `opengym` из `mcpServers` в настройках клиента и перезапустите клиент. Сервер ничего не записывает и не работает в фоне: он завершается, когда клиент закрывает соединение. Папка `mcp/` с зависимостями остается в клоне репозитория, ее можно удалить.
Частые вопросы
Как подключить Claude Desktop к трекеру тренировок openGym?
Выполните `npm install` в папке `mcp/`, затем добавьте в `claude_desktop_config.json` сервер `opengym` с командой `node`, путем к `mcp/src/index.js` и переменной `OPENGYM_DATA` с путем к папке `data`. После перезапуска клиента в stderr сервера появится строка о профиле, для которого он отвечает.
Чем `get_routine` отличается от `preview_session`?
`get_routine` отдает то, что сохранено в программе. `preview_session` показывает, что приложение выведет на экран при старте: правила прогрессии и история могут поднять или снизить вес. Программа с приседом 3×8 на 60 кг после прогрессии откроется с 75 кг, и вес называть нужно по ответу `preview_session`.
Может ли ассистент через MCP записать тренировку или вес тела?
Нет. В версии 0.1.0 девять инструментов, и все они читают. Запись тренировок, веса и правка программ вынесены на второй этап, для которого нужны ключ доступа из панели администратора и блокировка записи, чтобы не конфликтовать с веб-интерфейсом.
Видит ли ассистент ключи доступа passkey и секреты сессий?
Нет. Сервер читает только файлы `state-<uid>.json` с данными тренировок. Закрытые ключи passkey остаются на вашем устройстве, ключи VAPID и секрет подписи сессий лежат в других файлах и не передаются ассистенту. Сетевых запросов сервер не делает и телеметрии не отправляет.
Как узнать, какие мышцы остались недогруженными?
Вызовите `muscle_balance`: он ранжирует мышцы по нагрузке за неделю, месяц или все время и отдельно называет недогруженные. Тот же расчет приложение показывает на карте мышц, поэтому цифры в чате и на экране совпадают.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
MCP-серверыStrava MCP
Strava MCP Server
MCP-сервер Strava: агент читает ваши тренировки, пульс, ватты, сегменты и маршруты и выгружает маршруты в GPX и TCX
Garmin MCP
garmin-mcp
Данные Garmin Connect для агента: активности, здоровье, правка названий и заметок. Работает через неофициальную библиотеку python-garminconnect
Hevy MCP
hevy-mcp
Данные тренировок Hevy для агента: программы, шаблоны упражнений, папки. Нужен ключ API, доступный только с платным Hevy PRO
YouGile MCP
Yougile MCP Server
MCP-сервер для YouGile: проекты, доски, колонки, задачи, пользователи и чаты задач из агента
Google Calendar MCP Server — календарь для Claude
Google Calendar MCP Server
MCP календарь для Claude Desktop: агент смотрит, создает, переносит и удаляет события Google Calendar, включая повторяющиеся, по запросу на обычном языке
yougile-mcp
@nebelov/yougile-mcp
MCP-сервер для таск-трекера YouGile с покрытием API v2: проекты, доски, задачи, чаты, сотрудники, стикеры и вебхуки
Коротко о README
Главная страница репозитория описывает трекер целиком: план на неделю по библиотеке из более чем 5600 упражнений, подсказки по весам с правилами прогрессии, статистику, вход по passkey, импорт из FitNotes, Strong и Hevy и 19 языков. Быстрый старт сводится к `docker compose up`. Отдельный файл `mcp/README.md` описывает сервер: установку, регистрацию в клиенте, таблицу из девяти инструментов, план второго и третьего этапов и набор тестов.