Claude Desktop に Docker を使って MCP Server を構築する方法 ~①Systemfile編~


以下は、[MCP Severs](https://github.com/modelcontextprotocol/servers) に含まれる [Systemfile MCP Server](https://github.com/modelcontextprotocol/servers/tree/main/src/filesystem) を Windows に [Docker Desktop](https://www.docker.com/ja-jp/products/docker-desktop/) を使って構築する手順をまとめたものです。

### 1. 事前準備
#### 1.1 ソフトウェアのインストール

以下を事前にインストールします。**Docker** を利用するため、**uv** や **nodejs** のインストールが不要になります。

- [Docker Desktop](https://www.docker.com/ja-jp/products/docker-desktop/)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2631481/0a1bb18e-b232-4ed3-9881-ad526775cb9c.png)

- [Git for Windows](https://gitforwindows.org/)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2631481/8dd3cb2e-d757-4f62-8725-ab1c71454761.png)

- [Claude Desktop](https://claude.ai/download)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2631481/3cfeffe0-fcdb-46d0-ae4f-ca7c794b0e80.png)

#### 1.2. Claude の開発者モードを有効化

`開発者モードを有効化`を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2631481/ed3c59f1-0365-4df0-a5e1-c5aaacaf9879.png)

### 2. MCP Servers のソースコードの取得

Filesystem を含む公式の MCP Servers のソースコードを取得します。

```bash
git clone https://github.com/modelcontextprotocol/servers.git
cd servers
```

※私は以下のディレクトリで実行しました。
`C:/Users/username/mcp_projects`

### 3. Filesytem MCP Server の Docker イメージのビルド

先ほど取得した Filesystem MCP Server のソースをビルドし、Docker イメージを作成します。

```bash
docker build -t mcp/filesystem -f src/filesystem/Dockerfile .
```

### 4. Claude Desktop用設定ファイルの編集

Claude Desktop が Filesystem MCP Serer をハンドリングできるように設定ファイルを変更します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2631481/0597579b-ffd6-4c63-a0d5-2cf00ea56923.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2631481/24cb7b81-8711-4562-99e3-dc937a58a9dd.png)

Claude Desktopの設定ファイル（例: `claude_desktop_config.json`）に以下を追記します。

```json
{
  "mcpServers": {
    "filesystem": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "--mount", "type=bind,src=<YOUR_LOCAL_PATH>,dst=/projects/<MOUNT_POINT>",
        "mcp/filesystem",
        "/projects"
      ]
    }
  }
}
```

- `<YOUR_LOCAL_PATH>`: ローカルの共有したいフォルダパス
- `<MOUNT_POINT>`: コンテナ内でのディレクトリ名

※ `dst` は必ず `/projects` 以下にする必要があります。
※ 私は以下のように設定しました。
`src=C:/Users/username/mcp_projects/shared`
`dst=/projects/shared`

### 5. 動作確認

Claude Desktopを再起動します。

※ ウィンドウを閉じるだけでなく、以下から完全に終了させます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2631481/12dd4c44-2b6c-4b92-b7e0-f8eca47edcb2.png)

Claude Desktop 再起動時に、Filesystem MCP Server のコンテナが自動で立ち上がります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2631481/1c957262-49dc-4f5a-ae10-5bce2bf6c7dd.png)

Claude に次のようなプロンプトを送って動作確認します：

```
/projects/shared/test.txt に HelloWorld と記載したテキストを出力して。
```

ツールを使用するか確認が入るので、許可して継続します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2631481/946f65b5-b07b-43fa-beb6-d6e184c72e75.png)

テストファイルが生成されれば成功です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2631481/7aeca3a6-2edd-42e7-b51f-a40869ba1d53.png)

### SearXNG編に続く...

[Claude Desktop に Docker を使って MCP Server を構築する方法 ~②SearXNG編~](https://qiita.com/hmkc1220/items/ee31051262d40042ec77)