by Open WebUI любой OpenAI-совместимый клиент
Прокси-сервер, превращающий любой MCP-сервер в стандартный OpenAI-совместимый API. Позволяет использовать MCP-инструменты из любого приложения с поддержкой API OpenAI — без нативной поддержки MCP. Один запуск mcpo делает сразу несколько MCP-серверов доступными через единый endpoint с автоматической документацией.
pip install mcpo # Запустить MCP-сервер через mcpo mcpo --port 8000 -- uvx mcp-server-fetch # Несколько серверов через конфиг mcpo --port 8000 --config config.json # Теперь доступен как OpenAI API на http://localhost:8000
Выставляйте любой MCP-инструмент как совместимый с OpenAPI HTTP-сервер — мгновенно.
mcpo — это предельно простой прокси-сервер, который принимает команду MCP-сервера и делает его доступным через стандартный RESTful OpenAPI, так что ваши инструменты «просто работают» с LLM-агентами и приложениями, ожидающими серверов OpenAPI.
Никакого пользовательского протокола. Никакого дополнительного кода. Никаких хлопот.
Серверы MCP обычно взаимодействуют через raw stdio, что:
mcpo решает все эти проблемы — без лишних усилий:
То, что кажется «ещё одним шагом», на деле оказывается меньшим количеством шагов с лучшими результатами.
mcpo делает ваши ИИ-инструменты удобными, безопасными и совместимыми — прямо сейчас, без каких-либо усилий.
Мы рекомендуем использовать uv для молниеносного запуска и нулевой настройки.
uvx mcpo --port 8000 --api-key "top-secret" -- ваша_команда_mcp_сервера
Или, если вы используете Python:
pip install mcpo
mcpo --port 8000 --api-key "top-secret" -- ваша_команда_mcp_сервера
Чтобы использовать совместимый с SSE MCP-сервер, просто укажите тип сервера и эндпоинт:
mcpo --port 8000 --api-key "top-secret" --server-type "sse" -- http://127.0.0.1:8001/sse
Вы также можете предоставить заголовки для SSE-соединения:
mcpo --port 8000 --api-key "top-secret" --server-type "sse" --header '{"Authorization": "Bearer token", "X-Custom-Header": "value"}' -- http://127.0.0.1:8001/sse
Чтобы использовать совместимый с Streamable HTTP MCP-сервер, укажите тип сервера и эндпоинт:
mcpo --port 8000 --api-key "top-secret" --server-type "streamable-http" -- http://127.0.0.1:8002/mcp
Вы также можете запустить mcpo через Docker без установки:
docker run -p 8000:8000 ghcr.io/open-webui/mcpo:main --api-key "top-secret" -- ваша_команда_mcp_сервера
Пример:
uvx mcpo --port 8000 --api-key "top-secret" -- uvx mcp-server-time --local-timezone=America/New_York
Всё. Ваш MCP-инструмент теперь доступен по адресу http://localhost:8000 со сгенерированной OpenAPI-схемой — протестируйте его вживую по адресу http://localhost:8000/docs.
🤝 Для интеграции с Open WebUI после запуска сервера ознакомьтесь с нашей документацией.
--root-path)Если вам нужно обслуживать mcpo за обратным прокси или по подпути (например, /api/mcpo), используйте аргумент --root-path:
mcpo --port 8000 --root-path "/api/mcpo" --api-key "top-secret" -- ваша_команда_mcp_сервера
Все маршруты будут обслуживаться по указанному корневому пути, например http://localhost:8000/api/mcpo/memory.
Вы можете обслуживать несколько MCP-инструментов через один файл конфигурации, который следует формату Claude Desktop.
Включите режим горячей перезагрузки с помощью --hot-reload, чтобы автоматически отслеживать изменения в вашем файле конфигурации и перезагружать серверы без простоя:
Запуск через:
mcpo --config /path/to/config.json
Или с включённой горячей перезагрузкой:
mcpo --config /path/to/config.json --hot-reload
Пример config.json:
{
"mcpServers": {
"memory": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-memory"]
},
"time": {
"command": "uvx",
"args": ["mcp-server-time", "--local-timezone=America/New_York"],
"disabledTools": ["convert_time"] // Отключение конкретных инструментов при необходимости
},
"mcp_sse": {
"type": "sse", // Явное указание типа
"url": "http://127.0.0.1:8001/sse",
"headers": {
"Authorization": "Bearer token",
"X-Custom-Header": "value"
}
},
"mcp_streamable_http": {
"type": "streamable-http",
"url": "http://127.0.0.1:8002/mcp"
} // Streamable HTTP MCP Server
}
}
Каждый инструмент будет доступен по своему уникальному маршруту, например: - http://localhost:8000/memory - http://localhost:8000/time
Каждый со своей отдельной OpenAPI-схемой и обработчиком прокси. Полная UI-схема доступна по адресу: http://localhost:8000/<инструмент>/docs (например, /memory/docs, /time/docs)
mcpo поддерживает аутентификацию OAuth 2.1 для MCP-серверов, которые этого требуют. Реализация по умолчанию использует динамическую регистрацию клиентов, поэтому большинству серверов требуется лишь минимальная конфигурация:
{
"mcpServers": {
"oauth-protected-server": {
"type": "streamable-http",
"url": "http://localhost:8000/mcp",
"oauth": {
"server_url": "http://localhost:8000"
}
}
}
}
Основные параметры:
- server_url (обязательный): Базовый URL OAuth-сервера
- storage_type: "file" (постоянное хранение) или "memory" (только для сессии, по умолчанию: "file")
- callback_port: Локальный порт для OAuth callback (по умолчанию: 3030)
- use_loopback: Автоматическое открытие браузера для авторизации (по умолчанию: true)
Расширенные параметры (редко необходимые): Для серверов, которые не поддерживают динамическую регистрацию клиентов, вы можете указать статические метаданные клиента:
{
"mcpServers": {
"legacy-oauth-server": {
"type": "streamable-http",
"url": "http://api.example.com/mcp",
"oauth": {
"server_url": "http://api.example.com",
"client_metadata": {
"client_name": "My MCPO Client",
"redirect_uris": ["http://localhost:3030/callback"]
}
}
}
}
}
Примечание: Избегайте установки
scope,authorization_endpointилиtoken_endpointв конфигурации. Эти параметры автоматически обнаруживаются из OAuth-метаданных сервера во время процесса динамической регистрации.
При первом подключении mcpo:
1. Выполнит динамическую регистрацию клиента (если поддерживается)
2. Откроет ваш браузер для авторизации
3. Автоматически перехватит OAuth callback
4. Безопасно сохранит токены (в ~/.mcpo/tokens/ для файлового хранения)
5. Будет использовать токены для всех последующих запросов
OAuth поддерживается для типов серверов streamable-http. Подробную документацию см. в OAUTH_GUIDE.md.
Для участия в разработке или запуска тестов локально:
Настройка окружения: ```bash # Клонирование репозитория git clone https://github.com/open-webui/mcpo.git cd mcpo
uv sync --dev ```
Запуск тестов:
bash
uv run pytest
Локальный запуск с активными изменениями:
Чтобы запустить mcpo с вашими локальными модификациями из определённой ветки (например, my-feature-branch):
```bash
git checkout my-feature-branch
uv run mcpo --port 8000 -- ваша_команда_mcp_сервера
``
Это позволяет вам интерактивно проверять свои изменения перед коммитом или созданием pull request. Доступ к вашему локально запущенному экземпляруmcpo— по адресуhttp://localhost:8000, а к автоматически сгенерированной документации — по адресуhttp://localhost:8000/docs`.
MIT
Мы приветствуем и настоятельно поощряем вклад сообщества!
Неважно, исправляете ли вы ошибку, добавляете функции, улучшаете документацию или просто делитесь идеями — ваш вклад невероятно ценен и помогает сделать mcpo лучше для всех.
Начать легко:
Не знаете, с чего начать? Не стесняйтесь открывать issue или задавать вопрос — мы с радостью поможем вам найти подходящую первую задачу.