MCPサーバ - Docker

提供: MochiuWiki : SUSE, EC, PCB

📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

概要

Docker MCP Catalog and Toolkitは、Docker社が提供するMCPサーバの統合管理プラットフォームである。
Docker Desktopに組み込まれた Docker MCP ToolkitDocker MCP Catalog から構成される。

Docker MCP Catalogは200以上の検証済みMCPサーバを含む信頼できるレジストリであり、Docker Hub上で配布されている。
Docker MCP Toolkitは、MCPサーバのセットアップ・管理・実行を行うDocker Desktopに統合されたUIツールである。

Claude Desktop、Claude Code、VS Code、Cursor等の主要AIクライアントと統合できる。
Windows、MacOS、Linuxの主要なOSに対応しており、Docker Desktop 4.59以降で利用可能である。

主な特徴は以下の通りである。

  • 200以上の検証済みMCPサーバへのアクセス (Docker MCP Catalog)
  • Docker DesktopのUIからMCPサーバを簡単にセットアップ・管理 (Docker MCP Toolkit)
  • コンテナ隔離によるセキュアなMCPサーバ実行環境
  • Docker社によるデジタル署名とSBOM (ソフトウェア部品表) による信頼性の確保
  • Docker Desktopの暗号化シークレット機能による認証情報の安全な管理
  • Stripe、Elastic、Neo4j、Grafana等200以上のパートナー製MCPサーバに対応



主要コンポーネント

Docker MCP Catalog and Toolkitは、3つの主要コンポーネントで構成されている。

Docker MCP Catalog

200以上のMCPサーバを含む信頼できるレジストリである。
Docker Hub上で mcp/ 名前空間以下に配布されており、Docker社によるデジタル署名とSBOMが付与されている。

主なパートナーMCPサーバは以下の通りである。

  • Stripe
  • Elastic
  • Neo4j
  • Grafana
  • New Relic
  • Atlassian
  • Slack
  • Notion
  • Kong
  • GitLab


Docker MCP Toolkit

Docker Desktopに統合されたUIツールである。
MCPサーバのセットアップ・管理・実行を行い、AIクライアントとの接続設定を自動化する。

Docker MCP Gateway

MCPサーバのコンテナ管理とAIクライアント間の通信を仲介するCLIプラグインである。


以下に示す2つの方法で実行できる。

  • CLI経由
    docker mcp gateway run
  • npx経由
    npx @docker/mcp-gateway



動作要件

前提条件

Docker MCP Catalog and Toolkitを使用するために必要な前提条件を以下に示す。

  • Docker Desktop 4.59以降
    Docker MCP Toolkitが統合されている最低バージョン
  • 対応OS
    Windows
    MacOS
    Linux



インストール

Docker DesktopでのMCP Toolkitの有効化

Docker Desktop上でDocker MCP Toolkitを有効化する手順を以下に示す。

  1. Docker Desktopを起動する。
  2. [Settings] - [Beta Features]を開く。
  3. [Enable Docker MCP Toolkit]にチェックを入力する。
  4. Docker Desktopを再起動する。


有効化後、Docker Desktopのサイドバーに[MCP Toolkit]のタブが表示される。


MCPクライアントの設定

Docker MCP Toolkitでは、Docker DesktopのUIからAIクライアントへの接続設定を自動的に行うことができる。

Claude Desktopの設定

Docker DesktopのClientsタブからClaude Desktopを選択して、[Connect]を選択することにより自動設定が行われる。

手動で設定する場合は、Claude Desktopの設定ファイルに以下に示す内容を設定する。

Claude Desktopの設定ファイルの場所は以下の通りである。

  • Linux
    ~/.config/Claude/claude_desktop_config.json
  • MacOS
    ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows
    %APPDATA%\Claude\claude_desktop_config.json


設定ファイルに以下の内容を追記する。

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


設定ファイルを保存した後、Claude Desktopを再起動して設定を反映する。

Claude Codeの設定

Docker DesktopのClientsタブからClaude Codeを選択して、[Connect]を選択することにより設定が行われる。

CLIで設定する場合は、以下に示すコマンドを実行する。

docker mcp client connect claude-code


.mcp.json ファイルに手動で設定する場合は、以下に示す内容を設定する。

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


VS Codeの設定

settings.json ファイルに以下に示す内容を設定した後、以下に示すコマンドを実行する。

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


docker mcp client connect vscode


Cursorの設定

Docker DesktopのClientsタブからCursorを選択して、[Connect]を選択する。
設定適用後、Cursorを完全に終了して再起動する。


提供されるMCPサーバのツール

Docker Hub MCP Serverのツール

Docker Hub MCP Serverは、コンテナイメージとリポジトリの検索・情報取得に関するツールを提供する。

Docker Hub MCP Serverのツール一覧
ツール 説明
search_images 自然言語によるコンテナイメージの検索を行う。
get_image_details 指定したイメージの詳細情報を取得する。
get_image_tags 指定したイメージのタグ一覧を取得する。
search_repositories Docker Hub上のリポジトリを検索する。
get_repository_details 指定したリポジトリの統計情報を取得する。


Dockerコンテナ管理MCPサーバのツール

Dockerコンテナ管理MCPサーバは、コンテナおよびイメージの管理に関するツールを提供する。

Dockerコンテナ管理MCPサーバのツール一覧
ツール 説明
list_containers 実行中および停止中のコンテナ一覧を表示する。
create_container 新しいコンテナを作成する。
start_container 指定したコンテナを起動する。
stop_container 指定したコンテナを停止する。
remove_container 指定したコンテナを削除する。
get_container_logs 指定したコンテナのログを取得する。
list_images ローカルのDockerイメージ一覧を表示する。
pull_image Docker Hubから指定したイメージをプルする。
deploy_compose Docker Composeスタックをデプロイする。



使用方法

MCPサーバを設定後、AIアシスタントに自然言語で指示するだけで、対応するツールが自動的に呼び出される。

Docker Hub MCPサーバの使用例

Docker Hubのイメージやリポジトリを検索・確認する操作例を以下に示す。

  • Nginxの最新イメージを検索する場合
     # プロンプト例 :
     
     Docker Hubから公式のNginxイメージを検索して、最新のタグ一覧を表示してください。
    

  • Pythonイメージの詳細情報を確認する場合
     # プロンプト例 :
     
     python:3.12-slimイメージの詳細情報とサイズを教えてください。
    


Dockerコンテナ管理MCPサーバの使用例

コンテナとイメージの管理に関する操作例を以下に示す。

  • 実行中のコンテナを確認する場合
     # プロンプト例 :
     
     現在実行中のDockerコンテナ一覧を表示してください。
    

  • コンテナのログを確認する場合
     # プロンプト例 :
     
     my-appコンテナの最新100行のログを表示してください。
    

  • Docker Composeスタックをデプロイする場合
     # プロンプト例 :
     
     docker-compose.ymlを使用してアプリケーションスタックをデプロイしてください。
    



セキュリティ

セキュリティ機能の概要

Docker MCP Catalog and Toolkitは、MCPサーバの安全な実行のために複数のセキュリティ機能を提供する。

セキュリティ機能の一覧
機能 説明
コンテナ隔離 各MCPサーバはコンテナとして実行され、リソース制限が適用される。
CPU使用率は1コア以下、メモリは2[GB]以上の割り当てが推奨される。
デジタル署名 Docker Hub上のmcp/カタログイメージはDocker社がデジタル署名を行っている。
SBOM (ソフトウェア部品表) 全てのカタログイメージにSBOMが含まれており、コンポーネントの透明性を確保している。
シークレット管理 Docker Desktopの暗号化シークレット機能を使用して、APIキー等の認証情報を安全に保管する。
ツール許可リスト 特定のツールのみを許可する設定が可能であり、AIアシスタントが使用できるツールを制限できる。


セキュリティに関する推奨事項

Docker MCP Catalog and Toolkitを安全に使用するための推奨事項を以下に示す。

  • APIキーや認証情報は、設定ファイルに直接記述せず、Docker Desktopのシークレット管理機能を使用して保管する。
  • ツール許可リストを設定して、AIアシスタントが実行できる操作を必要最小限に制限する。
  • Docker Hub上のイメージはDocker社が署名した検証済みのものを使用し、非公式イメージの使用は避ける。
  • コマンドインジェクション対策として、AIアシスタントからの操作実行前にユーザ確認が求められる場合がある。これは正常な動作である。



トラブルシューティング

よくある問題と対処法

下表に、Docker MCP Catalog and Toolkitの使用時に発生しやすい問題と対処法を示す。

トラブルシューティング一覧
問題 原因 対処法
Docker DesktopがMCP Toolkitを認識しない Beta FeaturesでDocker MCP Toolkitが有効になっていない。
または、Docker Desktopのバージョンが古い。
[Settings] - [Beta Features]を開いて、
[Enable Docker MCP Toolkit]を有効化してDocker Desktopを再起動する。
Docker Desktopを4.59以降にアップデートする。
MCPクライアントが接続できない クライアントの設定が正しく適用されていない。
または、MCP Gatewayが起動していない。
Docker DesktopのClientsタブで接続状態を確認して、
[Connect]で再接続する。
MCPクライアントを完全に終了して再起動する。
MCPサーバが起動しない Docker Desktopが実行されていない。
または、リソースが不足している。
docker ps コマンドでDocker Desktopの動作を確認する。
[Settings] - [Resources]でリソース割り当てを確認・調整する。
コンテナログを確認してエラーの詳細を調べる。
APIキーが認識されない 環境変数や認証情報の設定が正しくない。 Docker Desktopの[Config]タブで環境変数の設定を再確認する。
設定変更後にMCPサーバを再起動する。
セキュリティ警告が表示される コマンドインジェクション対策によるユーザ確認が求められている。 これは正常な動作である。
内容を確認して、問題がなければ許可する。