Docker MCP Toolkitとは|docker mcp serverの使い方・CLI・クライアント連携を解説
Docker MCP Toolkitは、Model Context Protocol(MCP)に対応したサーバーをコンテナとして動かし、ClaudeやCursorなどのAIエージェントにつなぐための管理機能です。クラスタ監視やノード管理のツールではありません。Docker Desktop 4.42(2025年6月10日)から本体に内蔵され、拡張機能を入れなくても使えます。この記事では「docker mcp server」を実際に動かす読者に向けて、カタログからのサーバー追加、docker mcp CLIとゲートウェイ、Claude・Cursor・VS Code・LM Studioとの接続、シークレット管理とセキュリティ、Docker Composeでの利用までを、公式ドキュメントで裏取りした手順に沿って解説します。ゲートウェイの役割を先に押さえたい場合はDocker MCP Gatewayの導入メリットも参考になります。
まとめ:Docker MCP Toolkitの要点
- 実体:Docker Desktop 4.42以降に内蔵された、MCPサーバーをコンテナで動かしAIエージェントに接続する管理機能。旧来の拡張機能版は非推奨に移行済みです。
- カタログ:300以上の検証済みMCPサーバーがコンテナイメージとして用意され、GitHubやデータベース連携などをワンクリックで有効化できます。
- ゲートウェイ:複数のMCPサーバーを単一エンドポイント(既定ポート8811)に束ねるオープンソース実装で、
docker mcp gateway runで起動します。 - クライアント連携:Claude Desktop・Cursor・VS Code・LM Studio・Gordonなどを、Docker Desktopの画面またはCLIから接続できます。
- シークレット:APIキーはOSのキーチェーンに保存され(
docker mcp secret)、設定ファイルに平文で書きません。 - セキュリティ:各サーバーはコンテナ隔離で動き、既定でメモリ2GB・CPU1コアに制限、外部へのシークレット送信も既定で遮断されます。
- 費用:Docker Desktopに同梱され、追加課金なしで利用できます。
以降で、MCPとは何かという基礎から、有効化・CLI・クライアント接続・トラブル対処までを順に見ていきます。
Docker MCP Toolkitとは何か(docker mcp server / mcp docker)
Model Context ProtocolとMCPサーバーの役割
MCP(Model Context Protocol)は、Anthropicが2024年11月に公開したオープン標準で、AIアプリケーションと外部のツールやデータ源をつなぐ共通の接続規格です。この規格に沿って「ツール」を提供する常駐プロセスがMCPサーバーで、たとえばGitHubの操作、データベース照会、Web検索などをAIから呼び出せるようにします。AIアプリ側(Claude Desktopなどの「ホスト」)は、対応するMCPサーバーを追加するだけで機能を拡張できます。MCPサーバー自体をPythonで自作する場合はFastMCPによるMCPサーバー構築が近道です。
Dockerで動かす理由:npx/uvx直実行の課題と隔離による解決
従来のMCPサーバーは、npxやuvxでホスト上に直接プロセスを起動する構成が一般的でした。この方式は導入は速い一方で、ホストのファイルシステムや環境変数に広くアクセスできてしまい、APIキーを設定ファイルへ平文で書く運用になりがちです。ランタイムの依存も端末ごとにばらつきます。Docker MCP Toolkitはこれを、各サーバーを個別のコンテナに閉じ込めて動かす方式に置き換えます。ホストへのアクセスは既定で最小限に絞られ、鍵はキーチェーンに保管され、実行環境はイメージに固定されるため「自分の端末では動くが他では動かない」を避けられます。安全性の設計思想はnpx直実行との対比で理解すると分かりやすく、この点が本ツールの最大の存在意義です。
Docker Desktopでの位置づけと対応バージョン
MCP ToolkitはDocker Desktop 4.42(2025年6月10日リリース)で本体に統合されました。それ以前は「Docker MCP Toolkit」という別個の拡張機能として提供されていましたが、こちらは非推奨となり、追加インストールは不要になりました。ただし現行UI(4.62以降)では、初回にDocker Desktopの「Settings」→「Beta features」で「Enable Docker MCP Toolkit」を有効化する必要があります。有効化するとダッシュボードにMCP Toolkitが現れ、Catalog(サーバー一覧)・Profiles(サーバーの束)・Clients(接続先アプリ)などのタブが並びます。まずはDocker Desktopを最新へ更新し、この有効化を済ませてください。
Docker MCP Toolkitの使い方:有効化とサーバー追加
MCP Toolkitの有効化とプロファイル作成
前述のとおり、初回はSettings→Beta featuresでMCP Toolkitを有効化します。そのうえで4.62以降では、用途ごとにMCPサーバーを束ねる「プロファイル」を先に作ります。たとえば開発用と検証用でプロファイルを分けておくと、クライアントへ渡すサーバー群を切り替えられます。プロファイルはDocker Desktopの画面から作成でき、CLIではdocker mcp profile createで作ります。単一用途だけなら既定プロファイルのままでも問題ありません。
# 開発用プロファイルを作る
docker mcp profile create --name web-dev
# プロファイル一覧
docker mcp profile list
カタログからのMCPサーバー追加
MCP ToolkitのCatalogタブには、GitHub・各種データベース・Web検索など300以上の検証済みサーバーが並びます。使いたいサーバーを選んで有効化するだけで、対応するコンテナイメージが取得され、プロファイルに追加されます。カタログのイメージはDocker Hubのmcp名前空間で配布され、提供元や更新が管理された検証済みのものです。CLIからカタログを扱う場合は次のように確認します。
# 利用可能なカタログを一覧
docker mcp catalog ls
# ゲートウェイで動かすサーバーを名前で指定する場合に使う
docker mcp gateway run --servers github
どのサーバーを入れるかは「AIに何をさせたいか」で決めます。コード操作ならGitHub、社内データ参照ならデータベース系、調べ物ならWeb検索系を最小限だけ有効化するのが、権限とトークン消費の両面で無難です。
APIキー・シークレットの登録
GitHubトークンやデータベースのパスワードなど、サーバーが必要とする認証情報はシークレットとして登録します。Docker MCP ToolkitはこれをOSのキーチェーンに保存し、設定ファイルへ平文で書きません。CLIではdocker mcp secret setを使い、値は標準入力から渡せます。
# ファイルの中身を標準入力から渡す(キーをsecret setの引数に直書きしない)
cat pwd.txt | docker mcp secret set postgres_password
# 登録済みシークレットの一覧
docker mcp secret ls
キーをdocker mcp secret set postgres_password=xxxxのように引数へ直接書くとシェル履歴に平文が残ります。上記のようにファイルの中身を標準入力から渡すか、Docker Desktopの画面から登録する方が安全です。登録後は該当サーバーが起動時にキーチェーンから値を受け取ります。
docker mcp CLIの主要コマンド
Docker Desktopの画面でできる操作は、docker mcp CLIプラグインでも実行できます。スクリプト化やCI連携では、こちらを使う場面が増えます。主なサブコマンドは次のとおりです。
| サブコマンド | 役割 |
|---|---|
| catalog | MCPサーバーのカタログ(OCIカタログ)を管理 |
| server | サーバーの管理 |
| gateway | MCPゲートウェイの起動・管理 |
| client | 接続先クライアントの管理・接続 |
| profile | プロファイルの管理 |
| secret | シークレットをOSキーチェーンで管理 |
| tools | 提供中のツールの管理・確認 |
| feature | 試験的機能の有効化 |
| version | バージョン情報の表示 |
迷ったらまずdocker mcp versionでプラグインが入っているかを確認し、次にdocker mcp catalog lsとdocker mcp secret lsで現状を把握するのが実務的です。
docker mcp gateway run の主なオプション
ゲートウェイの起動コマンドには、動かすサーバーの指定と、隔離・安全に関わる制限がオプションで用意されています。
| オプション | 意味(既定値) |
|---|---|
| –servers | 起動するサーバー名(–profileと排他) |
| –profile | 使用するプロファイルID |
| –port | 待ち受けTCPポート |
| –transport | 通信方式(stdio / sse / streaming) |
| –memory | サーバーあたりメモリ(既定2GB) |
| –cpus | サーバーあたりCPU(既定1) |
| –block-secrets | 外部へのシークレット送信を遮断(既定true) |
| –verify-signatures | イメージ署名を検証(既定true) |
| –log-calls | ツール呼び出しをログ出力(既定true) |
--memoryと--cpusが既定で制限され、--block-secretsが既定で有効な点は覚えておく価値があります。MCPサーバーは外部由来のコードを動かすため、これらのガードを不用意に外すべきではありません。なお--serversと--profileは排他で、どちらか一方でサーバーを指定します。起動例は次のとおりです。
# サーバーを名前で直接指定(--serversと--profileは併用しない)
docker mcp gateway run --servers github --port 8811 --log-calls
# プロファイル単位でまとめて起動
docker mcp gateway run --profile web-dev
クライアントとの接続(Claude・Cursor・VS Code・LM Studio)
対応クライアントと接続手順
Docker MCP Toolkitは、Claude Desktop・Cursor・VS Code(GitHub Copilot)・Continue・Docker標準のAIエージェントGordon・LM Studioなど、主要なMCP対応クライアントに接続できます。最も簡単なのはDocker DesktopのClientsタブで対象アプリの「Connect」を押す方法で、接続後にそのアプリを再起動すればゲートウェイ経由でカタログのサーバーを使えます。CLIから接続する場合は次のように指定します。
# VS Codeをプロファイル指定で接続
docker mcp client connect vscode --profile web-dev
# 接続済みクライアントの確認
docker mcp client ls
Clientsタブに一覧されないアプリでも、設定ファイルにゲートウェイを手動登録すれば接続できます。ゲートウェイをstdioで起動する定義を、クライアントのMCP設定へ次のように書きます。
{
"mcpServers": {
"MCP_DOCKER": {
"command": "docker",
"args": ["mcp", "gateway", "run", "--profile", "web-dev"]
}
}
}
接続がうまく反映されないときは、クライアント側の再起動を先に試してください。MCPサーバーの一覧はクライアント起動時に読み込まれるため、接続直後は反映されないことがあります。
LM Studioとの接続手順
ローカルLLMを動かすLM Studioは、バージョン0.3.17でMCPホスト機能に対応し、外部のMCPサーバーを利用できるようになりました。Docker MCP ToolkitのClientsタブにLM Studio(lmstudio)が表示されていれば「Connect」で接続でき、手動で設定する場合はLM Studioのmcp.jsonにゲートウェイの起動定義を登録します。これでローカルモデルからGitHubやWeb検索などのツールを呼び出せます。LM Studio側の詳細設定やOAuth・Web検索の扱いはLM StudioのMCP設定とモデルの動かし方にまとめています。
GitHub MCPサーバーを実際に使うまでの流れ
ここまでの操作を1つのユースケースにつなげます。AIからGitHubのIssueやPRを操作したい場合、手順は次の4ステップです。まずCatalogでGitHubサーバーを有効化し、次にアクセストークンをシークレットとして登録、その上でClientsタブからClaude DesktopやCursorを接続し、最後にクライアントを再起動してツールを呼び出します。GitHub連携はローカル版とリモート版で認証や機能が異なるため、GitHub Remote MCP Serverの接続手順と認証と合わせて選ぶと迷いません。
MCP Gatewayとシークレット・セキュリティの仕組み
複数サーバーを単一エンドポイントに束ねるゲートウェイ
MCP Gatewayは、有効化した複数のMCPサーバーをまとめ、クライアントからは1つの接続先として見せる中継役です。これにより、クライアントごとに各サーバーを個別設定する手間がなくなり、認証情報の受け渡しやサーバーの起動・停止といったライフサイクルもゲートウェイが集約して管理します。ゲートウェイはオープンソースとして公開されており(docker/mcp-gateway)、Docker Desktopを介さずにコンテナとして単独運用することもできます。役割と導入効果の詳細はDocker MCP Gatewayの導入メリットを参照してください。
シークレットのOSキーチェーン管理
認証情報はdocker mcp secretを通じてOSのキーチェーン(資格情報ストア)に保存され、MCPサーバーの設定ファイルやコンテナイメージには平文で残りません。サーバー起動時に必要なキーだけがゲートウェイ経由で渡される設計です。さらにゲートウェイは既定でシークレットの外部送信を遮断(--block-secrets)するため、ツール呼び出しの際に鍵が意図せず外へ出ることを抑えます。
コンテナ隔離と署名イメージによる安全性
各MCPサーバーは独立したコンテナで実行され、既定でメモリ2GB・CPU1コアに制限されます。ホストのファイルシステムを無条件にマウントしないため、サーバー内のコードがホストの広い範囲へ触れることを防ぎます。カタログのDocker製イメージは署名・来歴(プロベナンス)付きで、ゲートウェイは既定でイメージ署名を検証します(--verify-signatures)。外部から持ち込んだ未検証のサーバーをnpxで直に走らせる構成に比べ、被害範囲を「そのコンテナの中」に閉じ込めやすいのが利点です。とはいえMCPサーバーは外部のツールを実行する仕組みである以上、有効化するサーバーは必要なものだけに絞り、資源制限やシークレット遮断の既定を安易に緩めないことが前提になります。
Docker Composeでゲートウェイを動かす
Docker Desktopの画面を使わず、ゲートウェイをComposeサービスとして常駐させることもできます。公式のdocker/mcp-gatewayイメージを使い、Dockerソケットをマウントしてポート8811を公開する構成が基本形です。
services:
mcp-gateway:
image: docker/mcp-gateway
ports:
- "8811:8811"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
command:
- --servers=github
- --transport=streaming
動かすサーバーは--serversや、別途用意したcatalog.yamlで指定します。カタログ定義では各サーバーにenabled: trueを付け忘れるとそのサーバーが起動せず、これがCompose運用でつまずく最も多い原因です。アプリ本体とMCPゲートウェイを同じComposeで束ねれば、開発環境ごとAIツール群を再現できます。
よくあるトラブルと対処
- クライアントにサーバーが出ない:接続後はクライアントの再起動が必要です。サーバー一覧は起動時に読み込まれるため、Docker Desktopで接続しただけでは反映されないことがあります。
- docker mcp が見つからない:CLIプラグインが有効か
docker mcp versionで確認します。出ない場合はDocker Desktopを最新(4.42以降)へ更新してください。 - ポートが競合する:既定の8811が使用中なら
--portで別ポートを指定します。ゲートウェイを二重起動していないかも確認します。 - シークレットが渡らない:
docker mcp secret lsで登録名を確認し、サーバーが要求するキー名と一致しているかを見ます。名前の綴り違いが典型的な原因です。 - Composeでサーバーが起動しない:catalog.yamlの各サーバーに
enabled: trueがあるか、スキーマのバージョン整合、環境変数がコンテナへ渡っているかを確認します。
Docker MCP Toolkitに関するよくある質問
Docker MCP Toolkitとは何ですか(docker mcp server)
Model Context Protocol(MCP)に対応したサーバーをコンテナとして動かし、ClaudeやCursorなどのAIエージェントに接続するための、Docker Desktop内蔵の管理機能です。クラスタ監視やノード管理のツールではなく、AIに外部ツールを使わせるための仕組みです。
どのバージョンから使えますか
Docker Desktop 4.42(2025年6月10日リリース)で本体に統合されました。それ以前の拡張機能版は非推奨です。プロファイル機能は4.62以降で利用できるため、最新版への更新をおすすめします。
MCPサーバーをDockerで動かすメリットは何ですか(mcpサーバー docker)
各サーバーをコンテナに隔離できる点です。npxやuvxでホスト上に直接動かす方式と違い、ホストへのアクセスが最小限に絞られ、APIキーはキーチェーンに保管され、実行環境がイメージに固定されるため再現性も高まります。
LM Studioと連携できますか(docker mcp toolkit lm studio)
できます。LM Studioは0.3.17でMCPホストに対応し、Docker DesktopのClientsタブから接続するか、LM Studioのmcp.jsonにゲートウェイを登録します。これでローカルモデルからカタログのツールを呼び出せます。
docker mcp コマンドが使えないときは
まずdocker mcp versionでCLIプラグインの有無を確認します。認識されない場合はDocker Desktopを4.42以降へ更新すると、docker mcpプラグインが同梱されて利用可能になります。
Docker MCP Toolkitは無料ですか
Docker Desktopに同梱されており、追加課金なしで利用できます。Docker Desktop自体のライセンス条件(規模により有償)には従います。