MCP.so
ログイン
ブログに戻る

VS Code MCP 設定ガイド:GitHub Copilot Chat に MCP サーバーを追加

2026年10月15日MCP.so TeamMCP.so Team

VS Code MCP の設定ガイド。@mcp ギャラリーからのインストール、.vscode/mcp.json と .mcp.json の書き方、inputs によるシークレット管理、OAuth 認証、エラーの解決方法を解説します。

VS Code に MCP サーバーを追加する方法

VS Code に MCP サーバーを追加するいちばん早い方法は、組み込みのギャラリーです。拡張機能ビューを開いて @mcp で検索し、Install をクリックします。ギャラリーにないサーバーは、コマンドパレットで MCP: Add Server を実行するか、設定ファイルを直接編集します。.vscode/mcp.json(サーバーは servers の下)か、ポータブルな .mcp.json(サーバーは mcpServers の下)です。これでサーバーのツールが GitHub Copilot Chat のエージェントから使えるようになります。

ここでの内容はすべて VS Code の公式ドキュメント(MCP サーバーの追加と管理と MCP 設定リファレンス)と照合しています。試すサーバーを探しているなら、MCP サーバーディレクトリをご覧ください。

クイックリファレンス

タスク方法
ギャラリーからインストール拡張機能ビューで @mcp を検索し Install(または右クリックで Install in Workspace)
ガイド付きセットアップコマンドパレットで MCP: Add Server
ワークスペース設定(VS Code 形式).vscode/mcp.json、トップレベルは servers
ワークスペース設定(ポータブル形式)ワークスペースルートの .mcp.json、トップレベルは mcpServers
ユーザー設定MCP: Open User Configuration
起動・停止・ログ表示MCP: List Servers でサーバーを選択
ツールを個別にオン・オフチャット入力欄の Configure Tools
CLI からインストールcode --add-mcp '...json...'
古いツール情報を消去MCP: Reset Cached Tools

ステップ 1:MCP ギャラリーからインストールする

VS Code の拡張機能ビューには MCP サーバーのギャラリーがあります。

  1. 拡張機能ビューを開き、検索欄に @mcp と入力します(例:@mcp playwright)。
  2. Install でユーザープロファイルに追加するか、右クリックして Install in Workspace を選び .vscode/mcp.json に書き込みます。
  3. 確認が出たら、そのサーバーを信頼することを承認します。VS Code がサーバーを起動し、ツールを検出します。
  4. Chat ビューを開き、サーバーにできることを頼んでみます。例えば Playwright MCP サーバーなら「code.visualstudio.com を開いてスクリーンショットを撮って」です。

MCP: Add Server → Browse MCP Servers からも同じギャラリーを開けます。

ステップ 2:mcp.json を手動で設定する

ギャラリーにないサーバーや、チームで共有したい構成は、自分で設定ファイルを書きます。VS Code は 4 か所を読み込みます。

スコープファイルトップレベルのキー向いている用途
ワークスペースルートの .mcp.jsonmcpServersチームや他の Copilot ツールとの共有
ワークスペース.vscode/mcp.jsonserversVS Code 専用機能:入力変数、開発モード、サンドボックス
ユーザー~/.copilot/mcp-config.json(または $COPILOT_HOME/mcp-config.json)mcpServersCopilot CLI と共有する個人用サーバー
ユーザープロファイルプロファイル内の mcp.json(MCP: Open User Configuration)serversプロファイル固有のサーバー

現在のドキュメントでは、同じファイルを他のツールでも使えることから、ワークスペースルートの .mcp.json がサーバー共有の推奨場所とされています。一方 .vscode/mcp.json は VS Code の追加機能をサポートする形式なので、このガイドの例ではこちらを使います。どちらのファイルもソース管理にコミットできますが、シークレットは含めないでください。

ローカル(stdio)サーバーとリモート(HTTP)サーバー

{
  "servers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp"
    },
    "memory": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-memory"]
    }
  }
}

1 つ目はリモートの GitHub MCP サーバー、2 つ目はローカルで Memory MCP サーバーを動かします。ポータブルな .mcp.json では、同じエントリーを servers ではなく mcpServers の下に書きます。

フィールド一覧:

  • stdio: type("stdio")、command、args、cwd、env、envFile、さらに dev と sandboxEnabled。
  • HTTP/SSE: type("http" または "sse")、url、headers、oauth。"http" の場合、VS Code はまず Streamable HTTP を試し、サーバーが対応していなければ SSE にフォールバックします。

command は PATH 上にあるか、フルパスで指定する必要があります。Docker でサーバーを動かす場合はデタッチオプション(-d)を使わないでください。stdio サーバーはフォアグラウンドで動き続ける必要があります。これらのファイルでは IntelliSense が効くので、フィールド名のタイプミスはすぐに分かります。

ステップ 3:入力変数でシークレットを守る

コミットした mcp.json に API キーを直書きするのは典型的な失敗です。.vscode/mcp.json では inputs を宣言できます。サーバーの初回起動時に VS Code が値の入力を求め、その後は安全に保存します。

{
  "inputs": [
    {
      "type": "promptString",
      "id": "perplexity-key",
      "description": "Perplexity API Key",
      "password": true
    }
  ],
  "servers": {
    "perplexity": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "server-perplexity-ask"],
      "env": {
        "PERPLEXITY_API_KEY": "${input:perplexity-key}"
      }
    }
  }
}

入力の種類は promptString(自由入力。password: true で入力を隠す)、pickString(options のリストから選択)、command(VS Code コマンドの結果を使う)の 3 つです。入力変数はヘッダーにも使えます(例:"Authorization": "Bearer ${input:api-token}")。

ほかの方法として、"envFile": "${workspaceFolder}/.env" で stdio サーバーに dotenv ファイルを読み込ませたり、パスに ${workspaceFolder} などの定義済み変数を使ったりできます。形式による制限に注意してください。inputs、envFile、開発モードが使えるのは .vscode/mcp.json とプロファイルの mcp.json だけで、ポータブルな .mcp.json では使えません。また、${input:...} の値を必要とするサーバーは、ポータブル形式のファイルを直接読む Copilot ハーネスのセッションには転送されません。

ステップ 4:リモートサーバーの認証

ホスト型サーバーの多くは OAuth を使います。サーバーが認証を要求すると、VS Code は初回接続時にブラウザーウィンドウを開き、フローを自動で処理します。プロバイダーが事前登録済みのクライアントを求める場合は、oauth オブジェクトを追加します。

{
  "servers": {
    "slack": {
      "type": "http",
      "url": "https://mcp.slack.com/mcp",
      "oauth": {
        "clientId": "example-client-id"
      }
    }
  }
}

API キー方式のサーバーでは、入力変数を使ってキーを headers で送ります。企業では "enterpriseManaged": true(プレビュー)を設定し、SSO の ID プロバイダー経由でサインインすることもできます。MCP の OAuth の仕組みについては MCP 認証ガイドをご覧ください。

ステップ 5:Copilot Chat でツールを使う

サーバーが動き出すと、Chat ビューのエージェントがそのツールを使えるようになります。

  • エージェントに任せる。 必要に応じてツールを呼び出し、承認プロンプトを表示します。ツールの詳細を開いて入力を確認し、Allow をクリックします。
  • ツールを直接指定する。 チャット入力欄で # を入力してツールを選びます。
  • ツールを切り替える。 チャット入力欄の Configure Tools で、タスクに必要なツールだけをエージェントに見せます。

128 ツールの上限。 1 回のチャットリクエストで有効にできるツールは最大 128 個です。「Cannot have more than 128 tools per request」と表示されたら、ツールピッカーでツールやサーバーごと選択を外すか、github.copilot.chat.virtualTools.threshold 設定で仮想ツールを有効にして、大量のツールを自動でグループ化します。ツールを少なく、関連性の高いものに絞るほどエージェントの選択も正確になります。MCP ツールディスカバリーも参考にしてください。

VS Code の MCP サーバーは、ツールだけでなく resources、prompts、インタラクティブな MCP Apps も提供できます。

サーバーを追加するその他の方法

コマンドライン:

code --add-mcp "{\"name\":\"my-server\",\"command\": \"uvx\",\"args\": [\"mcp-server-fetch\"]}"

インストールリンク。 サーバーの作者は vscode:mcp/install?... 形式のリンクを公開できます。JSON 設定(name、command、args など)を URL エンコードして末尾に付けます。リンクをクリックすると VS Code のインストールフローが開きます。

他のアプリの設定を再利用する。 chat.mcp.discovery.enabled 設定を使うと、Claude Desktop、Cursor、Windsurf、Copilot CLI で設定済みのサーバーを VS Code が取り込みます。Copilot CLI の検出はデフォルトでオン、その他はオフです。

Dev Container。 devcontainer.json の customizations.vscode.mcp.servers にサーバーを書くと、VS Code がコンテナ内の設定に書き込みます。

設定の同期。 Settings Sync: Configure を実行して MCP Servers を有効にすれば、複数のマシンで同じ構成を使えます。

信頼とサンドボックス

ローカル MCP サーバーはあなたの権限で任意のコードを実行できます。VS Code には 2 つの安全策があります。

  • 信頼の確認。 ワークスペースのサーバーはワークスペースの信頼(Workspace Trust)を引き継ぎ、制限モードでは起動しません。他のソースのサーバーは、初回起動時や設定変更時に信頼を求めます。MCP: Reset Trust でこれらの判断をリセットできます。
  • サンドボックス(macOS と Linux)。 stdio サーバーに "sandboxEnabled": true を設定し、sandbox オブジェクトで書き込みを特定フォルダーに、ネットワークアクセスを特定ドメインに限定できます。

より広いチェックリストは MCP セキュリティのベストプラクティスをご覧ください。

VS Code MCP のトラブルシューティング

サーバーが失敗すると、Chat ビューにエラー表示が出ます。それをクリックして Show Output を選ぶか、MCP: List Servers でサーバーを選んで Show Output を選ぶと、ログを確認できます。

症状対処
サーバーが起動しないワークスペースが制限モード、または信頼の確認を拒否した。ワークスペースを信頼するか MCP: Reset Trust を実行する。
command not found や ENOENTコマンドが VS Code の PATH にない。npx、uvx、python をフルパスで指定する。
Docker ベースのサーバーが固まるdocker run の引数から -d を外す。stdio にはフォアグラウンドのコンテナが必要。
ツールが表示されない・古いMCP: List Servers からサーバーを再起動し、MCP: Reset Cached Tools を実行する。
「Cannot have more than 128 tools per request」Configure Tools でツールの選択を外すか、仮想ツールを有効にする。
チャットでは動くが Copilot ハーネスのセッションでは動かない${input:...} を使っている。.mcp.json に移し、別の方法でシークレットを渡す。
リモートサーバーが 401 を返すサインインしていないか、ヘッダーの値が誤っている。サーバーの出力ログを確認し、OAuth のプロンプトを完了するか、headers に渡したトークンを修正する。

ログで原因が分からない場合は、MCP Inspector でサーバー単体をテストしましょう。

次のステップ

よくある質問

VS Code の MCP 設定ファイルはどこにありますか?

ワークスペースのサーバーは .vscode/mcp.json(servers の下)か、ワークスペースルートのポータブルな .mcp.json(mcpServers の下)に書きます。ユーザーレベルのサーバーはプロファイルの mcp.json にあり、「MCP: Open User Configuration」で開けます。

Claude Desktop や Cursor で設定済みの MCP サーバーを VS Code で使えますか?

使えます。chat.mcp.discovery.enabled 設定を有効にし、Claude Desktop、Cursor、Windsurf、Copilot CLI などのソースを選びます。Copilot CLI の検出はデフォルトでオン、その他はオフです。

VS Code で API キーを直書きせずに MCP サーバーへ渡すには?

.vscode/mcp.json に type が promptString、password が true の input を宣言し、env や headers から入力変数の構文(input: の後に input の id)で参照します。VS Code は一度だけ入力を求め、値を安全に保存します。

VS Code では MCP ツールを同時にいくつ使えますか?

1 回のチャットリクエストで有効にできるツールは最大 128 個です。上限に達したら「Configure Tools」でツールの選択を外すか、github.copilot.chat.virtualTools.threshold 設定で仮想ツールを有効にします。