mcpo CLI

Прокси от Open WebUI, который публикует любой MCP-сервер как HTTP API со схемой OpenAPI

  • 4 415 ★ репозитория
  • Последний коммит
  • MIT
CLI

Широкий доступ

Почему такой уровень

  • Открывает по сети инструменты MCP-сервера, которые могут выполнять команды
  • Небезопасен без ключа API и сетевых ограничений
Все причины и проверки

open-webui/mcpo

Установка

В терминале, через SkillFoxx CLI

npx skillfoxx add cli/mcpo

Определит агенты на машине, покажет уровень доступа и зафиксирует версию.

Другие способы установки

Доступ и проверки

Как мы проверяем

Широкий доступИнструмент может менять данные, выполнять команды или работать с секретами.

  • Открывает по сети инструменты MCP-сервера, которые могут выполнять команды
  • Небезопасен без ключа API и сетевых ограничений

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

Команда mcpo запускает ваш MCP-сервер как дочерний процесс по stdio и публикует его инструменты как обычные HTTP-маршруты с автоматической схемой OpenAPI. Документация открывается по адресу localhost:порт/docs, а флаг --api-key закрывает доступ ключом. Для удаленных серверов задаются --server-type sse или streamable-http и адрес, заголовки передаются флагом --header. Несколько серверов описываются одним файлом в формате Claude Desktop, и каждый получает свой маршрут вроде /memory и /time со своей страницей /docs. Флаг --hot-reload перечитывает конфиг без остановки, поле disabledTools выключает отдельные инструменты, а --root-path позволяет спрятать сервис за обратным прокси. Для серверов с OAuth 2.1 mcpo сам регистрирует клиента, открывает браузер и хранит токены в ~/.mcpo/tokens.

Для кого. Для тех, кто подключает MCP-инструменты к Open WebUI или приложениям, которые понимают только OpenAPI.

Подходит, если

  • Open WebUI или другой клиент умеет только OpenAPI, а нужный инструмент существует как MCP-сервер: вы запускаете mcpo и подключаете адрес localhost:8000
  • Нужно поднять сразу memory и time на одном порту: config.json в формате Claude Desktop даст маршруты /memory и /time
  • Часть инструментов сервера лучше отключить: в конфиге у сервера time указывается disabledTools со значением convert_time
  • Сервер MCP стоит за обратным прокси, и API должен жить по пути /api/mcpo: для этого есть флаг --root-path
  • Внутренний MCP-сервер требует OAuth 2.1, а клиент без поддержки MCP ходит по HTTP: mcpo проходит авторизацию сам

Не подходит, если

  • Клиент уже поддерживает MCP напрямую, например Claude Code или Cursor: прокси добавит лишний слой
  • Нужно только подключить stdio-клиент к удаленному MCP-серверу: проще mcp-remote
  • Нужны вызовы MCP из терминала или скриптов без HTTP: смотрите MCPorter
  • Нужны ресурсы и промпты MCP: прокси публикует инструменты как маршруты

Пример запроса к агенту

Запусти mcpo на порту 8000 с ключом из переменной окружения для сервера mcp-server-time с часовым поясом Europe/Berlin и скажи, какой адрес вписать в Open WebUI

Ограничения

Доступ: расширенный. Прокси отдает по HTTP все, что умеет запущенный MCP-сервер, включая выполнение команд и работу с файлами, если сервер на это способен, поэтому ключ --api-key и сетевые ограничения нужны всегда, а в примерах README стоит учебное значение top-secret, его нужно заменить. Сам mcpo внешних сервисов не вызывает. Токены OAuth лежат в ~/.mcpo/tokens для файлового хранилища или живут только в сессии при storage_type memory. Для OAuth поддерживается тип streamable-http. Нужен Python 3.8 или новее, либо uv, либо Docker-образ ghcr.io/open-webui/mcpo. Лицензия MIT.

Как отключить. Остановите процесс mcpo или контейнер, при установке через pip удалите пакет командой pip uninstall mcpo.

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

Можно ли запустить несколько серверов сразу?

Да, через --config с файлом в формате mcpServers. Каждый сервер получает свой маршрут и страницу /имя/docs. Добавьте --hot-reload, чтобы конфиг подхватывался без остановки.

Поддерживаются ли удаленные MCP-серверы?

Да. Укажите --server-type sse или streamable-http и адрес сервера после двух дефисов, при необходимости добавьте заголовки через --header. В конфиге то же задается полями type и url.

Как запустить и проверить, что все работает?

Выполните uvx mcpo --port 8000 --api-key ключ -- uvx mcp-server-time --local-timezone=Europe/Berlin. Затем откройте localhost:8000/docs: должна появиться страница OpenAPI с инструментами сервера времени.

Как подключить к Open WebUI?

Запустите mcpo, затем добавьте адрес в Open WebUI по инструкции из документации проекта. Если используете конфиг с несколькими серверами, у каждого сервера свой адрес с суффиксом вроде /time.

Что делать, если нужен доступ по подпути?

Запустите с --root-path и нужным путем, например /api/mcpo. Все маршруты окажутся под ним, а адрес сервера памяти станет localhost:8000/api/mcpo/memory.

Чем mcpo отличается от mcp-remote?

Mcpo превращает MCP-сервер в HTTP-сервис с OpenAPI для клиентов без MCP. Mcp-remote делает обратное: подключает клиент с локальным stdio к удаленному MCP-серверу.

Обсуждение

Вопросов и отзывов пока нет.

CLI, который на лету превращает любой MCP-сервер, спецификацию OpenAPI или GraphQL-эндпоинт в набор команд без генерации кода

CLIШирокий доступ2,4 тыс.Звезды репозитория

Универсальный CLI-клиент MCP от Apify: постоянные сессии, OAuth, JSON-вывод для скриптов и доступ агента к любому MCP-серверу через оболочку

CLIШирокий доступ1,1 тыс.Звезды репозитория

CLI для любого MCP-сервера: список и вызов инструментов, ресурсов и промптов, mock и proxy режимы, guard-фильтр и управление конфигами агентов

CLIРасширенный доступ1,6 тыс.Звезды репозитория

Мост для MCP: один инструмент run_python запускает код в контейнере и вызывает ваши MCP-серверы

MCP-серверШирокий доступ340Звезды репозитория

Адаптер, который подключает MCP-клиент с поддержкой только локальных stdio-серверов к удаленному MCP-серверу по HTTP или SSE, вместе с авторизацией

CLIРасширенный доступ1,7 тыс.Звезды репозитория

CLI на Python без зависимостей: один каталог MCP-серверов и скиллов для всех агентов, в контекст попадает краткий индекс

CLIШирокий доступ405Звезды репозитория

Из блога

Коротко о README

README объясняет, зачем переводить MCP в OpenAPI, и дает команды запуска через uvx, pip и Docker. Описаны подключение SSE и streamable HTTP серверов, работа под подпутем, конфигурационный файл с горячей перезагрузкой и OAuth 2.1. Есть ссылка на интеграцию с Open WebUI. Лицензия MIT.

Бейдж для README

Сообщить о проблеме

Foxx AImcpo
Foxx AI

Я Foxx AI и уже разобрал этот инструмент. Спросите про установку, настройку или что угодно еще, отвечу простыми словами.