VS CodeでMCP Server(プレビュー版):設定ファイルの書き方で生じる微妙な違い

記事タイトルとURLをコピーする

こんにちは。
アプリケーションサービス部、DevOps担当の兼安です。

AWSから発表されたMCP ServerをVisual Studio Code(以下、VS Code)で試したところ、設定の仕方で微妙な違いが現れることに気づいたので書かせていただきます。

本記事のターゲット

  • MCP ServerをVS Codeで試してみたい方
  • VS Codeの設定方法にある程度の理解がある方

本記事の注意事項

本記事で述べている内容は、2025年5月下旬時点の情報に基づいています。
2025年5月下旬時点では、VS CodeのMCPの機能はPreview版であり、将来的に変更される可能性があります。

本記事では、macOSのVS Code April 2025 (version 1.100)で動作確認しています。
MCP Serverの設定が効いているかどうかは、AWS MCP ServersとVS Codeで動かしたGitHub Copilot Agent Modeを利用して、AIアシスタントに質問してみることで確認しています。

awslabs.github.io

github.blog

VS CodeのMCP Server(プレビュー版)とは

VS CodeはMCP Serverを利用するための拡張機能をプレビュー版で提供しています。

code.visualstudio.com

VS CodeでMCP Serverを利用するためには、設定ファイルにMCP Serverの情報を追加する必要があります。
公式ドキュメントでは、.vscode/mcp.jsonに設定を書くように記載されています。

Workspace settings: add a .vscode/mcp.json file in your workspace to configure MCP servers for a workspace and share configurations with team members.

私が試したところ、この設定はフォルダ単位で.vscode/mcp.json.vscode/settings.jsonに書いても反応することを確認できています。

本記事では、フォルダ単位で.vscode/mcp.json.vscode/settings.json、それぞれにMCP Serverの設定を記述した場合の差異について、実際に試してみた結果をまとめます。

MCP Serverの設定をフォルダの.vscode/mcp.jsonに記述した場合

まずは、MCP Serverの設定をフォルダの.vscode/mcp.jsonに記述してみます。
VS Codeのドキュメントを参考に、フォルダのルートディレクトリに.vscodeディレクトリを作成し、その中にmcp.jsonファイルを作成します。

folder_1/
└── .vscode/
    ├── mcp.json
    └── settings.json

.vscode/mcp.jsonファイルの内容は以下のようになります。

{
    "servers": {
        "awslabs.core-mcp-server": {
            "command": "uvx",
            "args": [
                "awslabs.core-mcp-server@latest"
            ],
            "env": {
                "FASTMCP_LOG_LEVEL": "ERROR"
            }
        },
        "awslabs.aws-documentation-mcp-server": {
            "command": "uvx",
            "args": [
                "awslabs.aws-documentation-mcp-server@latest"
            ],
            "env": {
                "FASTMCP_LOG_LEVEL": "ERROR"
            }
        },
    }
}

設定内容はAWS MCP Serversの公式ドキュメントを参考にしていきます。
公式ドキュメントの書式と、VS Codeの設定方法に微妙な違いがあるので、修正していきます。
mcpServersの部分は、serversに変更します。
autoApproveなどは、VS Codeの設定だと「Property autoApprove is not allowed.」エラーが出るので削除します。

この状態で、VS Codeのコマンドパレットから「MCP: List Servers」を実行すると、設定したMCP Serverがリスト表示されます。

VS Codeのコマンドパレットから「MCP: List Servers」を実行

MCP Serverのリスト

リストからMCP Serverを選択して、起動することができます。
これで、AIアシスタントを通じて、MCP Serverを利用することができます。

MCP Serverを選択して起動

VS Codeで複数フォルダを開いた場合

今度は、複数のフォルダでそれぞれMCP Serverを設定し、VS Codeで同時に開いてみます。
先ほどの状態から、2つ目のフォルダをAdd Folder to Workspace…で開きます。

folder_1/
└── .vscode/
    ├── mcp.json
    └── settings.json

folder_2/
└── .vscode/
    ├── mcp.json
    └── settings.json

コマンドパレットから「MCP: List Servers」を実行すると、両方のフォルダで設定したMCP Serverが表示されます。

MCP Serverのリストに両方のフォルダで設定したMCP Serverが表示される

この状態で、GitHub Copilot Agent ModeにMCP Serverを利用するよう指示すると、私が試した限りはコンテキストに与えたファイルが属するフォルダのMCP Serverの設定を見に行く挙動を確認しました。
この動きは使用するAIアシスタントやバージョンによって異なる可能性がありますので、断定は難しいですね。

MCP Serverの設定をフォルダの.vscode/settings.jsonに記述した場合

今度は、MCP Serverの設定をフォルダの.vscode/settings.jsonに記述してみます。
この場合、フォルダの開き方によって差異が出ることを確認しているので、そのことを述べていきます。

folder_a/
└── .vscode/
    └── settings.json # ここにMCP Serverの設定を記述

.vscode/settings.jsonにMCP Serverの設定を記述する場合、mcp.jsonに書く内容をmcpの下に書きます。

{
    "mcp": {
        "servers": {
            "awslabs.core-mcp-server": {
                "command": "uvx",
                "args": [
                    "awslabs.core-mcp-server@latest"
                ],
                "env": {
                    "FASTMCP_LOG_LEVEL": "ERROR"
                }
            },
            "awslabs.aws-documentation-mcp-server": {
                "command": "uvx",
                "args": [
                    "awslabs.aws-documentation-mcp-server@latest"
                ],
                "env": {
                    "FASTMCP_LOG_LEVEL": "ERROR"
                }
            },
        }
    }
}

MCPの設定を.vscode/settings.jsonに記述してフォルダをOpen Folder…で開いた場合

この設定内容で、まずは1つだけフォルダを開きます。
新しいウィンドウを開き、フォルダをOpen Folder…で開きます。

Open Folder…で開く

適切にMCP Serverの設定が認識されています。

MCP Serverのリスト

起動して、利用もできることが確認できました。

MCPの設定を.vscode/settings.jsonに記述してAdd Folder to Workspace…で開いた場合

また新しいウィンドウを開き、フォルダを今度はAdd Folder to Workspace…で開きます。

Add Folder to Workspace…で開く

VS Code上で開いたフォルダの.vscode/settings.jsonを確認すると、記述したMCP Serverの設定が薄く表示されました。
これは今までの設定とは異なる挙動ですね。

記述したMCP Serverの設定が薄く表示される

カーソルを合わせると以下のメッセージが表示されました。

This setting cannot be applied in this workspace. It will be applied when you open the containing workspace folder directly.

MCP Serverの認識はされているようで、利用もできるようです。
ただ、mcp.jsonと表示されるのは気になりますね。
実際設定を書いているのは、.vscode/settings.jsonです。

MCP Serverのリスト

.vscode/settings.json開いた時に表示されていたメッセージの通り、この書き方のMCP Serverの設定は、本来ワークスペース単位で、フォルダを直に開く時に適用されるもののようです。
VS Codeの設定画面でMCPの項目を見ると、Folder単位の設定がありません。

VS CodeのMCPの設定 - Workspace

VS CodeのMCPの設定 - Folder

複数のフォルダを開く場合(ワークスペースを作って複数フォルダを管理する場合)は、ワークスペースの設定ファイル(.code-workspace)か、さらに上位のユーザー単位の設定に記述するのが正しいのでしょう。
この挙動自体は、VS Codeの他のワークスペース単位の設定と同じのようです。
上記メッセージが表示されている状態だと、動作はするようですが、少々気になりますね。

MCPの設定を.vscode/settings.jsonに記述して複数フォルダを開いた場合

一応、このまま複数のフォルダを開いてみます。
2つのフォルダはどちらも.vscode/settings.jsonにMCP Serverの設定を記述しています。

folder_a/
└── .vscode/
    └── settings.json

folder_b/
└── .vscode/
    └── settings.json

先ほどの状態から、2つ目のフォルダをAdd Folder to Workspace…で開きます。

割愛しますが、同じようにvscode/settings.jsonのMCP Serverの設定が薄く表示されました。
メッセージも同様に表示されます。

設定の認識自体はしているようで、それぞれのフォルダのMCP Serverを起動することができました。

MCP Serverのリスト

まとめ

フォルダ単位でMCP Serverの設定をする場合、設定の書き方によって、以下のような違いがありました。

MCP設定の記述先 VS Codeの開き方 MCP Serverの動作 設定ファイル上の表示
.vscode/mcp.json Open Folder 通常表示
.vscode/mcp.json Add Folder to Workspace 通常表示
.vscode/settings.json Open Folder 通常表示
.vscode/settings.json Add Folder to Workspace 薄く表示されて警告表示

わかりやすさの観点からすると、現時点では公式ドキュメントの記載の通り、.vscode/mcp.jsonに設定を記述するのが良いでしょう。

あとがき

今回の記事を書く前に、気づいたことがあります。
私は昔からの癖で、VS Codeは必ずワークスペースを作って作業しています。
これは、案件ごとにVS CodeのColor Themeを分けて、今何をしているかを視覚的にわかりやすくするためです。
自分の中ではこのスタイルが普通だったのですが、今回周りの話を聞いてみるとワークスペースを使わない人も多いことに気づきました。
自分の中の普通は他の人にとっては普通ではないこともあることを再認識しました。

一方で、ワークスペースを使っていなかったら、設定の記述先により差異が出ることに気づかなかったかもしれませんね。