mcpo

by Open WebUI · любой OpenAI-совместимый клиент

MCP MCP Servers Open Source v0.0.20 · 27.02.2026 активный

Прокси-сервер, превращающий любой MCP-сервер в стандартный OpenAI-совместимый API. Позволяет использовать MCP-инструменты из любого приложения с поддержкой API OpenAI — без нативной поддержки MCP. Один запуск mcpo делает сразу несколько MCP-серверов доступными через единый endpoint с автоматической документацией.

v0.0.20
27.02.2026 current
Добавлен 02.07.2026 · Обновлён 02.07.2026 · MCP Servers
Установка
pip install mcpo
# Запустить MCP-сервер через mcpo
mcpo --port 8000 -- uvx mcp-server-fetch
# Несколько серверов через конфиг
mcpo --port 8000 --config config.json
# Теперь доступен как OpenAI API на http://localhost:8000
переведено ИИ

⚡️ mcpo

Выставляйте любой MCP-инструмент как совместимый с OpenAPI HTTP-сервер — мгновенно.

mcpo — это предельно простой прокси-сервер, который принимает команду MCP-сервера и делает его доступным через стандартный RESTful OpenAPI, так что ваши инструменты «просто работают» с LLM-агентами и приложениями, ожидающими серверов OpenAPI.

Никакого пользовательского протокола. Никакого дополнительного кода. Никаких хлопот.

🤔 Зачем использовать mcpo вместо нативного MCP?

Серверы MCP обычно взаимодействуют через raw stdio, что:

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

mcpo решает все эти проблемы — без лишних усилий:

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

То, что кажется «ещё одним шагом», на деле оказывается меньшим количеством шагов с лучшими результатами.

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)

🔐 Аутентификация OAuth 2.1

mcpo поддерживает аутентификацию OAuth 2.1 для MCP-серверов, которые этого требуют. Реализация по умолчанию использует динамическую регистрацию клиентов, поэтому большинству серверов требуется лишь минимальная конфигурация:

{
  "mcpServers": {
    "oauth-protected-server": {
      "type": "streamable-http",
      "url": "http://localhost:8000/mcp",
      "oauth": {
        "server_url": "http://localhost:8000"
      }
    }
  }
}

Параметры конфигурации OAuth

Основные параметры: - 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.

🔧 Требования

  • Python 3.8+
  • uv (необязательно, но настоятельно рекомендуется для производительности и упаковки)

🛠️ Разработка и тестирование

Для участия в разработке или запуска тестов локально:

  1. Настройка окружения: ```bash # Клонирование репозитория git clone https://github.com/open-webui/mcpo.git cd mcpo

    Установка зависимостей (включая dev-зависимости)

    uv sync --dev ```

  2. Запуск тестов: bash uv run pytest

  3. Локальный запуск с активными изменениями:

    Чтобы запустить mcpo с вашими локальными модификациями из определённой ветки (например, my-feature-branch):

    ```bash

    Убедитесь, что вы находитесь в своей ветке разработки

    git checkout my-feature-branch

    Внесите изменения в код в директории src/mcpo или в другом месте

    Запустите mcpo с помощью uv, который будет использовать ваш локальный изменённый код

    Эта команда запускает mcpo на порту 8000 и проксирует вашу_команду_mcp_сервера

    uv run mcpo --port 8000 -- ваша_команда_mcp_сервера

    Пример с тестовым MCP-сервером (например, mcp-server-time):

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

    `` Это позволяет вам интерактивно проверять свои изменения перед коммитом или созданием pull request. Доступ к вашему локально запущенному экземпляруmcpo— по адресуhttp://localhost:8000, а к автоматически сгенерированной документации — по адресуhttp://localhost:8000/docs`.

🪪 Лицензия

MIT


🤝 Участие в разработке

Мы приветствуем и настоятельно поощряем вклад сообщества!

Неважно, исправляете ли вы ошибку, добавляете функции, улучшаете документацию или просто делитесь идеями — ваш вклад невероятно ценен и помогает сделать mcpo лучше для всех.

Начать легко:

  • Форкните репозиторий
  • Создайте новую ветку
  • Внесите свои изменения
  • Откройте pull request

Не знаете, с чего начать? Не стесняйтесь открывать issue или задавать вопрос — мы с радостью поможем вам найти подходящую первую задачу.

✨ История звёзд

Star History Chart


✨ Давайте вместе строить будущее совместимых ИИ-инструментов!

Комментарии
Войдите, чтобы оставить комментарий