に参加して、VS Code の AI 支援開発について学びましょう。

VS Code で MCP サーバーを使用する

モデルコンテキストプロトコル (MCP) は、AI モデルが統一されたインターフェースを介して外部ツールやサービスを使用できるようにするオープン標準です。VS Code では、MCP サーバーはファイル操作、データベース、外部 API との連携などのタスク用のツールを追加します。

この記事では、Visual Studio Code で MCP サーバーを設定し、エージェントモードでツールを使用する方法を説明します。

MCP の仕組み

MCP はクライアントサーバーアーキテクチャに従います

  • MCP クライアント (VS Code など) は MCP サーバーに接続し、AI モデルに代わってアクションを要求します
  • MCP サーバー は、明確に定義されたインターフェースを通じて特定の機能を提供する 1 つ以上のツールを提供します
  • モデルコンテキストプロトコル は、ツール検出、呼び出し、応答処理を含む、クライアントとサーバー間の通信のメッセージ形式を定義します

たとえば、ファイルシステム MCP サーバーは、ファイルの読み取り、書き込み、検索、ディレクトリの検索などのツールを提供する場合があります。GitHub の MCP サーバーは、リポジトリのリスト表示、プルリクエストの作成、問題の管理などのツールを提供します。MCP サーバーはマシン上でローカルに実行することも、リモートでホストすることもでき、VS Code は両方の構成をサポートしています。

このインタラクションを標準化することで、MCP は各 AI モデルと各ツールの間のカスタム統合の必要性を排除します。これにより、ワークスペースに新しい MCP サーバーを追加するだけで、AI アシスタントの機能を拡張できます。モデルコンテキストプロトコルの仕様について詳しくはこちらをご覧ください。

VS Code でサポートされている MCP 機能

VS Code は以下の MCP 機能をサポートしています

  • トランスポート:

    • ローカル標準入出力 (stdio)
    • ストリーミング HTTP (http)
    • サーバーセントイベント (sse) - レガシーサポート。
  • 機能:

    • ツール
    • プロンプト
    • リソース
    • 引き出し
    • サンプリング
    • 認証
    • サーバー指示
    • ルート

VS Code での MCP サポートは、VS Code 1.102 以降で一般に利用可能です。

前提条件

VS Code で MCP サポートを有効にする

chat.mcp.access 設定は、VS Code にインストールおよび実行できる MCP サーバーを制御します

  • all (デフォルト): すべての MCP サーバーが許可されます
  • registry: レジストリからの MCP サーバーのみが許可されます
  • none: MCP サーバーは許可されません

MCP サポートを一元的に管理する

組織内で MCP サポートを一元的に管理するには、2 つのオプションがあります

MCP サーバーを追加する

注意

MCP サーバーは、マシン上で任意のコードを実行できます。信頼できるソースからのみサーバーを追加し、起動する前にパブリッシャーとサーバー構成を確認してください。初めて MCP サーバーを起動するときに、VS Code はMCP サーバーを信頼することを確認するプロンプトを表示します。VS Code で AI を使用する際の影響を理解するには、セキュリティドキュメントをお読みください。

VS Code で MCP サーバーを追加するには、複数のオプションがあります

拡張機能ビューから MCP サーバーをインストールする

拡張機能ビューには、MCP サーバー専用のセクションがあります。VS Code は、GitHub MCP サーバーレジストリから MCP サーバーのリストを取得します。

拡張機能ビューから MCP サーバーをインストールするには

  1. chat.mcp.gallery.enabled 設定を有効にして、拡張機能ビューに MCP サーバーを表示します。

  2. 拡張機能ビュー (⇧⌘X (Windows、Linux Ctrl+Shift+X)) を開き、検索フィールドに @mcp と入力して、MCP サーバーのリストを表示します。

    または、コマンドパレットから MCP: Browse Servers コマンドを実行します。

    VS Code は、GitHub MCP サーバーレジストリから MCP サーバーのリストを取得します。

  3. オプションで、リストから MCP サーバーを選択して詳細を表示します。

  4. インストール を選択して、MCP サーバーを追加します。

    MCP サーバーはユーザーのプロファイルにインストールされ、そのプロファイルのどのワークスペースでも使用できます。

MCP サーバーをワークスペースの `mcp.json` ファイルに追加する

特定のプロジェクトの MCP サーバーを構成する場合は、サーバー構成をワークスペースの .vscode/mcp.json ファイルに追加できます。これにより、同じ MCP サーバー構成をプロジェクトチームと共有できます。

重要

入力変数または環境ファイルを使用することで、API キーやその他の資格情報などの機密情報をハードコーディングしないようにしてください。

ワークスペースに MCP サーバーを追加するには

  1. ワークスペースに .vscode/mcp.json ファイルを作成します。

  2. エディターで サーバーを追加 ボタンを選択して、新しいサーバーのテンプレートを追加します。VS Code は、MCP サーバー構成ファイルの IntelliSense を提供します。

    次の例は、GitHub リモート MCP サーバーを構成する方法を示しています。VS Code の MCP 構成形式について詳しくはこちらをご覧ください。

    {
      "servers": {
        "github-mcp": {
          "type": "http",
          "url": "https://api.githubcopilot.com/mcp"
        }
      }
    }
    
  3. または、コマンドパレットから MCP: Add Server コマンドを実行し、追加する MCP サーバーの種類を選択して、サーバー情報を提供します。次に、ワークスペース を選択して、サーバーをワークスペースの .vscode/mcp.json ファイルに追加します。

MCP サーバーをユーザー設定に追加する

すべてのワークスペースの MCP サーバーを構成するには、サーバー構成をユーザーのプロファイルに追加できます。これにより、複数のプロジェクトで同じサーバー構成を再利用できます。

ユーザー設定に MCP サーバーを追加するには

  • コマンドパレットから MCP: Add Server コマンドを実行し、サーバー情報を提供し、グローバル を選択してサーバー構成をプロファイルに追加します。

  • または、MCP: Open User Configuration コマンドを実行すると、ユーザープロファイルの mcp.json ファイルが開きます。その後、ファイルにサーバー構成を手動で追加できます。

複数の VS Code プロファイルを使用する場合、これにより、アクティブなプロファイルに基づいて異なる MCP サーバー構成を切り替えることができます。たとえば、Playwright MCP サーバーは Web 開発プロファイルで構成できますが、Python 開発プロファイルでは構成できません。

MCP サーバーは、構成されている場所で実行されます。リモートに接続していて、サーバーをリモートマシンで実行したい場合は、リモート設定 (MCP: Open Remote User Configuration) またはワークスペースの設定で定義する必要があります。ユーザー設定で定義された MCP サーバーは常にローカルで実行されます。

開発コンテナに MCP サーバーを追加する

MCP サーバーは、devcontainer.json ファイルを通じて Dev Containers で構成できます。これにより、コンテナ化された開発環境の一部として MCP サーバー構成を含めることができます。

Dev Container で MCP サーバーを構成するには、サーバー構成を customizations.vscode.mcp セクションに追加します

{
  "image": "mcr.microsoft.com/devcontainers/typescript-node:latest",
  "customizations": {
    "vscode": {
      "mcp": {
        "servers": {
          "playwright": {
            "command": "npx",
            "args": ["-y", "@microsoft/mcp-server-playwright"]
          }
        }
      }
    }
  }
}

Dev Container が作成されると、VS Code は MCP サーバー構成を自動的にリモート mcp.json ファイルに書き込み、コンテナ化された開発環境で利用できるようにします。

MCP サーバーを自動的に検出する

VS Code は、Claude Desktop などの他のアプリケーションから MCP サーバー構成を自動的に検出し、再利用できます。

chat.mcp.discovery.enabled 設定で自動検出を構成します。これらのツールから MCP サーバー構成を検出するツールを 1 つ以上選択します。

コマンドラインから MCP サーバーをインストールする

VS Code コマンドラインインターフェースを使用して、MCP サーバーをユーザープロファイルまたはワークスペースに追加することもできます。

MCP サーバーをユーザープロファイルに追加するには、--add-mcp VS Code コマンドラインオプションを使用し、{\"name\":\"server-name\",\"command\":...} の形式で JSON サーバー構成を提供します。

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

エージェントモードで MCP ツールを使用する

MCP サーバーを追加したら、エージェントモードで提供されるツールを使用できます。

エージェントモードで MCP ツールを使用するには

  1. チャット ビュー (⌃⌘I (Windows、Linux Ctrl+Alt+I)) を開き、ドロップダウンから エージェント モードを選択します。

    Agent mode dropdown option

  2. ツール ボタンを選択して、利用可能なツールのリストを表示します。

    オプションで、使用したいツールを選択または選択解除します。検索ボックスに文字を入力してツールを検索できます。

    MCP tools list

    重要

    チャットリクエストでは、一度に最大 128 個のツールを有効にできます。128 個を超えるツールが選択されている場合は、ツールピッカーで一部のツールの選択を解除してツールの数を減らすか、仮想ツールが有効になっていることを確認してください (github.copilot.chat.virtualTools.threshold)。

  3. チャット入力ボックスにプロンプトを入力し、必要に応じてツールが自動的に呼び出される方法に注目してください。たとえば、GitHub MCP サーバーをインストールし、「GitHub の問題を一覧表示して」と尋ねます。

    Screenshot of the Chat view, showing an MCP tool invocation in agent mode.

    ヒント

    プロンプトで # とその後にツール名を入力することで、ツールを直接参照することもできます。これは、すべてのチャットモード (質問、編集、エージェントモード) で行うことができます。

  4. プロンプトが表示されたら、確認する前にツールの呼び出しの詳細を慎重に確認してください。

    注意

    MCP ツールは、マシン上でローカルに実行され、ファイルやデータを変更するアクションを実行する可能性があります。ツールの操作の影響を常に理解していることを確認してください。

    続行 ボタンのドロップダウンオプションを使用して、現在のセッション、ワークスペース、または将来のすべての呼び出しに対して特定のツールを自動的に確認します。

    MCP Tool Confirmation

  5. オプションで、ツールを実行する前にツールの入力パラメータを確認および編集します。

    MCP Tool Input Parameters

キャッシュされた MCP ツールをクリアする

VS Code が MCP サーバーを初めて起動すると、サーバーの機能とツールが検出されます。その後、エージェントモードでこれらのツールを使用できます。VS Code は、MCP サーバーのツールリストをキャッシュします。キャッシュされたツールをクリアするには、コマンドパレットで MCP: Reset Cached Tools コマンドを使用します。

MCP リソースを使用する

MCP サーバーは、チャットプロンプトでコンテキストとして使用できるリソースに直接アクセスできます。たとえば、ファイルシステム MCP サーバーはファイルやディレクトリにアクセスでき、データベース MCP サーバーはデータベーステーブルにアクセスできる場合があります。

MCP サーバーからチャットプロンプトにリソースを追加するには

  1. チャットビューで、コンテキストを追加 > MCP リソース を選択します。

  2. リストからリソースタイプを選択し、オプションのリソース入力パラメータを指定します。

    Screenshot of the MCP resource Quick Pick, showing resource types provided by the GitHub MCP server.

MCP サーバーで利用可能なリソースのリストを表示するには、MCP: Browse Resources コマンドを使用するか、MCP: List Servers > Browse Resources コマンドを使用して特定のサーバーのリソースを表示します。

MCP ツールは、応答の一部としてリソースを返すことができます。これらのリソースは、保存 を選択するか、リソースをエクスプローラービューにドラッグアンドドロップすることで、ワークスペースで表示または保存できます。

MCP プロンプトを使用する

MCP サーバーは、スラッシュコマンドでチャットで呼び出すことができる一般的なタスクの事前構成済みプロンプトを提供できます。チャットで MCP プロンプトを呼び出すには、チャット入力フィールドに / を入力し、その後に mcp.servername.promptname の形式でプロンプト名を入力します。

オプションで、MCP プロンプトは追加の入力パラメータを要求する場合があります。

Screenshot of the Chat view, showing an MCP prompt invocation and a dialog asking for additional input parameters.

MCP サーバーを追加すると、ツールのリストが長くなる可能性があります。これにより、個々のツールの管理が面倒になる場合があります。たとえば、再利用可能なプロンプトファイルカスタムチャットモードを定義する場合などです。

ツールを管理しやすくするために、関連するツールをツールセットにグループ化できます。ツールセットは、単一のエンティティとして参照できる個々のツールのコレクションです。ツールセットには、組み込みツール、MCP ツール、または拡張機能によって提供されるツールを含めることができます。

VS Code でツールセットを作成して使用する方法について詳しくはこちらをご覧ください。

インストールされた MCP サーバーを管理する

インストールされた MCP サーバーに対して、サーバーの起動または停止、サーバーログの表示、サーバーのアンインストールなど、さまざまなアクションを実行できます。

MCP サーバーに対してこれらのアクションを実行するには、次のいずれかのオプションを使用します

  • MCP SERVERS - INSTALLED セクションのサーバーを右クリックするか、歯車アイコンを選択します

    Screenshot showing the MCP servers in the Extensions view.

  • mcp.json 構成ファイルを開き、エディター (コードレンズ) でインラインアクションにアクセスします

    MCP server configuration with lenses to manage server.

    MCP: Open User Configuration または MCP: Open Workspace Folder Configuration コマンドを使用して、MCP サーバー構成にアクセスします。

  • コマンドパレットから MCP: List Servers コマンドを実行し、サーバーを選択します

    Screenshot showing the actions for an MCP server in the Command Palette.

MCP サーバーを自動的に起動する

MCP サーバーを追加または構成を変更すると、VS Code はサーバーが提供するツールを検出するためにサーバーを (再) 起動する必要があります。

chat.mcp.autostart 設定 (実験的) を使用して、構成変更が検出されたときに VS Code が MCP サーバーを自動的に再起動するように構成できます。

または、チャットビューから、またはMCP サーバーリストから再起動アクションを選択して、MCP サーバーを手動で再起動します。

Screenshot showing the Refresh button in the Chat view.

MCP サーバーを見つける

MCP は比較的新しい標準であり、エコシステムは急速に進化しています。より多くの開発者が MCP を採用するにつれて、プロジェクトとの統合に利用できるサーバーとツールの数が増えることが予想されます。

GitHub MCP サーバーレジストリは素晴らしい出発点です。VS Code の拡張機能ビューから直接レジストリにアクセスできます。

MCP の公式サーバーリポジトリには、MCP の多機能性を示す公式サーバーとコミュニティ貢献サーバーが提供されています。ファイルシステム操作、データベースインタラクション、Web サービスなど、さまざまな機能のサーバーを探索できます。

VS Code 拡張機能は、MCP サーバーを貢献し、拡張機能のインストールプロセスの一部として構成することもできます。Visual Studio Marketplace で MCP サーバーサポートを提供する拡張機能を確認してください。

MCP サーバーの信頼

MCP サーバーは、マシン上で任意のコードを実行できます。信頼できるソースからのみサーバーを追加し、起動する前にパブリッシャーとサーバー構成を確認してください。VS Code で AI を使用する際の影響を理解するには、セキュリティドキュメントをお読みください。

ワークスペースに MCP サーバーを追加したり、構成を変更したりするときは、起動する前にサーバーとその機能を信頼することを確認する必要があります。VS Code は、サーバーを初めて起動するときに、サーバーを信頼することを確認するダイアログを表示します。ダイアログの MCP サーバーへのリンクを選択して、別のウィンドウで MCP サーバー構成を確認します。

Screenshot showing the MCP server trust prompt.

サーバーを信頼しない場合、サーバーは起動せず、チャットリクエストはサーバーが提供するツールを使用せずに続行されます。

コマンドパレットから MCP: Reset Trust コマンドを実行して、MCP サーバーの信頼をリセットできます。

MCP サーバーを mcp.json ファイルから直接起動する場合、サーバー構成を信頼するかどうか尋ねられません。

デバイス間で MCP サーバーを同期する

設定同期を有効にすると、MCP サーバー構成を含む設定と構成をデバイス間で同期できます。これにより、一貫した開発環境を維持し、すべてのデバイスで同じ MCP サーバーにアクセスできます。

設定同期で MCP サーバーの同期を有効にするには、コマンドパレットから 設定同期: 構成 コマンドを実行し、同期する構成のリストに MCP サーバー が含まれていることを確認します。

構成形式

MCP サーバーは、サーバー定義と機密データ用のオプションの入力変数の 2 つの主要セクションを定義する JSON ファイル (mcp.json) を使用して構成されます。

MCP サーバーは、異なるトランスポート方法を使用して接続できます。サーバーがどのように通信するかをに基づいて、適切な構成を選択してください。

構成構造

構成ファイルには 2 つの主要セクションがあります

  • "servers": {} - MCP サーバーとその構成のリストが含まれます
  • "inputs": [] - API キーなどの機密情報のオプションのプレースホルダー

サーバー構成で事前定義変数を使用できます。たとえば、ワークスペースフォルダー (${workspaceFolder}) を参照する場合などです。

標準 I/O (stdio) サーバー

標準入力および出力ストリームを介して通信するサーバーには、この構成を使用します。これは、ローカルで実行される MCP サーバーの最も一般的なタイプです。

フィールド 必須 説明
type はい サーバー接続タイプ "stdio"
コマンド はい サーバー実行可能ファイルを開始するコマンド。システムパスで使用できるか、完全なパスが含まれている必要があります。 "npx", "node", "python", "docker"
args いいえ コマンドに渡される引数の配列 ["server.py", "--port", "3000"]
環境 いいえ サーバーの環境変数 {"API_KEY": "${input:api-key}"}
envFile いいえ 追加の変数をロードするための環境ファイルへのパス "${workspaceFolder}/.env"

stdio サーバーで Docker を使用する場合、デタッチオプション (-d) は使用しないでください。サーバーは VS Code と通信するためにフォアグラウンドで実行する必要があります。

ローカルサーバー構成の例

この例は、npx を使用した基本的なローカル MCP サーバーの最小構成を示しています

{
  "servers": {
    "memory": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-memory"]
    }
  }
}

HTTP および Server-Sent Events (SSE) サーバー

HTTP 経由で通信するサーバーには、この構成を使用します。VS Code は最初に HTTP ストリームトランスポートを試行し、HTTP がサポートされていない場合は SSE にフォールバックします。

フィールド 必須 説明
type はい サーバー接続タイプ "http", "sse"
URL はい サーバーの URL "https://:3000", "https://api.example.com/mcp"
ヘッダー いいえ 認証または構成のための HTTP ヘッダー {"Authorization": "Bearer ${input:api-token}"}

ネットワーク経由で利用可能なサーバーに加えて、VS Code は、Unix ソケットまたは Windows 名前付きパイプで HTTP トラフィックをリッスンしている MCP サーバーに接続できます。その場合、ソケットまたはパイプパスを unix:///path/to/server.sock または Windows では pipe:///pipe/named-pipe の形式で指定します。URL フラグメントを使用してサブパスを指定することもできます (例: unix:///tmp/server.sock#/mcp/subpath)。

リモートサーバー構成の例

この例は、認証なしのリモート MCP サーバーの最小構成を示しています

{
  "servers": {
    "context7": {
      "type": "http",
      "url": "https://mcp.context7.com/mcp"
    }
  }
}

機密データ用の入力変数

入力変数を使用すると、構成値のプレースホルダーを定義でき、API キーやパスワードなどの機密情報をサーバー構成に直接ハードコーディングする必要がありません。

${input:variable-id} を使用して入力変数を参照すると、VS Code はサーバーが初めて起動するときに値の入力を求めます。値はその後、以降の使用のために安全に保存されます。VS Code の入力変数について詳しくはこちらをご覧ください。

入力変数のプロパティ

フィールド 必須 説明
type はい 入力プロンプトのタイプ "promptString"
id はい サーバー構成で参照するための一意の識別子 "api-key", "database-url"
description はい ユーザーフレンドリーなプロンプトテキスト "GitHub Personal Access Token"
パスワード いいえ 入力された入力を非表示にする (デフォルト: false) API キーとパスワードの場合は true
入力変数を使用したサーバー構成の例

この例では、API キーを必要とするローカルサーバーを構成します

{
  "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}"
      }
    }
  }
}

サーバーの命名規則

MCP サーバーを定義するときは、サーバー名に次の命名規則に従ってください

  • サーバー名には「uiTesting」や「githubIntegration」のようにキャメルケースを使用します
  • 空白や特殊文字の使用は避けてください
  • 競合を避けるために、各サーバーに一意の名前を使用してください
  • 「github」や「database」のように、サーバーの機能やブランドを反映した説明的な名前を使用してください

MCP サーバーのトラブルシューティングとデバッグ

MCP 出力ログ

VS Code が MCP サーバーで問題に遭遇すると、チャットビューにエラーインジケーターが表示されます。

MCP Server Error

チャットビューのエラー通知を選択し、出力表示 オプションを選択してサーバーログを表示します。または、コマンドパレットから MCP: List Servers を実行し、サーバーを選択して、出力表示 を選択します。

MCP Server Error Output

MCP サーバーをデバッグする

MCP サーバー構成に dev キーを追加することで、MCP サーバーの開発モードを有効にできます。これは 2 つのプロパティを持つオブジェクトです

  • watch: ファイル変更を監視するためのファイルグロブパターン。MCP サーバーを再起動します。
  • debug: MCP サーバーでデバッガーをセットアップできます。現在、VS Code は Node.js および Python MCP サーバーのデバッグをサポートしています。

MCP Dev Guide のMCP 開発モードについて詳しくはこちらをご覧ください。

よくある質問

どの MCP ツールを使用するかを制御できますか?

  • エージェントモードのときにチャットビューで ツール ボタンを選択し、必要に応じて特定のツールをオン/オフに切り替えます。
  • コンテキストを追加 ボタンを使用するか、# を入力して、特定のツールをプロンプトに追加します。
  • より高度な制御については、.github/copilot-instructions.md を使用してツールの使用を微調整できます。

Docker を使用しているときに MCP サーバーが起動しない

コマンド引数が正しいこと、およびコンテナがデタッチモード (-d オプション) で実行されていないことを確認してください。エラーメッセージがないか MCP サーバーの出力を確認することもできます (トラブルシューティングを参照)。

「リクエストあたり 128 個を超えるツールを使用することはできません。」というエラーが表示されます。

モデルの制約により、チャットリクエストでは一度に最大 128 個のツールしか有効にできません。128 個を超えるツールが選択されている場合は、チャットビューのツールピッカーで一部のツールまたはサーバー全体の選択を解除してツールの数を減らすか、仮想ツールが有効になっていることを確認してください (github.copilot.chat.virtualTools.threshold)。

Screenshot showing the Chat view, highlighting the Tools icon in the chat input and showing the tools Quick Pick where you can select which tools are active.

© . This site is unofficial and not affiliated with Microsoft.