BigChatHub
← Все MCP и навыки

MCP-сервер · Разработка и DevOps

Docker MCP Gateway

Официальный шлюз Docker (основа MCP Toolkit в Docker Desktop): запускает MCP-серверы из каталога в изолированных контейнерах и отдаёт их клиенту одним входом. Серверы собираются в профили, секреты и OAuth берёт на себя Docker.

Сверено 21 октября 2026 г.

Что умеет шлюз

Docker MCP Gateway не предлагает собственных инструментов вроде управления контейнерами, он решает другую задачу: запускает MCP-серверы из каталога Docker и отдаёт их клиенту через один вход. Репозиторий docker/mcp-gateway содержит плагин Docker CLI docker-mcp, на котором построен MCP Toolkit в Docker Desktop. Плагин может работать и отдельно от Docker Desktop.

Каждый локальный сервер из каталога запускается в изолированном контейнере, а серверы на npx и uvx получают минимальные права на хосте. Серверы группируются в профили: профиль можно подключить к клиенту, экспортировать и передать через реестр OCI. Шлюз умеет OAuth-авторизацию для серверов, которым она нужна, хранит секреты в менеджере Docker Desktop, ведёт журнал вызовов и позволяет включать и отключать отдельные инструменты. По документации Toolkit, агент через Dynamic MCP может сам искать и добавлять серверы из каталога.

Когда использовать

Шлюз удобен, когда нужно подключить к клиенту сразу несколько MCP-серверов (GitHub, Notion, Puppeteer и другие из каталога) и не ставить каждый вручную. Один раз настроенный профиль подключается к Claude Desktop, Cursor, VS Code и другим клиентам, и все они видят одинаковый набор.

Подойдёт он и для командной работы: профиль выгружают в файл или реестр, и коллеги получают тот же набор серверов. Если нужен всего один сервер и вы не пользуетесь Docker, проще подключить его напрямую.

Ограничения и безопасность

В README указано, что для MCP Toolkit нужен Docker Desktop 4.59 или новее; вне Docker Desktop (Docker CE, WSL2) для обхода проверок задают переменную DOCKER_MCP_IN_CONTAINER=1, а профили включают командой docker mcp feature enable profiles. В документации Docker сам MCP Toolkit отмечен как бета.

Изоляция заметная: по документации Toolkit инструменты работают в своих контейнерах с ограничением 1 CPU и 2 ГБ памяти, доступа к файловой системе хоста по умолчанию нет, а файловые монтирования получают только выбранные пользователем серверы. Запросы с секретами блокируются. Образы под префиксом mcp/ в каталоге собираются и подписываются самим Docker. Это защищает хост, но не отменяет прав подключённых серверов: сервер GitHub по-прежнему действует с вашими правами в GitHub.

Установка

Docker Desktop

В Docker Desktop (4.59 или новее) включите функцию MCP Toolkit: плагин docker-mcp уже входит в свежие версии. Проверить, что он доступен, можно командой:

docker mcp --help

Установка плагина из исходников

Если нужна последняя версия или вы работаете без Docker Desktop, соберите и установите плагин как плагин Docker CLI:

git clone https://github.com/docker/mcp-gateway.git
cd mcp-gateway
mkdir -p "$HOME/.docker/cli-plugins/"
make docker-mcp

Вне Docker Desktop (Docker CE, WSL2, контейнер) при ошибке «Docker Desktop is not running» задайте переменную, а для профилей включите функцию:

export DOCKER_MCP_IN_CONTAINER=1
docker mcp feature enable profiles

Профиль и сервер

Каталог по умолчанию подтягивается командой docker mcp catalog pull mcp/docker-mcp-catalog. Создайте профиль с сервером из каталога и сразу подключите его к клиенту:

docker mcp profile create --name dev-tools \
  --server catalog://mcp/docker-mcp-catalog/github \
  --connect cursor

Добавить сервер в существующий профиль:

docker mcp profile server add dev-tools \
  --server catalog://mcp/docker-mcp-catalog/notion

Claude Desktop

Шлюз подключается как обычный MCP-сервер:

{
    "mcpServers": {
        "MCP_DOCKER": {
            "command": "docker",
            "args": ["mcp", "gateway", "run"]
        }
    }
}

Подключить клиент к профилю можно и командой:

docker mcp client connect <client-name> --profile <profile-id>

Claude Code

Если Claude Code хранит конфигурацию в нестандартном каталоге, задайте CLAUDE_CONFIG_DIR и подключите шлюз к профилю:

export CLAUDE_CONFIG_DIR=/path/to/custom/config
docker mcp client connect claude-code --profile dev-tools --global

VS Code

Добавьте в пользовательский mcp.json:

"mcp": {
  "servers": {
    "MCP_DOCKER": {
      "command": "docker",
      "args": [
        "mcp",
        "gateway",
        "run",
        "--profile",
        "my_profile"
      ],
      "type": "stdio"
    }
  }
}

Или создайте .vscode/mcp.json в проекте командой (файл персональный, добавьте его в .gitignore):

docker mcp client connect vscode --profile my_profile
echo ".vscode/mcp.json" >> .gitignore

Запуск шлюза вручную

# stdio, профиль по умолчанию
docker mcp gateway run

# потоковый режим для нескольких клиентов
docker mcp gateway run --port 8080 --transport streaming

# только выбранные серверы и инструменты
docker mcp gateway run --servers server1,server2 --tools server1:* --tools server2:tool2

Совместимые клиенты

  • Claude Desktop
  • Claude Code
  • Cursor
  • VS Code

Связанные инструменты

РепозиторийСайт