MCP構成リファレンス
この記事では、VS CodeにおけるMCPサーバー構成ファイルの形式、関連コマンド、および設定のリファレンスを提供します。MCPサーバーの追加および管理に関する詳細については、「MCPサーバーの追加と管理」を参照してください。
構成ファイル
MCPサーバーの構成は、mcp.jsonというJSONファイルに保存されます。このファイルはワークスペース(.vscode/mcp.json)またはユーザープロファイル内に配置できます。VS Codeは、この構成ファイルに対してIntelliSenseを提供します。
構成構造
構成ファイルには主に2つのセクションがあります。
-
"servers": {}: サーバー名と構成をマッピングするオブジェクトです。各キーはサーバー名であり、値はサーバー構成オブジェクトです。サーバーのタイプに応じて、異なるフィールドが必要になります。 -
"inputs": []: APIキーなどの機密情報のための入力変数定義を格納するオプションの配列です。
サーバー構成内では、ワークスペースフォルダー(${workspaceFolder})を参照するなど、定義済みの変数を使用できます。
標準入出力(stdio)サーバー
標準入力および出力ストリームを介して通信するサーバーには、この構成を使用します。これは、ローカルで実行されるMCPサーバーの最も一般的なタイプです。
| フィールド | 必須 | 説明 | 例 |
|---|---|---|---|
type |
はい | サーバー接続タイプ | "stdio" |
command |
はい | サーバー実行ファイルを開始するためのコマンド。システムのPATHに含まれているか、フルパスである必要があります。 | "npx", "node", "python", "docker" |
args |
なし | コマンドに渡される引数の配列 | ["server.py", "--port", "3000"] |
env |
なし | サーバー用環境変数 | {"API_KEY": "${input:api-key}"} |
envFile |
なし | 変数を追加で読み込むための環境ファイルへのパス | "${workspaceFolder}/.env" |
sandboxEnabled |
なし | サンドボックス環境でサーバーを実行します。macOSおよびLinuxでのみサポートされています。 | true |
sandbox |
なし | サンドボックス化されたサーバーのファイルシステムおよびネットワークアクセスルール。sandboxEnabledがtrueの場合のみ適用されます。「サンドボックス構成」を参照してください。 |
{"filesystem": {...}, "network": {...}} |
stdioサーバーでDockerを使用する場合、デタッチオプション(-d)は使用しないでください。VS Codeと通信するには、サーバーをフォアグラウンドで実行する必要があります。
ローカルサーバー構成の例
この例は、npxを使用した基本的なローカルMCPサーバーの最小構成を示しています。
{
"servers": {
"memory": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-memory"]
}
}
}
サンドボックス構成
ローカルで実行されるstdio MCPサーバーに対してサンドボックスを有効にすると、ファイルシステムやネットワークへのアクセスを制限できます。サンドボックス化されたサーバーは、明示的に許可したファイルシステムパスとネットワークドメインにのみアクセスできます。サンドボックス機能はmacOSとLinuxでのみ利用可能です。
サーバーに対してサンドボックスを有効にするには、構成で"sandboxEnabled": trueを設定します。次に、sandboxオブジェクトを使用してファイルシステムとネットワークのアクセスルールを定義します。サンドボックス化されたサーバーが現在のルールで許可されていないアクセスを必要とする場合は、サーバーの出力からエラーメッセージを確認し、それに応じて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ストリーム転送を試行し、HTTPがサポートされていない場合はSSEにフォールバックします。
| フィールド | 必須 | 説明 | 例 |
|---|---|---|---|
type |
はい | サーバー接続タイプ | "http", "sse" |
url |
はい | サーバーのURL | "https://:3000", "https://api.example.com/mcp" |
headers |
なし | 認証または構成のための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" |
説明 |
はい | ユーザーフレンドリーなプロンプトテキスト | "GitHub Personal Access Token" |
password |
なし | 入力内容を隠すかどうか(デフォルト: 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}"
}
}
}
}
開発モード
サーバー構成にdevキーを追加することで、MCPサーバーの開発モードを有効にできます。これは、2つのプロパティを持つオブジェクトです。
watch: ファイルの変更を監視し、MCPサーバーを再起動するためのファイルグロブパターン。debug: MCPサーバーのデバッガーをセットアップできるようにします。現在、VS CodeはNode.jsおよびPythonのMCPサーバーのデバッグをサポートしています。
MCP開発ガイドのMCP開発モードについての詳細をご覧ください。
サーバー名の命名規則
MCPサーバーを定義する際は、サーバー名に対して以下の命名規則に従ってください。
- "uiTesting"や"githubIntegration"のように、キャメルケースを使用する。
- 空白や特殊文字の使用は避ける。
- 競合を避けるため、各サーバーに一意の名前を使用する。
- "github"や"database"のように、サーバーの機能やブランドを反映した説明的な名前を使用する。
コマンド
以下の表は、コマンドパレット(⇧⌘P (Windows, Linux Ctrl+Shift+P))で使用可能なMCP関連コマンドの一覧です。
| コマンド | 説明 |
|---|---|
| MCP: Add Server | ワークスペースまたはユーザープロファイルに新しいMCPサーバーを追加します。 |
| MCP: Browse MCP Servers | 拡張機能ビューでMCPサーバーギャラリーを開きます。 |
| MCP: Browse Resources | MCPサーバーが提供するリソースを参照します。 |
| MCP: Install Server from Manifest | MCPマニフェストファイルからMCPサーバーをインストールします。 |
| MCP: List Servers | 構成済みのすべてのMCPサーバーを一覧表示し、開始、停止、再起動、または出力の表示といった操作を実行します。 |
| MCP: Open Remote User Configuration | リモート環境用のmcp.jsonファイルを開きます。 |
| MCP: Open User Configuration | ユーザープロファイル内のmcp.jsonファイルを開きます。 |
| MCP: Open Workspace Folder MCP Configuration | ワークスペース内の.vscode/mcp.jsonファイルを開きます。 |
| MCP: Reset Cached Tools | MCPサーバーのキャッシュされたツールリストをクリアします。サーバーのツールが変更された場合に使用してください。 |
| MCP: Reset Trust | MCPサーバーに対する信頼の判断をリセットし、次回起動時に再確認を求めます。 |
| MCP: Show Installed Servers | インストール済みの全MCPサーバーのリストを表示します。 |
設定
VS Code AI設定の完全なリストについては、「AI設定リファレンス」を参照してください。以下の設定はMCPサーバーに固有のものです。
| 設定 | 説明 |
|---|---|
| chat.mcp.access This setting is managed at the organization level. Contact your administrator to change it. | VS Codeで使用できるMCPサーバーを管理します。 |
| chat.mcp.discovery.enabled | 他のアプリケーションからのMCPサーバー構成の自動検出を構成します。 |
| chat.mcp.autostart (実験的) | 構成の変更が検出されたときに、MCPサーバーを自動的に起動します。 |
| chat.mcp.serverSampling | サンプリング(バックグラウンドでのリクエスト作成)のために、どのモデルをMCPサーバーに公開するかを構成します。 |
| chat.mcp.apps.enabled (実験的) | MCPサーバーによって提供されるリッチなユーザーインターフェイスである、MCPアプリを有効または無効にします。 |