Claude Info
AI-инструменты

mcpo

open-webui/mcpo

mcpo — простой и безопасный прокси, который превращает любой MCP-сервер в стандартный OpenAPI-совместимый HTTP-сервер. Автоматически генерирует интерактивную документацию, поддерживает аутентификацию, SSE и Streamable HTTP. Идеален для интеграции AI-инструментов с LLM-агентами и Open WebUI.

Подключение

terminal
bash
pip install mcpo

README

⚡️ mcpo

Мгновенно превращает любой MCP-инструмент в OpenAPI-совместимый HTTP-сервер.

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

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

🤔 Почему mcpo, а не нативный MCP?

MCP-серверы обычно работают через сырой stdio, что означает:

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

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

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

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

mcpo делает ваши AI-инструменты удобными, безопасными и совместимыми — прямо сейчас, без лишних усилий.

🚀 Быстрый старт

Рекомендуем использовать uv для молниеносного запуска без настройки.

uvx mcpo --port 8000 --api-key "top-secret" -- your_mcp_server_command

Или через Python:

bash
pip install mcpo
mcpo --port 8000 --api-key "top-secret" -- your_mcp_server_command

Для использования SSE-совместимого MCP-сервера укажите тип сервера и эндпоинт:

bash
mcpo --port 8000 --api-key "top-secret" --server-type "sse" -- http://127.0.0.1:8001/sse

Можно также передать заголовки для SSE-соединения:

bash
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-сервера укажите тип сервера и эндпоинт:

bash
mcpo --port 8000 --api-key "top-secret" --server-type "streamable-http" -- http://127.0.0.1:8002/mcp

Также можно запустить mcpo через Docker без установки:

bash
docker run -p 8000:8000 ghcr.io/open-webui/mcpo:main --api-key "top-secret" -- your_mcp_server_command

Пример:

bash
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:

bash
mcpo --port 8000 --root-path "/api/mcpo" --api-key "top-secret" -- your_mcp_server_command

Все маршруты будут доступны по указанному корневому пути, например 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:

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"
    }
  }
}

Каждый инструмент будет доступен по собственному уникальному маршруту, например:

Каждый со своей OpenAPI-схемой и прокси-обработчиком. Полный UI схемы доступен по адресу: http://localhost:8000/<tool>/docs (например, /memory/docs, /time/docs).

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

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

json
{
  "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-коллбэка (по умолчанию: 3030)
  • use_loopback: автоматически открывать браузер для авторизации (по умолчанию: true)

Расширенные параметры (редко нужны): Для серверов, не поддерживающих динамическую регистрацию клиента, можно указать статические метаданные клиента:

json
{
  "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-коллбэк

🛠 Установка

Через pip

pip install mcpo

Через uv

uv tool install mcpo

📖 Документация

Полная документация доступна на https://docs.openwebui.com.

🤝 Вклад в проект

Вклад приветствуется! Ознакомьтесь с CONTRIBUTING.md для получения подробной информации.

📄 Лицензия

Данный проект распространяется под лицензией MIT. Подробности см. в файле LICENSE.

Похожие MCP-серверы