モデル コンテキスト プロトコル (MCP) は、AI モデルが統合インターフェイスを介して外部ツールやサービスと対話できるようにするオープン標準です。 Visual Studio では、MCP サポートにより、MCP 互換サーバーをエージェント コーディング ワークフローに接続できるため、GitHub Copilot のエージェント モードが強化されます。 この記事では、Visual Studio で MCP サーバーを設定し、エージェント モードでツールを使用する方法について説明します。
[前提条件]
MCP と Visual Studio は GitHub Copilot のエージェントをどのように拡張しますか?
- Visual Studio などの MCP クライアントが MCP サーバーに接続し、AI モデルに代わってアクションを要求する
- MCP サーバーには、明確に定義されたインターフェイスを介して特定の機能を公開する 1 つ以上のツールが用意されています。
- モデル コンテキスト プロトコル (MCP) は、ツールの検出、呼び出し、応答処理など、クライアントとサーバー間の通信のメッセージ形式を定義します
たとえば、ファイル システム MCP サーバーには、ファイルとディレクトリの読み取り、書き込み、または検索のためのツールが用意されている場合があります。 GitHub の公式 MCP サーバー には、リポジトリの一覧表示、プル要求の作成、問題の管理を行うツールが用意されています。 MCP サーバーは、コンピューター上でローカルに実行することも、リモートでホストすることもできます。Visual Studio では両方の構成がサポートされています。
この相互作用を標準化することで、MCP は各 AI モデルと各ツール間のカスタム統合の必要性を排除します。 これにより、新しい MCP サーバーをワークスペースに追加するだけで、AI アシスタントの機能を拡張できます。 モデル コンテキスト プロトコルの仕様の詳細を確認します。
GitHub MCP サーバーの構成例
- 新しいファイル (
<SOLUTIONDIR>\.mcp.json
) を作成します。 Visual Studio を使用してこのファイルを編集し、その JSON スキーマが自動的に適用されるようにすることをお勧めします。 - 次の内容を
.mcp.json
ファイルに貼り付けます
{
"inputs": [
{
"id": "github_pat",
"description": "GitHub personal access token",
"type": "promptString",
"password": true
}
],
"servers": {
"github": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GITHUB_PERSONAL_ACCESS_TOKEN",
"ghcr.io/github/github-mcp-server"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_pat}"
}
}
}
}
GitHub アカウントの個人用アクセス トークンを取得する
Visual Studio で、GitHub Copilot チャット ウィンドウの
Ask
ドロップダウンをクリックし、Agent
を選択します。メッセージが表示されたら、個人用アクセス トークンをダイアログに貼り付けます。
使用するツールを選択します(例:
list_issues
サンプル プロンプトを試してください。
list issues assigned to me on GitHub
Copilot は、MCP サーバーによって利用可能になったツールを使用するためのアクセス許可を求め、続行するスコープで [許可 ] を選択します。
サポートされている MCP 機能
Visual Studio では、MCP サーバー トランスポート用のローカル標準入出力 (stdio
)、サーバー送信イベント (sse
)、およびストリーミング可能な HTTP (http
) がサポートされています。 現在、3 つの プリミティブ (ツール、プロンプト、リソース) のうち、サーバーは Copilot のエージェント モードにのみツールを提供できます。 リスト変更イベントを使用して、ツールのリストと説明を動的に更新できます。 Visual Studio では、 roots
(仕様) を使用して、現在のソリューション フォルダーをサーバーに提供します。
MCP サーバーの検索
MCP の 公式サーバー リポジトリ は、MCP の汎用性を示す、参照サーバー、公式サーバー、コミュニティ提供サーバーの優れた出発点です。 ファイル システム操作、データベース操作、Web サービスなど、さまざまな機能についてサーバーを調べることができます。
MCP はまだ比較的新しい標準であり、エコシステムは急速に進化しています。 MCP を採用する開発者が増えると、プロジェクトとの統合に使用できるサーバーとツールの数が増えると予想できます。
MCP サーバーの追加
MCP サーバーの構成を管理するファイルを作成する
mcp.json
ファイルがまだない場合は、サーバーを使用可能/使用するリポジトリ、ユーザー、IDE に応じて、さまざまな場所に作成できます。
MCP 構成の自動検出のファイルの場所
Visual Studio では、他の開発環境によって設定された MCP 構成もチェックされます。 MCP サーバー構成は、次のディレクトリから次の順序で読み取られます。
-
%USERPROFILE%\.mcp.json
特定のユーザーのグローバル MCP サーバー構成として機能します。 ここで MCP サーバーを追加すると、すべての Visual Studio ソリューションに対して読み込まれます。 -
<SOLUTIONDIR>\.vs\mcp.json
Visual Studio に固有であり、特定のユーザーの指定された MCP サーバーのみを、指定したソリューションに対して読み込みます。 -
<SOLUTIONDIR>\.mcp.json
リポジトリのソース管理で追跡できる MCP 構成を探している場合に適しています。 -
<SOLUTIONDIR>\.vscode\mcp.json
リポジトリ/ソリューションにスコープが設定され、通常はソース管理されません。 -
<SOLUTIONDIR>\.cursor\mcp.json
リポジトリ/ソリューションにスコープが設定され、通常はソース管理されません。
これらの場所の中には .mcp.json
が必要な場所もあれば、 mcp.json
が必要な場所もあります。
MCP 構成形式
リモート (URL と資格情報) サーバーとローカル (コマンド ライン呼び出し) サーバーの両方を定義できます。
パッケージ マネージャーを使用してツールを呼び出すのが一般的です。 たとえば、npx -y @azure/mcp@latest
または docker run ... mcp/github
です。 Visual Studio では、指定した任意のコマンドが考慮されるため、必要に応じてバージョンをピン留めしたり、フラグを渡すことができます。
形式は、サーバー オブジェクトの配列など、MCP 仕様に従う必要があります。各配列には、 name
、 command
または url
、 transport
などが含まれます。
MCP 構成の編集
既存の mcp.json
ファイルを使用して、ファイルをバージョン 管理システムにチェックインする場合は、ソリューション エクスプローラーの ソリューション項目 にファイルの場所を追加します。
ファイルが有効な構文で保存されると、GitHub Copilot のエージェントが再起動し、構成されたサーバーを再読み込みします。
ツールのライフサイクル
サーバーが検出または追加されるとすぐに:
- Visual Studio によってサーバーが初期化されます (ハンドシェイクを実行し、ツール リストに対してクエリを実行します)。
- Visual Studio は、MCP イベント
notifications/tools/list_changed
をサブスクライブします。 - そのイベントが発生すると、Visual Studio はツールに対する以前の受け入れまたはアクセス許可をリセットし ( ラグプル 攻撃を防ぐために)、ツールリストを再フェッチして、カウント/UI をライブで更新します。
- サーバーが正常に有効になると、エージェントがツールを使用できるようになります。 ツールは既定で無効になっており、手動で有効にする必要があります。
- サーバーが削除されると、Visual Studio はそのプロセスを直ちに強制終了し、すべてのツールを UI から取り消します。
- サーバー定義を編集すると、Visual Studio によってサーバー定義が終了して再起動され、クエリが再実行されます。
ツールの承認を管理する
ツールが呼び出されると、Copilot はツールを実行するための確認を要求します。 これは、ツールがコンピューター上でローカルに実行され、ファイルまたはデータを変更するアクションを実行する可能性があるためです。
チャット ウィンドウで、ツールの呼び出し後、[ 許可 ] ドロップダウン オプションを使用して、現在のセッション、ソリューション、または今後のすべての呼び出しの特定のツールを自動的に確認します。
ツールの確認の選択は、Tools>Options>GitHub>Copilot>Tools でリセットできます。
よく寄せられる質問
管理者として、Visual Studio ユーザーのエージェント モードでの MCP サーバーの使用を制御するにはどうすればよいですか?
Visual Studio でのエージェント モードと MCP の使用は、管理者向けの GitHub Copilot ダッシュボードの エディター プレビュー機能 フラグによって管理されます。 管理者がこの設定をオフにすると、そのサブスクリプションのユーザーはエージェント モードを使用したり、Visual Studio で MCP サーバーに接続したりできなくなります。
詳細については、 企業での副操縦のポリシーと機能の管理を参照してください。
関連コンテンツ
- GitHub Copilot エージェント モード
- Visual Studio 向けの GitHub Copilot チャット エクスペリエンス
- GitHub Copilot Free について