MCP設定リファレンス

この記事では、MCPサーバー設定ファイルのフォーマット、関連コマンド、およびVS Codeにおける設定についてのリファレンスを提供します。MCPサーバーの追加および管理に関する詳細については、MCPサーバーの追加と管理を参照してください。

設定ファイル

MCPサーバーの設定は、JSONファイルであるmcp.jsonに保存されます。このファイルは、ワークスペース(.vscode/mcp.json)またはユーザープロファイル内に配置できます。VS Codeは、設定ファイルに対するIntelliSenseを提供します。

設定の構造

設定ファイルには主に3つのセクションがあります

  • "servers": {}: サーバー名とそれらの設定をマッピングするオブジェクトです。各キーはサーバー名で、値はサーバーの設定オブジェクトです。サーバーのタイプに応じて、異なるフィールドが必要になります。

  • "inputs": []: APIキーなどの機密情報用の入力変数定義のオプション配列です。

  • "sandbox": {}: サンドボックス化されたサーバーのファイルシステムおよびネットワークのアクセスルールを定義するオプションオブジェクトです。サンドボックス設定を参照してください。macOSおよびLinuxにのみ適用されます。

サーバー設定では、定義済みの変数を使用して、たとえばワークスペースフォルダ(${workspaceFolder})を参照することができます。

標準入出力(stdio)サーバー

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

フィールド 必須 説明
type はい サーバーの接続タイプ "stdio"
command はい サーバーの実行ファイルを起動するコマンド。システムのパス(環境変数PATH)に存在するか、フルパスを含める必要があります。 "npx", "node", "python", "docker"
args なし コマンドに渡される引数の配列 ["server.py", "--port", "3000"]
cwd なし サーバーコマンドの作業ディレクトリ。ワークスペース内で実行される場合は、デフォルトでワークスペースフォルダになります。 "${workspaceFolder}"
env なし サーバーの環境変数。値は文字列、数値、またはnullにすることができます。 {"API_KEY": "${input:api-key}"}
envFile なし さらに変数を読み込むための環境ファイルのパス "${workspaceFolder}/.env"
dev なし ファイルの変更を監視し、サーバーをデバッグするための開発モード設定。開発モードを参照してください。 {"watch": "src/**/*.ts"}
sandboxEnabled なし サンドボックス環境でサーバーを実行します。macOSおよびLinuxでのみサポートされています。 true
注意

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

ローカルサーバー設定の例

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

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

サンドボックス設定

ローカルで実行されているstdio MCPサーバーのサンドボックス化を有効にして、ファイルシステムやネットワークへのアクセスを制限できます。サンドボックス化されたサーバーは、明示的に許可したファイルシステムのパスとネットワークドメインにのみアクセスできます。サンドボックス化はmacOSおよびLinuxでのみ利用可能です。

サーバーのサンドボックス化を有効にするには、設定で "sandboxEnabled": true を指定します。次に、トップレベルの sandbox オブジェクトを定義し、ファイルシステムおよびネットワークのアクセスルールを指定します。sandbox オブジェクトは serversinputs と同階層にあり、そのルールはすべてのサンドボックス化されたサーバーに適用されます。サンドボックス化されたサーバーが現在のルールで許可されていないアクセスを必要とする場合は、サーバーの出力でエラーメッセージを確認し、必要に応じて sandbox 設定を更新してください。

注意

サンドボックス化が有効な場合、サーバーは制御された環境で実行されるため、ツールの確認は自動的に承認されます。

sandbox オブジェクトは以下のプロパティをサポートしています

プロパティ タイプ 説明
filesystem.allowWrite string[] サーバーの書き込みが許可されているファイルパス。
filesystem.denyRead string[] サーバーの読み取りが禁止されているファイルパス。
filesystem.denyWrite string[] サーバーの書き込みが禁止されているファイルパス。
network.allowedDomains string[] サーバーのアクセスが許可されているドメイン。*.example.com のようなワイルドカードがサポートされています。
network.deniedDomains string[] サーバーのアクセスが禁止されているドメイン。

ファイルシステムのパスの値には、${workspaceFolder} などの 定義済みの変数 を使用できます。

サンドボックス設定の例

この例では、サンドボックス化を有効にし、ワークスペースへの書き込みアクセスを許可し、.ssh ディレクトリへの読み取りアクセスを禁止し、特定のドメインへのネットワークアクセスを許可します。

{
  "servers": {
    "myServer": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@example/mcp-server"],
      "sandboxEnabled": true
    }
  },
  "sandbox": {
    "filesystem": {
      "allowWrite": ["${workspaceFolder}"],
      "denyRead": ["${userHome}/.ssh"]
    },
    "network": {
      "allowedDomains": ["api.example.com", "*.cdn.example.com"]
    }
  }
}

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

HTTPを介して通信するサーバーには、この設定を使用します。VS CodeはまずHTTP Streamトランスポートを試し、HTTPがサポートされていない場合はSSEにフォールバックします。

フィールド 必須 説明
type はい サーバーの接続タイプ "http", "sse"
url はい サーバーのURL "https://:3000", "https://api.example.com/mcp"
headers なし 認証または設定用のHTTPヘッダー {"Authorization": "Bearer ${input:api-token}"}
oauth なし サーバーで認証するためのOAuth設定 {"clientId": "example-client-id"}

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

oauth オブジェクトは以下のプロパティをサポートしています

プロパティ タイプ 必須 説明
clientId string はい サーバーとの認証時に使用するOAuthクライアントID。
enterpriseManaged boolean なし (プレビュー)OAuth Identity Assertion Authorization Grant(ID-JAG)を使用し、mcp.enterpriseManagedAuth.idp 設定で構成されたエンタープライズシングルサインオン(SSO)プロバイダーを介して認証します。一度サインインすれば、以降のエンタープライズ管理サーバーはサイレントに接続されます。デフォルトは false です。
注意

oauth が設定されている場合、VS Codeは自動的にOAuthフローを処理します。サーバーへの最初の接続時に、認可のためのブラウザウィンドウが開きます。

リモートサーバー設定の例

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

{
  "servers": {
    "context7": {
      "type": "http",
      "url": "https://mcp.context7.com/mcp"
    }
  }
}
OAuthを使用したHTTPサーバーの例

この例は、認証にOAuthを使用するMCPサーバーの設定を示しています。初回使用時、VS CodeはOAuthフローを完了するためにブラウザウィンドウを開きます。

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

機密データ用の入力変数

入力変数を使用すると、設定値のプレースホルダーを定義できるため、APIキーやパスワードなどの機密情報をサーバー設定に直接ハードコードする必要がなくなります。

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

各入力変数には、VS Codeが値の入力を促す方法を決定する type があります。以下の入力タイプがサポートされています

  • promptString: 入力ボックスを開き、ユーザーにフリーテキストの入力を求めます。
  • pickString: ユーザーが選択できるオプションのリストを表示します。
  • command: コマンドを実行し、その結果を入力値として使用します。

共通のプロパティ

フィールド 必須 説明
type はい 入力プロンプトのタイプ: promptStringpickString、または command "promptString"
id はい サーバー設定で参照する一意の識別子 "api-key", "database-url"

promptString のプロパティ

フィールド 必須 説明
説明 はい ユーザーにわかりやすいプロンプトテキスト "GitHub Personal Access Token"
default なし 入力のデフォルト値 "https://"
password なし 入力された内容を非表示にする(デフォルト: false) APIキーやパスワードの場合は true

pickString のプロパティ

フィールド 必須 説明
説明 はい ユーザーにわかりやすいプロンプトテキスト "Select an environment"
options はい 選択肢となるオプションの配列。各オプションは文字列、または labelvalue プロパティを持つオブジェクトです。 ["dev", "prod"]
default なし 入力のデフォルト値 "dev"

command のプロパティ

フィールド 必須 説明
command はい 入力値を取得するために実行するコマンドID "myExtension.getApiKey"
args なし コマンドに渡される引数。文字列、配列、またはオブジェクトにすることができます。 { "scope": "global" }
入力変数を使用したサーバー設定の例

この例では、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}"
      }
    }
  }
}

開発モード

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

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

MCPデベロッパーガイドの MCP開発モード についての詳細をご覧ください。

サーバーの名前付け規則

MCPサーバーを定義する際は、サーバー名について以下の名前付け規則に従ってください

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

コマンド

次の表は、コマンドパレット(⇧⌘P (Windows, Linux Ctrl+Shift+P))で利用可能なMCP関連のコマンドの一覧です。

コマンド 説明
MCP: サーバーの追加 ワークスペースまたはユーザープロファイルに新しいMCPサーバーを追加します。
MCP: MCPサーバーを参照 拡張機能ビューでMCPサーバーギャラリーを開きます。
MCP: リソースを参照 MCPサーバーによって提供されるリソースを参照します。
MCP: マニフェストからサーバーをインストール MCPマニフェストファイルからMCPサーバーをインストールします。
MCP: サーバーを一覧表示 設定されているすべてのMCPサーバーを一覧表示し、起動、停止、再起動、出力の表示などのアクションを実行します。
MCP: リモートユーザー設定を開く リモート環境用の mcp.json ファイルを開きます。
MCP: ユーザー設定を開く ユーザープロファイル内の mcp.json ファイルを開きます。
MCP: ワークスペースフォルダーのMCP設定を開く ワークスペース内の .vscode/mcp.json ファイルを開きます。
MCP: キャッシュされたツールをリセット MCPサーバーのキャッシュされたツール一覧をクリアします。サーバーのツールが変更された場合に使用します。
MCP: 信頼関係をリセット MCPサーバーの信頼決定をリセットし、次回の起動時に再確認を要求します。
MCP: インストール済みサーバーを表示 インストールされているすべてのMCPサーバーの一覧を表示します。

設定

VS CodeのAI設定の完全なリストについては、AI設定リファレンスを参照してください。以下の設定は、MCPサーバーに固有のものです。

設定 説明
chat.mcp.access VS Code で開く VS Code Insiders で開く この設定は組織レベルで管理されています。変更するには管理者にお問い合わせください。 VS Codeで使用できるMCPサーバーを管理します。
chat.mcp.discovery.enabled Open in VS Code Open in VS Code Insiders 他のアプリケーションからのMCPサーバー設定の自動検出を構成します。
chat.mcp.autostart VS Code で開く VS Code Insiders で開く (実験的) 設定の変更が検出されたときにMCPサーバーを自動的に起動します。
chat.mcp.serverSampling Open in VS Code Open in VS Code Insiders サンプリング(バックグラウンドでのリクエスト送信)用にどのモデルをMCPサーバーに公開するかを構成します。
chat.mcp.apps.enabled VS Code で開く VS Code Insiders で開く (実験的) MCPサーバーによって提供されるリッチなユーザーインターフェースである「MCPアプリ」を有効または無効にします。
© . This site is unofficial and not affiliated with Microsoft.