Перейти к основному содержимому

🛰️ Поддержка MCP

Эта документация объясняет, как легко настроить и развернуть MCP (Model Context Protocol)-to-OpenAPI прокси-сервер (mcpo), предоставляемый Open WebUI. Узнайте, как вы можете без усилий предоставить серверы инструментов, основанные на MCP, с использованием стандартных, знакомых конечных точек OpenAPI, подходящих для конечных пользователей и разработчиков.

📌 Что такое MCP Proxy Server?

Прокси-сервер MCP-to-OpenAPI позволяет использовать серверы инструментов, реализованные с MCP (Model Context Protocol), напрямую через стандартные REST/OpenAPI API — без необходимости управления необычными или сложными пользовательскими протоколами. Если вы конечный пользователь или разработчик приложений, это означает, что вы можете легко взаимодействовать с мощными инструментами, основанными на MCP, напрямую через знакомые REST-подобные конечные точки.

💡 Почему стоит использовать mcpo?

Серверы инструментов MCP мощные и гибкие, но они обычно общаются через стандартный ввод/вывод (stdio) — часто работая на вашем локальном компьютере, где они легко могут получить доступ к вашей файловой системе, окружению и другим возможностям системы.

Это сила, но также ограничение.

Если вы хотите развернуть ваш основной интерфейс (например, Open WebUI) в облаке, вы быстро столкнетесь с проблемой: ваш облачный экземпляр не может напрямую взаимодействовать с MCP сервером, работающим локально на вашем компьютере через stdio.

Вот тут-то mcpo предлагает революционное решение.

Серверы MCP обычно полагаются на необработанное stdio общение, которое:

  • 🔓 В основном небезопасно в разных окружениях
  • ❌ Несовместимо с большинством современных инструментов, интерфейсов или платформ
  • 🧩 Лишено критически важных функций, таких как аутентификация, документация и обработка ошибок

Прокси mcpo устраняет эти проблемы автоматически:

  • ✅ Мгновенная совместимость с существующими инструментами OpenAPI, SDK и клиентами
  • 🛡 Упаковывает ваши инструменты в безопасные, масштабируемые и основанные на стандартах конечные точки HTTP
  • 🧠 Автоматически генерирует интерактивную документацию OpenAPI для каждого инструмента без настройки
  • 🔌 Использует обычный HTTP — никакой настройки сокетов, управления демонами или специфичного для платформы кода

Таким образом, хотя добавление mcpo может сначала показаться "еще одним слоем" — на самом деле, это упрощает все, предоставляя:

  • Лучшую интеграцию ✅
  • Лучшую безопасность ✅
  • Лучшую масштабируемость ✅
  • Счастливых разработчиков и пользователей ✅

✨ С mcpo ваши инструменты ИИ, предназначенные только для локального использования, становятся готовыми к использованию в облаке, удобными для интерфейсов и мгновенно совместимыми — без изменения ни одной строки кода серверов инструментов.

✅ Быстрый старт: запуск прокси-сервера локально

Вот как легко запустить MCP-to-OpenAPI прокси-сервер, используя легкий и удобный инструмент mcpo (репозиторий GitHub):

  1. Необходимые условия

    • Python 3.8+ с установленным pip.
    • Приложение, совместимое с MCP (например: mcp-server-time)
    • (По желанию, но рекомендуется) установленный uv для более быстрой загрузки и удобства без настройки.
  2. Установка mcpo

Использование uv (рекомендуется):

uvx mcpo --port 8000 -- your_mcp_server_command

Или с использованием pip:

pip install mcpo
mcpo --port 8000 -- your_mcp_server_command
  1. 🚀 Запуск Прокси-Сервера

Чтобы запустить MCP-to-OpenAPI прокси-сервер, вам потребуется сервер инструментов, совместимый с MCP. Если у вас его еще нет, сообщество MCP предоставляет различные готовые к использованию реализации серверов MCP.

Где найти серверы MCP?

Вы можете найти официально поддерживаемые серверы MCP в следующем репозитории:

Например, популярный Time MCP Server задокументирован здесь, и он обычно явно упоминается в README внутри предоставленной конфигурации MCP. В частности, README указывает:

Добавьте в настройки Claude:

"mcpServers": {   
"time": {
"command": "uvx",
"args": ["mcp-server-time", "--local-timezone=America/New_York"]
}
}

🔑 Перевод этой настройки MCP в команду быстрого локального прокси:

Вы можете легко запустить рекомендуемый сервер MCP (mcp-server-time) напрямую через MCP-to-OpenAPI Proxy (mcpo) вот так:

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

Вот и все! Теперь вы запустили MCP-to-OpenAPI Proxy локально и предоставляете мощный MCP Time Server через стандартные конечные точки OpenAPI, доступные по адресу:

Не стесняйтесь заменить uvx mcp-server-time --local-timezone=America/New_York на вашу предпочитаемую команду сервера MCP из других доступных реализаций MCP, найденных в официальном репозитории.

🤝 Чтобы интегрироваться с Open WebUI после запуска сервера, ознакомьтесь с нашими документами.

🚀 Доступ к созданным API

Как только он запускается, прокси MCP (mcpo) автоматически:

  • Динамически обнаруживает инструменты MCP и генерирует REST конечные точки.
  • Создает интерактивную, удобную для чтения документацию OpenAPI, доступную по адресу:
    • http://localhost:8000/docs

Просто вызывайте автоматически созданные API конечные точки непосредственно через HTTP клиенты, AI агенты или другие инструменты OpenAPI по вашему выбору.

📖 Пример рабочего процесса для конечных пользователей

Предположим, вы запустили приведенную выше команду сервера (uvx mcp-server-time):

  • Перейдите в локальную документацию API по адресу http://localhost:8000/docs.
  • Выберите созданную конечную точку (например, /get_current_time) и используйте предоставленную интерактивную форму.
  • Нажмите "Execute" и мгновенно получите ответ.

Без сложности настройки — только мгновенные REST API.

🚀 Развертывание в продакшене (Пример)

Развертывание вашего MCP-to-OpenAPI прокси (на базе mcpo) проста. Вот как легко контейнеризировать и развернуть его в облаке или на VPS:

🐳 Контейнеризация вашего серверного прокси с использованием mcpo

  1. Пример Dockerfile

Создайте следующий Dockerfile внутри вашей директории развертывания:

FROM python:3.11-slim
WORKDIR /app
RUN pip install mcpo uv
# Замените на вашу команду сервера MCP; пример: uvx mcp-server-time
CMD ["uvx", "mcpo", "--host", "0.0.0.0", "--port", "8000", "--", "uvx", "mcp-server-time", "--local-timezone=America/New_York"]
  1. Соберите и запустите контейнер локально
docker build -t mcp-proxy-server .
docker run -d -p 8000:8000 mcp-proxy-server
  1. Развертывание вашего контейнера

Опубликуйте в DockerHub или другом реестре:

docker tag mcp-proxy-server yourdockerusername/mcp-proxy-server:latest
docker push yourdockerusername/mcp-proxy-server:latest

Разверните с помощью Docker Compose, YAML манифестов Kubernetes или ваших любимых облачных контейнерных сервисов (AWS ECS, Azure Container Instances, Render.com или Heroku).

✔️ Ваши продакшн MCP серверы теперь легко доступны через REST API!

🧑‍💻 Технические подробности и фон

🍃 Как это работает (Техническое резюме)

  • Динамическое обнаружение схем и конечных точек: При запуске сервера прокси подключается к серверу MCP, чтобы запросить доступные инструменты. Он автоматически строит конечные точки FastAPI на основе схем инструментов MCP, создавая лаконичные и понятные REST конечные точки.

  • Авто-документация OpenAPI: Сгенерированные конечные точки без труда документируются и доступны через встроенный Swagger UI FastAPI (/docs). Нет необходимости в написании дополнительных документов.

  • Асинхронность и производительность: Построено на основе мощных асинхронных библиотек, обеспечивающих скорость и надежность для одновременных пользователей.

📚 Под капотом:

  • FastAPI (автоматическая маршрутизация и генерация документации)
  • MCP Client (стандартная интеграция MCP и обнаружение схем)
  • Стандарт JSON через HTTP (простая интеграция)

⚡️ Почему MCP-to-OpenAPI Proxy превосходен?

Вот почему использование серверов MCP через OpenAPI через прокси-подход значительно лучше и почему Open WebUI активно поддерживает это:

  • Удобный и привычный интерфейс: Нет необходимости в пользовательских клиентах; просто REST конечные точки HTTP, которые вы уже знаете.
  • Мгновенная интеграция: Немедленно совместимый с тысячами существующих REST/OpenAPI инструментов, SDK и сервисов.
  • Мощная и автоматическая документация: Встроенная документация Swagger UI автоматически генерируется, всегда точна и поддерживается.
  • Отсутствие новой протокольной нагрузки: Исключает необходимость напрямую работать с особенностями MCP-протокола и проблемами сокетного взаимодействия.
  • Проверенная безопасность и стабильность: Использует устоявшийся HTTPS транспорт, стандартные методы аутентификации (JWT, API ключи), надежные асинхронные библиотеки и доказанную надежность FastAPI.
  • Будущее устойчивое: MCP прокси использует существующие, стабильные, стандартные форматы REST/OpenAPI с гарантированной долгосрочной поддержкой и эволюцией от сообщества.

🌟 Итог: MCP-to-OpenAPI делает ваши мощные AI инструменты MCP легко доступными через интуитивно понятные, надежные и масштабируемые REST конечные точки. Open WebUI гордится поддержкой и рекомендует этот лучший в своем классе подход.

📢 Сообщество и поддержка

Приятной интеграции! 🌟🚀