VS Code（Windows版）で AWS MCP Servers を使って AWS のドキュメントから情報を取得する

## はじめに

以前の記事では、Claude Desktop（Windows版）で AWS MCP Servers を使って AWS のドキュメントから情報を取得する方法を紹介しました。
今回は、VS Code（Windows版）で AWS MCP Servers を使って AWS のドキュメントから情報を取得する方法を紹介します。

https://qiita.com/revsystem/items/1e4c738ecaeacb7f133d

## 参考情報

https://github.com/awslabs/mcp

https://qiita.com/ny7760/items/137dec44d7fb188defea

## 前提条件

- Windows 11 を使用
- VS Code 1.99.0 以降
- GitHub Copilot Chat、GitHub Copilot の各エクステンションがインストールされていること

## Python 環境の構築

### uv のインストール

AWS Documentation MCP Server では uv による Python パッケージとプロジェクト管理ツールを使用します。[uv の公式ドキュメント](https://docs.astral.sh/uv/getting-started/installation/)に従って uv をインストールします。

```console
powershell -ExecutionPolicy Bypass -c "irm https://astral.sh/uv/install.ps1 | iex"
```

```console
> uv --version
uv 0.6.11 (0632e24d1 2025-03-30)
```

### Python のインストール

uv をインストールしたら、Python 3.10 もしくはそれ以上のバージョンをインストールします。AWS Documentation MCP Server の公式ドキュメントには uv コマンドでインストールする手順が記載されていますが、他の手段でインストールした Python でも動作するかもしれません。

```console
uv python install 3.10
```

## VS Code のセットアップ

### インストール

[VS Code の公式サイト](https://code.visualstudio.com/Download)からインストーラーをダウンロードしてインストールします。

### エージェントモードの有効化

VS Code の設定でエージェントモードを有効化します。
Settings 画面の検索窓に `chat.agent.enabled` と入力し、`Chat > Agent: Enabled` のチェックボックスをチェックします。

![エージェントモードを有効化](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/61809/7a81fbcf-68f1-4c27-b3da-2bb7730d7a96.png)

### MCP サーバーの設定

続いて、[AWS Documentation MCP Server の公式リポジトリ](https://github.com/awslabs/mcp/blob/main/src/aws-documentation-mcp-server/README.md)に従って AWS Documentation MCP Server をインストールします。

VS Code の設定ファイルを編集します。さきほどの Settings 画面の検索窓に `mcp` と入力し、`Edit in settings.json` のリンクをクリックします。

![settings.json のリンク](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/61809/e94e66fe-c20c-4bc2-a3db-04113666f24f.png)

settings.json に、以下の設定を追加します。

```json
  "mcp": {
    "inputs": [],
    "servers": {
      "awslabs.aws-documentation-mcp-server": {
        "command": "uvx",
        "args": [
            "--from",
            "awslabs-aws-documentation-mcp-server",
            "awslabs.aws-documentation-mcp-server.exe"
        ],
        "env": {
            "FASTMCP_LOG_LEVEL": "ERROR"
        },
        "disabled": false,
        "autoApprove": []
      }
    }
  }
```

デフォルトで mcp-server-time が設定されている場合は、全体で以下のように設定します。

```json
  "mcp": {
    "inputs": [],
    "servers": {
      "mcp-server-time": {
        "command": "python",
        "args": [
          "-m",
          "mcp_server_time",
          "--local-timezone=America/Los_Angeles"
        ],
        "env": {}
      },
      "awslabs.aws-documentation-mcp-server": {
        "command": "uvx",
        "args": [
            "--from",
            "awslabs-aws-documentation-mcp-server",
            "awslabs.aws-documentation-mcp-server.exe"
        ],
        "env": {
            "FASTMCP_LOG_LEVEL": "ERROR"
        },
        "disabled": false,
        "autoApprove": []
      }
    }
  }
```

AWS Documentation MCP Server を設定すると、`▷Start | 3 cached tools` と表示されドキュメントの取得などのツールが利用可能であることを示します。

![利用可能な MCP ツール](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/61809/21e8c06b-c30e-4134-829b-a56c234a015e.png)

この `▷Start` をクリックすると、`✓Running | Stop | Restart | 3 tools` と表示され MCP ツールが利用可能な状態になります。

![MCP ツールが利用可能な状態](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/61809/07eaa504-7a4a-41e8-a02a-4981ecc17495.png)

## 動作確認

GitHub Copilot Chat を開き、モードを Agent に切り替えます。

![Agent モード](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/61809/52a56d0b-982d-4339-a5f2-42b09f60f3de.png)

Agent モードに切り替えるとチャット画面にハンマーのアイコンが表示され、設定した権限に応じて利用可能な MCP ツールが表示されます。

![ハンマーのアイコン](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/61809/2b5e9070-b9c5-481e-b93f-3e1f2b9dd330.png)

ハンマーのアイコンをクリックすると、利用可能な MCP ツールが表示されます。その中に `read_documentation`、`search_documentation`、`recommend` が表示されていることを確認できます。上記スクリーンショットでは、合計 36 個のツールが表示されています。一部、エラーがあるので赤い警告アイコンになっています。

![利用可能な MCP ツール](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/61809/ff8463e9-56d0-4b4b-81dc-ac787de3f495.png)

ハンマーのアイコンのとなりにある同期アイコンをクリックすると、前回までの記事で設定した claude_desktop_config.json の設定が反映されます。

### 使用例: ドキュメントの検索

AWS Documentation MCP Server を使うには、プロンプトに「AWS に関するキーワード」と「ドキュメントから探して」のように AWS のドキュメントから検索を行うことを明示的に指定すると、AWS Documentation MCP Server が検索を行うようです。この MCP サーバーを使うかどうかは LLM が動的に判断しているので、この指定であっても MCP サーバーを使わない回答となる場合があります。

以下のような質問をしてみましょう：

> Ubuntu 環境でコマンドラインで S3 にファイルをアップロードする方法をドキュメントから探して。

LLM は最初に AWS Documentation MCP Server の実行許可を求めます。

![実行許可](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/61809/6a6cb9a5-a856-487e-88db-b1f6c267b28f.png)

許可を与えると、AWS Documentation MCP Server が Ubuntu 環境でコマンドラインで S3 にファイルをアップロードする方法をドキュメントから探して、LLM に回答を返します。今回は英語での回答となりました。モデルを切り替えて試してみたところ、GPT-4o は MCP サーバーを利用しないことが多く発生しました。

![Ubuntu 環境でコマンドラインで S3 にファイルをアップロードする方法をドキュメントから探して。](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/61809/927c445d-d2e0-495c-9fbc-1b9b0036f5d2.png)

## まとめ

Windows 環境の VS Code では、`settings.json` に設定する MCP サーバーの定義が公式ドキュメントと異なることを紹介しました。MCP サーバーを設定すると、GitHub Copilot Chat で AWS のドキュメントから情報を取得することができます。そして、GitHub Copilot Chat の MCP サーバー設定同期機能を利用すると、claude_desktop_config.json の設定を反映することができます。
AWS の膨大なドキュメントを VS Code から検索することができるので、開発や運用作業中のドキュメント検索に重宝しそうです。