mcpo CLI
Прокси от Open WebUI, который публикует любой MCP-сервер как HTTP API со схемой OpenAPI
- 4 415 ★ репозитория
- Последний коммит
- MIT
Широкий доступ
Почему такой уровень
- Открывает по сети инструменты MCP-сервера, которые могут выполнять команды
- Небезопасен без ключа API и сетевых ограничений
Установка
В терминале, через 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-инструментыCLI, который на лету превращает любой MCP-сервер, спецификацию OpenAPI или GraphQL-эндпоинт в набор команд без генерации кода
Универсальный CLI-клиент MCP от Apify: постоянные сессии, OAuth, JSON-вывод для скриптов и доступ агента к любому MCP-серверу через оболочку
CLI для любого MCP-сервера: список и вызов инструментов, ресурсов и промптов, mock и proxy режимы, guard-фильтр и управление конфигами агентов
Мост для MCP: один инструмент run_python запускает код в контейнере и вызывает ваши MCP-серверы
Адаптер, который подключает MCP-клиент с поддержкой только локальных stdio-серверов к удаленному MCP-серверу по HTTP или SSE, вместе с авторизацией
CLI на Python без зависимостей: один каталог MCP-серверов и скиллов для всех агентов, в контекст попадает краткий индекс
Из блога
Коротко о README
README объясняет, зачем переводить MCP в OpenAPI, и дает команды запуска через uvx, pip и Docker. Описаны подключение SSE и streamable HTTP серверов, работа под подпутем, конфигурационный файл с горячей перезагрузкой и OAuth 2.1. Есть ссылка на интеграцию с Open WebUI. Лицензия MIT.