MCP в Open WebUI: как дать моделям доступ к внешним инструментам

Open WebUI умеет подключать MCP-серверы и отдавать их инструменты моделям. Разбираем пошаговую настройку, ограничения и то, как это сказывается на расходе токенов при работе через шлюз.

5 мин · · агенты · автоматизация

Open WebUI MCP позволяет подключить к чату внешние инструменты: поиск по базе, задачи в трекере, файлы, любые сервисы с MCP-сервером. Модель сама решает, когда вызвать инструмент, а Open WebUI выполняет вызов и возвращает результат. Ниже разберём настройку, отличия от OpenAPI-инструментов, работу со stdio-серверами и то, сколько токенов это добавляет, когда модели подключены через шлюз.

Описание основано на документации Open WebUI (страница про MCP и про инструменты). Интерфейс меняется между версиями, а встроенная поддержка MCP, по документации, начинается с версии 0.6.31, поэтому пункты меню сверяйте у себя.

Как это работает вместе со шлюзом

Схема состоит из трёх частей:

  1. Модель. Подключена к Open WebUI как OpenAI-совместимый провайдер, адрес https://api.zukko.pro/v1, ключ fetch_.... Подробности в статье Open WebUI: подключение к Zukko.
  2. Open WebUI. Хранит список инструментов, передаёт их описания модели вместе с запросом и выполняет вызовы.
  3. MCP-сервер. Живёт отдельно и отвечает на вызовы Open WebUI.

Шлюз о существовании MCP ничего не знает. Для него это обычный запрос chat completions, в котором есть массив tools и, в следующем запросе, результаты вызовов. Значит, MCP не требует от шлюза ничего особенного, но требует от модели умения вызывать инструменты. Это ключевой момент: по документации Open WebUI, MCP только подключает инструменты, а способность ими пользоваться зависит от модели. Если модель игнорирует инструменты или присылает неверные аргументы, документация советует взять более сильную модель с надёжным вызовом функций, а не считать, что сломан MCP.

Пошаговая настройка

По документации Open WebUI:

  1. Откройте Settings, Admin, Integrations.
  2. В разделе External Tool Servers нажмите Add Connection.
  3. В поле Type выберите MCP (Streamable HTTP). Не выбирайте OpenAPI: если вставить MCP-конфигурацию в подключение типа OpenAPI, интерфейс может зависнуть на бесконечной загрузке.
  4. Введите адрес сервера и способ авторизации.
  5. Сохраните, при запросе перезапустите Open WebUI.

Затем включите нужный инструмент в самом чате через меню инструментов у поля ввода (точное название пункта зависит от версии).

Способы авторизации

  • None — для локальных серверов и закрытых сетей. Документация советует по умолчанию выбирать именно его, если сервер не требует токен: режим Bearer с пустым ключом отправляет пустой заголовок, и многие серверы отклоняют соединение.
  • Bearer — когда у MCP-сервера есть свой API-токен; его нужно вписать в поле ключа.
  • OAuth 2.1 — когда сервер поддерживает динамическую регистрацию клиентов, и OAuth 2.1 (Static) — когда у вас уже есть client ID и client secret от провайдера.

Для OAuth обязательно задайте переменную окружения WEBUI_SECRET_KEY в Docker-конфигурации Open WebUI. Без неё токены OAuth после перезапуска контейнера не расшифровываются, и придётся авторизовываться заново. Ещё одно правило из документации: инструменты с OAuth 2.1 не делайте инструментами по умолчанию на модели, потому что авторизация требует перехода в браузере и не пройдёт посреди запроса.

Адрес сервера из Docker

Если Open WebUI запущен в Docker, а MCP-сервер работает на хост-машине, вместо localhost указывайте host.docker.internal с нужным портом.

MCP или OpenAPI

Документация Open WebUI прямо пишет, что для большинства развёртываний предпочтительнее OpenAPI: у него лучше с единым входом, аудитом, квотами, типизированными SDK и стандартными кодами ошибок. MCP выбирают, когда у вас уже есть MCP-серверы и нужен общий протокол. Выбирать приходится не всегда: можно держать оба варианта и подключать то, что уже есть.

Есть и важное ограничение. MCP-серверы в Open WebUI может добавлять только администратор. Обычные пользователи со своим разрешением на прямые серверы инструментов могут подключать только OpenAPI. Причина в безопасности: MCP-сервер работает в границах доверия Open WebUI, и вредоносный сервер способен прочитать данные пользователя. Поэтому подключайте только серверы, которым доверяете, и выдавайте к ним доступ нужным группам через управление доступом.

Если у MCP-сервера только stdio

Многие готовые MCP-серверы запускаются локально и общаются через stdio, а встроенная поддержка Open WebUI работает только с Streamable HTTP. Для таких серверов Open WebUI предлагает прокси mcpo, который превращает MCP-сервер в OpenAPI-сервис. Пример из документации:

bash
uvx mcpo --port 8000 -- uvx mcp-server-time --local-timezone=America/New_York

После запуска на http://localhost:8000/docs появляется документация сгенерированных эндпоинтов, а сам адрес http://localhost:8000 добавляется в Open WebUI как OpenAPI-сервер инструментов. Названия флагов и команд берите из документации mcpo: здесь приведён только пример из документации Open WebUI.

Вызов инструментов из кода

Инструменты можно включать и при запросах к собственному API Open WebUI, а не только в интерфейсе. Как передать в запросе идентификаторы подключённых серверов инструментов, смотрите в документации Open WebUI, раздел API Endpoints: формат зависит от версии.

Сколько токенов уходит на инструменты

Это самая частая неожиданность при работе через шлюз. Описания всех включённых инструментов отправляются модели в каждом запросе, и результаты вызовов тоже добавляются в контекст. Оцените вручную: пусть описания занимают 4000 токенов (число условное, у вас будет своё) и в день идёт 50 запросов. Формула: токены × запросы × цена входа.

  • deepseek-v4.1-flash: 4000 × 50 = 200 000 токенов в день, 0,2 × 0,013 = $0,0026.
  • gpt-6.1-sol: 0,2 × 0,27 = $0,054.
  • claude-sonnet-5-5: 0,2 × 0,4 = $0,08.

Цены на 18 октября 2026. Для Claude в OpenAI-формате кэш на стороне шлюза не виден, поэтому весь вход считается по цене входа, а у GPT чтение кэша учитывается. Реальную картину смотрите в истории списаний в кабинете. Практический вывод: включайте только те инструменты, которые нужны в этом чате. Двадцать неиспользуемых инструментов платятся в каждом запросе.

Актуальные модели и цены: GET https://api.zukko.pro/v1/models или страница «Модели» в кабинете. Какая модель лучше вызывает инструменты в ваших сценариях, проверяйте сами; общий разбор различий есть в статьях function calling у Claude, GPT и Qwen и что такое MCP-сервер.

Частые вопросы

Нужно ли что-то менять на стороне шлюза для MCP?

Нет. Для шлюза это обычные запросы chat completions с массивом tools. Параметры запроса описаны в справочнике.

Почему модель не вызывает инструмент?

Чаще всего причина в модели: она плохо вызывает функции или инструмент не включён в этом чате. Включите инструмент в чате и попробуйте модель сильнее.

Можно ли подключить MCP-сервер без прав администратора?

Нет, MCP-серверы добавляет администратор. Пользователи могут получать к ним доступ через группы. Свои серверы пользователи могут подключать только типа OpenAPI, если это разрешено.

Почему после перезапуска слетела авторизация OAuth?

Скорее всего, не задан постоянный WEBUI_SECRET_KEY. Задайте его и авторизуйтесь заново.

Чтобы попробовать, создайте ключ в кабинете, подключите его к Open WebUI и добавьте один MCP-сервер, прежде чем включать несколько.

zukko

Платите в 25×
меньше

за Claude Code & ChatGPT

Один ключ fetch_* и base URL api.zukko.pro — в Cursor, Claude Code, Codex и любом SDK.

Open WebUI MCP: подключение инструментов к моделям · Zukko