anatome
anatome: дневник тренировок и питания через диалог с ассистентом
Что умеет
- Искать упражнения и подбирать программы тренировок
- Распознавать еду по фото, тексту или штрихкоду
- Логировать тренировки, приёмы пищи, воду и кардио
- Строить план питания и тренировок под профиль
- Выгружать историю метрик тела и активности
Какие данные видит
Ассистент работает с личным профилем пользователя: журналом тренировок, питания, кардио и телесных показателей, без доступа к чужим данным.
Нужен ли аккаунт
Не нужен: сервер работает без входа
anatome — MCP-сервер для учёта тренировок, питания и показателей тела. Ассистент ищет упражнения из базы на 873 позиции, показывает мышечные диаграммы, распознаёт еду по фото или штрихкоду и ведёт журнал воды, кардио и метрик тела. Подходит для тех, кто хочет логировать активность обычными фразами вместо форм в приложении.
Как подключить
Как подключить anatome к Claude
Адрес сервера, который нужно вставить в настройках Claude:
https://anatome.dev/mcp
- Откройте Claude (сайт claude.ai или приложение для компьютера).
- Перейдите в Настройки → Коннекторы (в английском интерфейсе: Settings → Connectors).
- Нажмите Добавить пользовательский коннектор (Add custom connector).
- Вставьте адрес сервера, скопированный ниже, в поле URL удалённого MCP-сервера и нажмите Добавить.
- В чате нажмите + → Коннекторы и включите новый коннектор.
Пользовательские коннекторы доступны на тарифах Free, Pro, Max, Team и Enterprise. На Free можно добавить только один. В Team и Enterprise коннектор сначала добавляет владелец организации в Настройки организации → Коннекторы.
Авторизация
После нажатия Добавить откроется окно входа в сервис. Войдите под своим аккаунтом и подтвердите доступ. Пароль Claude не видит.
Как подключить anatome к ChatGPT
Адрес сервера, который нужно вставить в настройках ChatGPT:
https://anatome.dev/mcp
- Откройте ChatGPT в браузере (chatgpt.com). Нужен тариф Plus, Pro, Business, Enterprise или Edu.
- Один раз включите режим разработчика: Настройки → Приложения → Дополнительные настройки → Режим разработчика (Settings → Apps → Advanced settings → Developer mode).
- Откройте Настройки → Коннекторы и нажмите Создать (Create).
- Заполните форму: Название (любое), Описание (одна фраза, что делает сервис), URL MCP-сервера (скопируйте ниже).
- В поле Аутентификация выберите OAuth, если сервис требует вход, иначе Нет. Нажмите Создать.
- В новом чате откройте + → Приложения/Коннекторы и включите коннектор.
Название раздела у OpenAI менялось (Connectors → Apps/Plugins). Если пункт называется иначе, ищите «режим разработчика» в настройках. В рабочих пространствах Business/Enterprise администратор должен разрешить пользовательские коннекторы.
Авторизация
При первом использовании ChatGPT откроет окно входа в сервис. Войдите и подтвердите доступ.
Как подключить anatome к Cursor
Адрес сервера, который нужно вставить в настройках Cursor:
https://anatome.dev/mcp
Быстрый способ: нажмите кнопку Открыть в Cursor ниже, Cursor сам предложит добавить сервер.
Вручную:
- В Cursor откройте Settings → Cursor Settings → MCP и нажмите Add new global MCP server.
- Вставьте JSON, скопированный ниже, в открывшийся файл
~/.cursor/mcp.json(для одного проекта:.cursor/mcp.jsonв корне проекта). - Сохраните файл. Сервер появится в списке MCP; при необходимости пройдите авторизацию по кнопке рядом с ним.
Авторизация
Если сервис требует вход, рядом с сервером в списке MCP появится кнопка авторизации.
Список инструментов сервера (36)
Технические названия из tools/list. Нужны только разработчикам.
| search_exercises | Search 873 exercises by name with muscle/equipment/level filters. Rows are lean (name, ext_id, equipment, level, muscles) — enough to pick one; get_exercise returns instructions and media. Paginates: pass next_cursor back as `cursor`. |
| get_exercise | Fetch one exercise by name, id, or random. |
| resolve_exercise | Resolve an exercise name into primary/secondary muscle layers for rendering. |
| list_muscles | List all 23 supported muscle slugs with anatomical names. |
| generate_muscle_image | Render an SVG diagram of the human body with muscles highlighted in arbitrary colors. Returns SVG. |
| list_routines | Browse the curated workout routine library (PPL, upper/lower, full-body, 5x5, etc.). Filter by difficulty, goal, split_type, days_per_week. Returns minimal list. |
| get_routine | Fetch a single curated routine by slug with all days + slots fully expanded (exercises, sets, reps ranges, rest, superset groupings). The 'give me a full program' tool. |
| instantiate_routine | Schedule the signed-in user's routine into planned workouts from start_date. Coach assignment of another user is REST-only. |
| search_foods | Search food products by name (Open Food Facts + USDA). Returns macros per 100g. |
| lookup_barcode | Lookup a food product by EAN/UPC barcode. |
| log_workout | Log a workout with exercise sets (strength or cardio unified). Requires an app user context. |
| get_workouts | List the current app user's workouts (most recent first). |
| log_meal | Log a meal (calories + macros + optional ingredients) for the current app user. |
| get_meals | List the current app user's meals for a date range. |
| log_water | Log water intake (ml) for the current app user. |
| log_body_metric | Log a body measurement. metric_type: weight (kg), height (cm), body_fat (%), muscle_mass (kg), waist/chest/bicep/forearm/hip/thigh/calf/neck/shoulder (cm), bmi, resting_hr (bpm). Logging weight enables bodyweight-inclusive volume analytics. |
| get_body_metrics | List the current app user's body metrics / measurements (weight, height, bicep, body fat, etc.), most recent first. Filter by metric_type (e.g. 'weight', 'bicep') and/or a date range. Requires an app user context. |
| upsert_profile | Upsert the current app user's fitness profile. Set `timezone` first: every daily total, streak and adherence window is bucketed by it and defaults to UTC. `weight` doubles as the fallback bodyweight for bodyweight-inclusive volume when no dated weight metric exists. |
| get_profile | Get the current app user's fitness profile (height, weight, macro + water goals, diet, active sports). Requires an app user context. |
| log_cardio | Log a cardio activity (run/bike/swim/etc.) for the current app user. Supports duration, distance, HR, power, calories. |
| get_cardio_activities | List the current app user's cardio activities (most recent first). |
| ai_parse_meal | Parse free-text meal description ('2 eggs and toast with butter') into structured items with grams + macros. |
| ai_photo_macros | Analyze a meal image and estimate foods + macros. Pass exactly one of image_url or image_base64. Vision model, capped separately from the text AI budget (free tier 1/mo). |
| ai_meal_plan | Draft a meal plan. Not medical advice. confirm:true required. Pass health constraints so the draft can honour them. |
| ai_workout_plan | Draft a workout plan. Not medical advice. confirm:true required. Pass health constraints so the draft can honour them. |
| get_muscle_recovery | Per-muscle 7-day recovery % (Fitbod parity) — the 'what should I train today?' input. Recommends fresh muscles. Pass include_bodyweight=true to add the user's bodyweight to bodyweight exercises so recovery reflects real load. |
| get_nutrition_daily | Per-day calories, macros, fiber/sugar/sodium/alcohol, water, targets and adherence % over a date range (default: last 7 days). The 'how am I tracking today?' tool. Requires X-App-User-Id. |
| get_water | List the current app user's water intake entries for a date range. Requires X-App-User-Id. |
| update_meal | Correct a previously logged meal — name, macros, nutrients, portion, date or meal_type. Pass only the fields you want to change. Requires X-App-User-Id. |
| delete_meal | Delete a logged meal by id (soft delete, 30-day recovery window). Requires X-App-User-Id. |
| update_sets | Correct sets already logged, by set id (log_workout returns them). Relabel the exercise, fix weight/reps/rpe, mark completed, add notes, or delete. Selection and change are separate, so a subset can be relabelled. Adding a set is log_workout, not this. |
| delete_workout | Delete a logged workout and its sets by id (soft delete, 30-day recovery window). |
| export_data | Export the signed-in user's data as JSON. Pass `domains` (e.g. meals,workouts) or confirm:true for a full copy. Identity comes from the token, never a caller-supplied user id. |
| get_events | What changed since a cursor, including DELETES, which a list read cannot show. Returns {seq, entity, id, action}. Pass the last seq back as `since` on the next call to receive only entries after it; omit `since` for a first sync. seq is a global counter: gaps in your feed are other accounts' events, not lost data. Judge completeness from has_more, not seq. |
| my_training_context | Returns a slice of the signed-in user's training picture. Default domains are workouts and today's nutrition. Pass `domains` to add checkin, notes or profile, or `domains=all`. Identity comes from the token, not a caller-supplied user id. |
| get_progress | Any progression metric for the current user — pick one in `metric`. training_load is acute:chronic (>1.5 ramping too fast, <0.8 detraining); muscle_recovery is per-muscle freshness; correlate takes metric_a vs metric_b. Only completed sets count. |