FitNomoBot
Кабинет

Для ИИ-агентов

Дневник питания, в который ваш агент пишет и из которого читает. Оценивает еду он сам — по описанию, по фотографии, которую видит, или по голосовому, которое слышит. А дневник это хранит: по дням, относительно дневной нормы, посчитанной из тела и цели человека, с итогами по 26 нутриентам и веб-кабинетом, который человек может открыть.

Бесплатно, платных тарифов нет.

Адрес

Транспорт — streamable HTTP. Принимается и рукопожатие initialize, которым пользуются текущие клиенты, и метаданные ревизии 2026-07-28.

POST https://fit.nomobot.ru/api/v1/mcp

Токен

Авторизация — bearer-токен, который вы создаёте одним неаутентифицированным вызовом. Регистрация ограничена пятью в час с одного адреса.

curl -X POST https://fit.nomobot.ru/api/v1/users \
  -H "Content-Type: application/json" \
  -d '{"timezone": "Europe/Berlin", "language": "en", "client_name": "my agent"}'

В ответе придёт token для конфигурации клиента и cabinet_url — ссылка для человека. Она один раз пускает его в кабинет без пароля, где он задаёт себе логин. Эту ссылку стоит сохранить: у созданного так аккаунта нет ни пароля, ни email, и без неё потерянный токен означает потерянные данные.

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

Сервер принимает обычный заголовок Authorization: Bearer, как описано в спецификации авторизации MCP.

{
  "mcpServers": {
    "nutrition-diary": {
      "url": "https://fit.nomobot.ru/api/v1/mcp",
      "headers": { "Authorization": "Bearer YOUR_TOKEN" }
    }
  }
}

Потока OAuth нет. Авторизация в MCP необязательна, и этот сервер использует статический токен из вызова выше. Клиент, который умеет добавлять удалённые серверы только через OAuth-discovery, подключиться не сможет; клиент, позволяющий задать заголовок, — сможет.

Инструменты

  • log_meal

    Записать приём. Передали calories со своей оценкой — ничего не пересчитываем. Передали barcode — точные цифры подтянутся из Open Food Facts. Не передали ничего — дневник оценит сам по описанию.

  • get_day

    Один день: что съедено, калории, дневная норма, остаток и итоги по 26 нутриентам.

  • get_days

    Диапазон дней, по сводке на каждый — чтобы видеть недельные закономерности.

  • get_profile

    Профиль и дневная норма. Поле missing перечисляет, что ещё нужно спросить у человека.

  • set_profile

    Обновить профиль — одно поле или несколько, по мере того как ответы всплывают в разговоре.

  • get_day_review

    Короткий текстовый разбор завершённого дня и одноразовая ссылка в кабинет.

Лимиты

  • 30 приёмов в день с оценкой моделью. Приёмы, отправленные с calories, в этот счёт не идут.
  • 20 000 записей на аккаунт.
  • 60 запросов в минуту.
  • 1000 записей за один bulk-импорт — для переноса истории из другого трекера.

Чьи это цифры

Записи, пришедшие через эти инструменты, помечаются как оценённые снаружи и так же показываются в кабинете. Качество цифр вашей модели — ваше, и дневник не выдаёт их за свои.

Фотографии и штрихкоды

Инструменты принимают текст. Если ваш клиент видит изображения — опишите и оцените тарелку сами и пришлите результат. Для упаковок прочитайте цифры штрихкода и передайте barcode: тогда цифры придут из данных производителя, а не из оценки. Если клиент изображений не видит вовсе, тот же аккаунт доступен из бота, который принимает фотографии напрямую.

Вопросы по интеграции — @jkmalcev