はじめに
MCP Server の提供元ドキュメントには、通常、AI Agent 側の設定例も記載されています。
ただし、PC が Windows の場合は、Docker Desktop for Windows を使用し、MCP 設定から docker command を直接実行する例が多く見られます。一方、Docker を WSL(Windows Subsystem for Linux)内に用意している場合に、Windows 上の AI Agent からどのように MCP Server を起動するかは、あまり紹介されていません。
この構成では、一般的な設定例をそのまま Copy & Paste しても、Windows 上の Bob から WSL 内の docker を直接呼び出すことができません。
そこで本記事では、IBM Cloud Code Engine MCP Server を例に、wsl.exe を経由して WSL 上の Docker container を起動するための Bob の MCP 設定を紹介します。
今回使用する MCP Server:
MCP Server の build 方法や機能の詳細は上記 repository を参照してください。本記事では、Windows 版 Bob と WSL 上の MCP Server を接続するための設定に焦点を当てます。
本記事の対象構成
本記事で対象とする Local PC 内の構成は以下の通りです。
Bob は Windows 上で動作し、Code Engine MCP Server は WSL 上の Docker container として動作します。
Bob の MCP 設定では、wsl.exe を経由して対象の WSL distribution を指定し、その中で docker run を実行します。Bob と MCP Server は STDIO で通信します。
なお、この Code Engine MCP Server は、mcp.env から渡された IBM Cloud API key を使用して IBM Cloud API にアクセスします。IBM Cloud CLI を経由する構成ではありません。
事前準備
WSL distribution 名を確認する
Windows の PowerShell または Command Prompt で以下を実行します。
wsl -l -v
出力例:
NAME STATE VERSION
* Ubuntu-26.04 Running 2
重要
Ubuntu-26.04は筆者の環境での名前です。Ubuntu、Ubuntu-24.04など、wsl -l -vで確認した実際の distribution 名に置き換えてください。
Docker image と環境変数ファイルを準備する
MCP Server の repository から Docker image を build します。
docker build -t code-engine-mcp:latest .
IBM Cloud の認証情報は Bob の設定に直接記述せず、WSL 上の環境変数ファイルに保存します。
/home/<WSL_USER>/.config/code-engine-mcp/mcp.env
設定例:
IBMCLOUD_API_KEY=<YOUR_IBM_CLOUD_API_KEY>
IBMCLOUD_REGION=jp-tok
LOG_LEVEL=INFO
認証情報を含むため、ファイルの権限を制限し、Git repository には commit しないようにします。
chmod 600 ~/.config/code-engine-mcp/mcp.env
Bob の MCP 設定
Bob の MCP 設定画面から、Global MCP または Project MCP の設定ファイルを開き、以下を追加します。
{
"mcpServers": {
"ibm-code-engine-mcp": {
"command": "wsl.exe",
"args": [
"-d",
"Ubuntu-26.04",
"--",
"docker",
"run",
"-i",
"--rm",
"--env-file",
"/home/<WSL_USER>/.config/code-engine-mcp/mcp.env",
"code-engine-mcp:latest"
]
}
}
}
Copy & Paste 後、以下を自分の環境に合わせて変更します。
| 設定箇所 | 変更内容 |
|---|---|
Ubuntu-26.04 |
wsl -l -v で確認した distribution 名 |
<WSL_USER> |
WSL 上のユーザー名 |
mcp.env の path |
環境変数ファイルを別の場所に保存した場合は、その実際の Linux path |
code-engine-mcp:latest |
build した Docker image 名や tag が異なる場合は、その実際の値 |
設定のポイント
-
command: wsl.exe:Windows 上の Bob から WSL を起動します。 -
-d Ubuntu-26.04:Docker を用意した WSL distribution を指定します。 -
--:これ以降のdocker run ...を WSL 側で実行する command として渡します。 -
-i:Bob と MCP Server が STDIO で通信するために必要です。 -
--rm:MCP Server 終了後に container を削除します。 -
--env-file:IBM Cloud API key などを WSL 上のファイルから渡します。
--env-file に指定するのは Windows path ではなく、Docker を実行する WSL から見える Linux path です。
/home/<WSL_USER>/.config/code-engine-mcp/mcp.env
また、Docker image 名は code-engine-mcp:latest と記述します。JSON 内で code-engine-mcp\:latest のように : を escape する必要はありません。
接続確認と注意点
Bob 上で接続状態を確認する
設定を保存した後、Bob Settings の「MCP」画面を開き、追加した MCP Server のステータスを確認します。
以下のように ibm-code-engine-mcp が表示され、ステータスが「接続済み」になれば、MCP Server との接続は成功です。

まず WSL 上の Docker を確認する
Bob から接続できない場合は、PowerShell から同じ WSL distribution の Docker を実行できるか確認します。
wsl -d Ubuntu-26.04 -- docker version
wsl -d Ubuntu-26.04 -- docker image inspect code-engine-mcp:latest
ここでエラーになる場合は、Bob の設定ではなく、WSL 側の Docker daemon、権限、image 名を先に確認します。
Region の default 値に注意する
この MCP Server では、IBMCLOUD_REGION を指定しない場合、default で us-south が使用されます。東京 region を利用する場合は、mcp.env に以下を設定します。
IBMCLOUD_REGION=jp-tok
同じ API key で CLI 操作は成功するのに MCP Server では対象 resource が見つからない場合は、IAM 権限だけでなく region も確認します。
Connected でも tool が表示されない場合
MCP Server が Connected でも、現在の chat が変更前の tool 情報を保持している場合があります。その場合は、以下を順に試します。
- MCP Server を Restart する
- 新しい chat を開始する
- 必要に応じて Bob を再起動する
実際には、新しい chat を開始することで tool が認識されたケースがありました。
Always Allow と IBM Cloud IAM を分けて確認する
Always Allow は、Bob 側で MCP tool の実行承認を省略する設定です。IBM Cloud IAM の権限を追加するものではありません。
実際に試した際には、必要な tool の実行が許可されていない状態で処理が進まず、Bob が API key の権限不足を原因候補として回答するケースがありました。エラー時は、以下を分けて確認します。
- Bob 側で MCP tool の実行が許可されているか
- API key に必要な IBM Cloud IAM 権限があるか
検証時に Always Allow を使用する場合も、tool の内容を確認し、必要なものだけを有効にします。利用しない tool を無効にすると、tool 定義による context の消費も抑えられます。
まとめ
Windows 版 Bob から WSL 上の Docker MCP Server を使用する場合は、command に wsl.exe を指定し、args で WSL distribution と docker run command を渡します。
特に重要なのは以下の点です。
-
-dには実際の WSL distribution 名を指定する -
mcp.envは WSL から参照できる Linux path で指定する -
IBMCLOUD_REGIONで対象 region を明示する -
Connectedでも tool が見えない場合は、新しい chat も試す - Bob の tool 実行許可と IBM Cloud IAM 権限を分けて確認する
この設定方法は、Windows 上の Bob から WSL 内で動作するほかの Docker-based MCP Server を利用する場合にも応用できます。
