Skip to main content
Интеграция с ИИ · MCP

Formul.io MCP-сервер

Подключите свои рецепты и библиотеку ингредиентов к Claude, ChatGPT и любому MCP-совместимому ассистенту — и работайте над рецептурой прямо в диалоге.

MCP-адрес
https://api.formul.io/mcp
Поддерживает версии протокола MCP с 2024-11-05 по 2026-07-28 — включая stateless-модель с метаданными в каждом запросе и server/discover — интерактивные виджеты результатов (MCP Apps) в Claude и ChatGPT и встроенные подсказки-руководства.

Что такое MCP-сервер Formul.io?

MCP (Model Context Protocol) — открытый стандарт, позволяющий ИИ-ассистентам вызывать внешние инструменты. MCP-сервер Formul.io даёт прямо в диалоге доступ к вашим сохранённым рецептам, вашим ингредиентам и библиотеке из более чем 10 000 ингредиентов, а также к тому же научному движку, что стоит за нашими калькуляторами.

Подключитесь один раз и попросите ассистента прочитать рецепт, оценить активность воды и срок годности, смоделировать изменения, найти проблемы, подобрать замены или собрать рецепты в коллекции — не покидая чат. Контроль остаётся за вами: ассистент делает только то, что разрешают выданные области доступа, а удаление требует явного подтверждения.

Инструменты для ассистента

Инструменты сгруппированы по задачам. Инструменты чтения получают данные или выполняют расчёты без сохранения изменений; для записи нужны выданные вами разрешения.

На любом тарифе, включая Free, можно пользоваться инструментами чтения, сохранять новые рецепты через create_recipe и import_recipe, сохранять заметки рецепта через save_recipe_note и запускать импорт с проверкой. Остальные инструменты записи — update_recipe, delete_recipe, delete_recipe_note, set_recipe_dag, save_collection, delete_collection, create_ingredient и update_ingredient — требуют Pro. Каждый вызов учитывается в лимитах запросов вашего тарифа.

Поиск и чтение рецептов
  • list_recipes
    Найти и отфильтровать ваши сохранённые рецепты.
  • get_recipe
    Полный состав и метрики одного рецепта.
  • list_recipe_versions
    Сохранённые версии рецепта, новые сверху, и признак того, сохранено ли текущее состояние.
Создание и редактирование
  • create_recipe
    Создать и сохранить новую авторскую рецептуру из известных ингредиентов или клонировать существующий рецепт.
  • update_recipe
    Изменить название, настройки, теги или полный состав — у ингредиентов есть флаг «excluded», чтобы оставить ингредиент в рецепте, но исключить из всех расчётов (например, для настаивания). Передайте revision из get_recipe как expected_revision — и если рецепт успели изменить в другом месте, обновление будет отклонено, а не записано поверх.
  • import_recipe
    Импортировать один внешний рецепт, уже структурированный ассистентом: проверить каждую строку ингредиента по порядку, затем атомарно сохранить описание, фазы, примечания к строкам, необязательные этапы процесса и все пошаговые инструкции источника как заметки рецепта.
  • delete_recipe
    Удалить рецепт — требует подтверждения.
Импорт рецептов с проверкой (спонсируемый лимит)
  • start_import
    Запустить импорт с предпросмотром для сырого или содержащего несколько рецептов файла .xlsx/.xlsm, .csv/.tsv, .md/.txt, .pdf или .docx (base64). Форматы без читателя (.xls, .ods, .doc, .rtf, изображения), экспорт Formul.io и скан PDF отклоняются с указанием формата для конвертации или раздела приложения, который их читает. Язык источника определяется автоматически, если не передать его явно. Документ разбирается ИИ-моделью OpenAI; загруженный файл удаляется через 30 дней, задача импорта хранится до удаления аккаунта. Возвращает задачу для планирования и предпросмотра.
  • get_import_preview
    Ограниченный предпросмотр без записи: серверные статусы готовности рецептов, точные итоги по всему импорту, число затронутых рецептов, до 100 рецептов/исправлений на страницу и 5 кандидатов на пункт.
  • resolve_import_item
    Решить один помеченный пункт: сопоставить или создать ингредиент, принять оценочный вес, исключить непересчитываемую строку или строку с неподтверждённым названием, добавить или пропустить нераспознанную ячейку источника, подтвердить частично прочитанный файл либо включить/исключить сегмент. Возвращает стабильную квитанцию плана; затем заново запросите предпросмотр по job ID.
  • commit_import
    Создать рецепты именно из просмотренного плана, передав expected_plan_id: устаревшее превью отклоняется, повторный импорт остаётся идемпотентным, а повторный коммит уже созданного плана возвращает его результаты.
Ингредиенты
  • search_ingredients
    Искать в ваших и в общей библиотеке. Возвращает состав, аллергены и массу, которую записанные компоненты не объясняют; полный вид добавляет углеводы и источник справочных данных. Если ничего не найдено, предлагает продукты из баз USDA/CIQUAL.
  • resolve_ingredients
    Сопоставить весь список названий ингредиентов рецепта с id из библиотеки за один вызов.
  • find_substitutes
    Замены, ранжированные по составу, диете и вкусу: состав, аллергены и готовая замена для симуляции; полный вид добавляет углеводы и источник справочных данных.
  • create_ingredient
    Добавить свой ингредиент с полным составом, включая измеренные общие полиолы и каждый названный полиол (эритрит, сорбит, мальтит, изомальт, ксилит, маннит, лактит, глицерин), а также вещества, которые не выражаются макронутриентами (кислоты, алкалоиды какао, разрыхлители), — через components. В ответе указывается неучтённая масса, если она осталась.
  • update_ingredient
    Изменить только переданные поля своего ингредиента; null сбрасывает nullable-значение, поэтому вычисляемые поля могут быть рассчитаны заново; components заменяет всю карту прочих веществ; неизвестные и защищённые поля отклоняются.
Анализ и метрики
  • analyze_recipe
    Оценка качества, проблемы, проверка правил и предложения по улучшению.
  • get_recipe_metrics
    Активность воды, срок годности, состав и пищевая ценность — для сохранённого рецепта или произвольного списка ингредиентов. Срок годности приходит как микроорганизмы, способные расти при этой активности воды, и условия хранения, которые нужны продукту, со справочным числом дней. Каждая метрика приходит с целевым диапазоном для этого калькулятора и стиля и с отклонением от него.
  • simulate_changes
    Сравнить множество вариантов рецептуры за один вызов, ничего не сохраняя. Отправной точкой может быть сохранённый рецепт или произвольный список ингредиентов; каждый сценарий возвращается дельтами «до/после» вместе с диапазонами, по которым он оценивается, и сообщает, когда меняется класс срока годности или нужные продукту условия хранения. Укажите нужные метрики, чтобы добавить их.
Справочник
  • advise_formulation
    Если метрика не выходит в диапазон, показывает, чего ещё можно достичь текущими ингредиентами и какой класс ингредиента откроет остальное. Рецепт не предлагает и компромисс за вас не выбирает.
  • get_calculator_guide
    Оптимальные диапазоны, классы срока годности по активности воды, правила рецептур и схема настроек для калькулятора; отдельные секции отдают глоссарий метрик и шаблон технологического графа. Каждый стиль перечислен с фразой о том, что это такое, чтобы можно было выбрать; передайте его (сорбет, соус, трюфель…) — и диапазоны вернутся для этого стиля, потому что у разных стилей они сильно отличаются.
Заметки
  • list_recipe_notes
    Прочитать оговорки и советы, сохранённые в рецепте: закреплённые первыми, постранично.
  • save_recipe_note
    Сохранить оговорку, совет или обоснование.
  • delete_recipe_note
    Удалить заметку — требует подтверждения.
Коллекции
  • list_collections
    Просмотреть ваши или публичные коллекции.
  • get_collection
    Коллекция с входящими рецептами и вашими приватными инструкциями и требованиями проекта.
  • save_collection
    Создать или обновить коллекцию, включая инструкции и требования проекта.
  • delete_collection
    Удалить коллекцию — требует подтверждения.
Граф процесса (DAG)
  • get_recipe_dag
    Прочитать многоэтапный граф процесса рецепта, включая исходные заметки и инструкции для кондитера на каждом этапе, и токен графа для безопасной записи.
  • set_recipe_dag
    Создать или заменить граф процесса, включая исходные заметки и инструкции для кондитера на этапах; не перезапишет граф, изменённый после чтения.

Claude.ai в браузере Рекомендуется · без ключа

Самый простой путь. Claude.ai сам проходит весь поток OAuth.

  1. 1 Откройте claude.ai и перейдите в Settings → Connectors.
  2. 2 Нажмите Add custom connector.
  3. 3 Назовите его Formul.io и вставьте адрес MCP-сервера ниже. Поля OAuth Client ID и Secret оставьте пустыми — они определяются автоматически.
  4. 4 Нажмите Add. Claude.ai перенаправит вас на Formul.io для авторизации.
  5. 5 Войдите, если потребуется, проверьте запрашиваемые разрешения и нажмите Allow.
  6. 6 Начните новый чат и спросите Formul.io — примеры запросов ниже.
MCP-адрес
https://api.formul.io/mcp
Превью
Доступ к аккаунту

api.formul.io запрашивает доступ к вашему аккаунту Formul.io.

Токены будут отправлены на
https://claude.ai/api/mcp/auth_callback
Запрашиваемые разрешения
  • Запуск расчётов рецептур
  • Чтение ваших рецептов
  • Создание и изменение рецептов
  • Поиск по базе ингредиентов
  • Создание и изменение ингредиентов
  • Диагностика проблем рецепта
Отклонить Разрешить
Так выглядит экран авторизации Formul.io — проверьте разрешения и нажмите «Разрешить».

Claude Desktop API-ключ

Для Claude Desktop или любого клиента со статическим bearer-токеном.

1. Создайте API-ключ

Войдите в Formul.io, откройте Settings → Security и создайте API-ключ. Выберите только нужные разрешения:

  • Запуск расчётов рецептур
  • Чтение ваших рецептов
  • Создание и изменение рецептов
  • Поиск по базе ингредиентов
  • Создание и изменение ингредиентов
  • Диагностика проблем рецепта
Скопируйте ключ сразу — он показывается только один раз.

2. Добавьте его в конфигурацию

Отредактируйте claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\):

{
  "mcpServers": {
    "formulio": {
      "url": "https://api.formul.io/mcp",
      "headers": {
        "Authorization": "Bearer fio_YOUR_KEY_HERE"
      }
    }
  }
}

Перезапустите Claude Desktop — инструменты Formul.io появятся в списке.

ChatGPT

Для собственного подключения включите Developer mode в Settings → Security and login, если это разрешено вашим аккаунтом или рабочим пространством. Откройте ChatGPT Plugins, нажмите + и добавьте адрес MCP, указанный выше. Войдите в Formul.io, проверьте разрешения и добавьте подключение в новый диалог.

Инструкция подключения OpenAI

Свои агенты и OAuth 2.1

Для собственного MCP-клиента или программного доступа. Аутентификация по API-ключу (Bearer fio_…) или токену доступа OAuth 2.1.

Транспорт

POST https://api.formul.io/mcp
JSON-RPC 2.0 через POST
GET https://api.formul.io/mcp
Информация о сервере без авторизации

Конечные точки OAuth 2.1

Используйте authorization_code с PKCE S256. Issuer: https://api.formul.io. Resource: https://api.formul.io/mcp — передавайте его в запросах authorize, token и refresh. Метод аутентификации публичного клиента — none. Токен доступа живёт 15 минут; каждое обновление заменяет прежнюю пару и начинает новый 30-дневный срок refresh-токена.

Назначение Адрес
Обнаружение (RFC 8414) https://api.formul.io/.well-known/oauth-authorization-server
Авторизация https://app.formul.io/oauth/authorize
Обмен токена https://api.formul.io/api/v1/oauth/token
Регистрация клиента https://api.formul.io/api/v1/oauth/register
Отзыв токена https://api.formul.io/api/v1/oauth/revoke

Быстрый старт

# 1. Register your client once
curl -X POST https://api.formul.io/api/v1/oauth/register \
  -H "Content-Type: application/json" \
  -d '{
    "client_name": "My App",
    "redirect_uris": ["https://myapp.example.com/callback"],
    "grant_types": ["authorization_code", "refresh_token"],
    "scope": ["calculate", "recipes:read", "ingredients:read"]
  }'
# Save the returned client_id. This is a public client with no client secret.

# 2. Send the user to authorize (PKCE, S256)
https://app.formul.io/oauth/authorize
  ?client_id=YOUR_CLIENT_ID
  &redirect_uri=https://myapp.example.com/callback
  &response_type=code
  &scope=calculate+recipes:read+ingredients:read
  &code_challenge=BASE64URL(SHA256(code_verifier))
  &code_challenge_method=S256
  &resource=https%3A%2F%2Fapi.formul.io%2Fmcp
  &state=RANDOM_STATE

# 3. Exchange the code for tokens
curl -X POST https://api.formul.io/api/v1/oauth/token \
  -d "grant_type=authorization_code" \
  -d "code=AUTH_CODE" \
  -d "redirect_uri=https://myapp.example.com/callback" \
  -d "client_id=YOUR_CLIENT_ID" \
  -d "code_verifier=YOUR_VERIFIER" \
  --data-urlencode "resource=https://api.formul.io/mcp"
# -> { "access_token": "...", "refresh_token": "...", "expires_in": 900 }

# 4. Call the MCP server
curl -X POST https://api.formul.io/mcp \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"tools/list","id":1}'

Ваши данные и подключённые ассистенты

Ассистент получает данные рецептов, ингредиентов, коллекций и расчётов, которые возвращают вызванные им инструменты в пределах выданных разрешений. Полученная копия обрабатывается по его политике конфиденциальности. Отключите интеграцию в настройках ассистента, чтобы прекратить её использование; ключи API можно отозвать в Formul.io: Настройки → Безопасность. Отключение не удаляет копии, уже полученные ассистентом.

Политика конфиденциальности

Области доступа

Выдавайте только необходимые разрешения. Если инструменту потребуется дополнительный доступ, клиент сможет запросить ваше согласие, сохранив прежние разрешения. Ограничения подписки действуют отдельно от разрешений OAuth.

Область Что разрешает
recipes:read Просмотр рецептов, коллекций, заметок и графов процесса.
recipes:write Создание, изменение и удаление рецептов, заметок и коллекций; графы процесса.
ingredients:read Поиск в библиотеке ингредиентов и подбор замен.
ingredients:write Создание собственных ингредиентов.
calculate Расчёт метрик и симуляций, чтение справочников калькуляторов.
diagnose Анализ рецептов — оценка качества, проблемы и исправления.

Попробуйте после подключения

Ассистент работает с вашим собственным аккаунтом.

Какие у меня есть рецепты и у какого самый короткий срок годности?
Проверь мой тёмный ганаш и предложи, как продлить срок годности.
Какова активность воды и соотношение сахара и жира в моей солёной карамели?
Смоделируй увеличение глюкозы в ганаше до 120 г — как изменится активность воды?
Найди веганскую замену сливкам в моём рецепте.
Создать бесплатный аккаунт

Решение проблем

Ассистент подключился, но инструментов нет.
Убедитесь, что авторизация завершилась и вы выдали хотя бы одну область доступа. В Claude.ai удалите и заново добавьте коннектор; для API-ключа проверьте его разрешения.
Почему нужно снова дать доступ?
Если refresh-токен истёк или отозван, нужна новая авторизация. Он истекает после 30 дней без успешного обновления; повторное использование уже заменённого токена отзывает цепочку этого подключения. Дополнительные разрешения требуют вашего согласия. Совместимые обновления сервера сохраняют адрес подключения и записи токенов.
После авторизации браузер не возвращается в приложение.
Для собственных OAuth-клиентов redirect_uri должен точно совпадать с зарегистрированным при регистрации клиента — включая завершающий слэш.
Срабатывает ограничение по частоте запросов.
На Free доступно 1 000 вызовов инструментов в день и 100 в минуту. На Pro — 20 000 в день и 120 в минуту. Каждый вызов считается один раз. В обычных диалогах эти лимиты незаметны; распределять вызовы по времени стоит только при полном обходе библиотеки.
Ассистент не удаляет рецепт или заметку.
Так и задумано. delete_recipe, delete_collection и delete_recipe_note требуют явного подтверждения, чтобы ничего не удалилось случайно — попросите ассистента подтвердить.
Не получается подключиться вообще.
Доступ к MCP управляется глобальным переключателем и может быть временно отключён на обслуживание. Повторите позже или напишите на [email protected].

Нужна помощь?

Эта страница — основная документация MCP-сервера Formul.io. Остались вопросы? Мы читаем каждое сообщение.