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 ингредиентов, а также к тому же научному движку, что стоит за нашими калькуляторами.

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

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

28 инструментов, сгруппированы по назначению. Инструменты только для чтения всегда безопасны; создание, изменение и удаление ограничены выданными областями доступа.

Поиск и чтение рецептов
  • list_recipes
    Найти и отфильтровать ваши сохранённые рецепты.
  • get_recipe
    Полный состав и метрики одного рецепта.
Создание и редактирование
  • create_recipe
    Создать и сохранить новую авторскую рецептуру из известных ингредиентов или клонировать существующий рецепт.
  • update_recipe
    Изменить название, настройки, теги или полный состав — у ингредиентов есть флаг «excluded», чтобы оставить ингредиент в рецепте, но исключить из всех расчётов (например, для настаивания).
  • import_recipe
    Импортировать один внешний рецепт, уже структурированный ассистентом: проверить каждую строку ингредиента по порядку, затем атомарно сохранить описание, фазы, примечания к строкам, необязательные этапы процесса и все пошаговые инструкции источника как заметки рецепта.
  • delete_recipe
    Удалить рецепт — требует подтверждения.
Импорт рецептов с проверкой (спонсируемый лимит)
  • start_import
    Запустить импорт с предпросмотром для сырого или содержащего несколько рецептов файла Excel/CSV/текста/PDF/Word (base64). Язык источника определяется автоматически, если не передать его явно. Возвращает задачу для планирования и предпросмотра.
  • 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
    Смоделировать сценарии «что если» без сохранения. Каждый сценарий возвращается дельтами «до/после»; укажите нужные метрики, чтобы добавить их.
Справочник
  • 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
    Создать или заменить граф процесса, включая исходные заметки и инструкции для кондитера на этапах.

Вариант A — 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 — проверьте разрешения и нажмите «Разрешить».

Вариант B — 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 появятся в списке.

Вариант C — свои агенты и 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

PKCE для публичного клиента (authorization_code). Без client secret. Токен доступа живёт 1 час; 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"
  }'
# -> { "client_id": "...", "client_secret": null }

# 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
  &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"
# -> { "access_token": "...", "refresh_token": "...", "expires_in": 3600 }

# 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}'

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

Выдавайте только то, что нужно ассистенту. Каждому инструменту нужна своя область; без неё вызов отклоняется.

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

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

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

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

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

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

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

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