Для ИИ-агентов
Дневник питания, в который ваш агент пишет и из которого читает. Оценивает еду он сам — по описанию, по фотографии, которую видит, или по голосовому, которое слышит. А дневник это хранит: по дням, относительно дневной нормы, посчитанной из тела и цели человека, с итогами по 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