- MCPは、GitHub CopilotとVisual Studio内の外部ツールとの接続を標準化します。
- MCPサーバーは.mcp.jsonまたはmcp.jsonファイルを使用して構成され、ローカルまたはリモートのいずれかになります。
- Visual Studio は、セキュリティを維持するために、MCP ツールのライフサイクル、アクセス許可、および認証を管理します。
- GitHub、Azure MCP、SQLなどのサーバーはMCP上で動作し、IDEから直接高度な操作を提供します。
GitHub CopilotとVisual Studioを使用している方なら、Model Context Protocol(MCP)という言葉を聞いたことがあるかもしれませんが、IDE内でMCPを最大限に活用する方法はまだよくわからないかもしれません。MCPは、AIエージェントがリポジトリ、データベース、Azureサービスなどの外部ツールと、毎回カスタム統合を作成することなく通信できるようにする標準規格です。
この記事では冷静に見ていきます Visual StudioでMCPサーバーを使用する方法それらの設定方法、宣言場所、ファイルが果たす役割 .mcp.json y mcp.jsonまた、GitHub Copilotのエージェントモードとの連携方法についても解説します。さらに、GitHub MCPサーバー、Azure DevOps、Azure MCP Server、SQLサーバーを用いた実践的な例や、組織レベルでのMCP利用の制御方法についてもご紹介します。
MCPとは何ですか?また、Visual Studioにおいてなぜ重要なのでしょうか?
モデルコンテキストプロトコル(MCP)は、AIクライアント(Visual StudioのGitHub Copilotなど)が外部ツールやサービスに接続し、通信する方法を定義するオープンスタンダードです。各拡張機能が独自の統合方法を考案するのではなく、MCPはメッセージ形式、ツールの検出方法、およびツールの呼び出し方法を統一します。
実際には、これはVisual StudioがMCPクライアントとして動作し、1つ以上のMCPサーバーに接続することを意味します。各MCPサーバーは、ファイルシステム操作からリポジトリ管理、Azure DevOpsとの連携、SQLクエリ、専用Webサービスへのアクセスまで、明確に定義されたツール群を提供します。
GitHub Copilotにとって、MCPはエージェントモードの大幅な改善を意味します。エージェントは単にコードを生成するだけでなく、これらのMCPツールを使用して、プルリクエストの作成やレビュー、課題の一覧表示、Azureリソースとのやり取り、データベースクエリの実行など、実際の操作をコーディングワークフロー内で実行できます。
最大の利点は、標準化されているため、ツールごとに個別の統合が必要ないことです。構成に新しいMCPサーバーを追加するだけで、エージェントは許可を与えれば、そのツールを使用できるようになります。
Visual StudioでMCPサーバーを使用するための前提条件
作業に取りかかる前に、Visual StudioがMCPおよびCopilotのエージェントモードで動作するために必要な最低限の環境要件を満たす必要があります。
まず、 Visual Studio 2026 または Visual Studio 2022バージョン 17.14 以降が必要です。最新のメンテナンス リリースがインストールされていることが望ましいです。最新の MCP 関連機能は、これらのバージョンに組み込まれているためです。この基盤がないと、表示されるオプションの多くが利用できません。
さらに、 Visual StudioでGitHub Copilotが有効になっており、エージェントモードにアクセスできる必要があります。エンタープライズ環境では、これはGitHub Copilotダッシュボードで管理者が定義したポリシー設定によって異なります(特にBusinessまたはEnterpriseサブスクリプションの場合)。
Azure MCP Serverや Azure CLI に依存する MCP サーバーを操作する場合など、特定のケースでは、適切な .NET がインストールされていること、Azure ツール (従来の CLI または開発者 CLI)、および操作する Azure サブスクリプションに対する十分な権限が必要になります。
互換性のあるMCPサーバーを検索して選択する
環境設定が完了したら、次のステップはVisual Studioに接続するMCPサーバーを特定することです。エコシステムは急速に成長しているため、公式の情報源をよく理解しておくことをお勧めします。
主な参照先は、公式のMCPサーバーレジストリまたはリポジトリです。そこには、プロバイダー自身(GitHub、Azureなど)が管理するサーバーだけでなく、コミュニティからの貢献も掲載されています。ファイルアクセス、リポジトリ管理、SQLデータベース、Webサービス、Figmaなどのデザインツールとの連携、Playwrightなどのテストシステムなど、さまざまな機能に特化したサーバーが見つかります。
MCPはまだ比較的新しい技術であるため、サーバーのリストは常に増え続けています。推奨される構成、接続パラメータ、および各MCPツールが提供する機能を確認するには、GitHub上のサーバーのリポジトリを参照するのが一般的に最善です。
さらに、GitHubはマネージドMCPレジストリの利用を推進しています。これにより、組織はユーザーが利用できるサーバーを公開および管理できます。これはCopilotポリシーと統合されており、1つ以上の承認済みレジストリに登録されているサーバーのみにMCPサーバーのインストールを制限できます。
Visual StudioにMCPサーバーを追加する方法
Visual Studio では、シンプルなシナリオから JSON ファイルで制御されるより高度な構成まで、MCP サーバーを環境に追加するためのさまざまな方法が提供されています。
最も簡単な方法は、利用可能な場合、Web から直接 MCP サーバーをインストールすることです。Visual Studio 17.14 の最新メンテナンス リリース以降では、一部の MCP サーバーのページに「インストール」ボタンが表示されます。ワンクリックでサーバーがインストールされ、手動でファイルを編集することなく、Visual Studio インスタンスに関連付けられます。
もう一つの便利なオプションは、サーバーを追加することです。 コパイロットのチャットウィンドウ自体からチャットツールセレクターには、追加ボタン(プラス記号が付いたおなじみの緑色のアイコン)があります。このボタンをクリックすると、Visual Studio にサーバー名と接続の詳細を入力するよう求められます。これは、SSE トランスポートの場合は HTTP URL、トランスポートの場合はコマンドと引数になります。 stdio.
組織でGitHubのMCPサーバーレジストリを使用している場合は、Visual Studioの[拡張機能] > [MCPレジストリ]メニューからもアクセスできます。そこから、設定済みのレジストリに公開されているサーバーが表示されます。必要なサーバーを選択し、[インストール]をクリックするだけで、IDEで有効化できます。
より細かい構成や共有チーム構成の場合、最も柔軟なアプローチは MCP設定ファイルをJSON形式で編集する、これは .mcp.json o mcp.json 場所によって異なります。そこで、サーバー、トランスポートの種類、起動コマンド、環境変数などを宣言します。
.mcp.jsonを使用してMCPサーバーを設定する
Visual Studio で MCP サーバーを管理する最も確実な方法は、JSON 構成ファイルを使用することです。これらのファイルには、利用可能なサーバー、起動方法、および使用するトランスポートが構造化された形式で記述されます。
よくある例としては、 GitHub MCPサーバー ソリューションのルートに。これを行うには、次の場所にファイルを作成します。 <SOLUTIONDIR>\.mcp.json またはで %USERPROFILE%\.mcp.jsonそして、Visual Studio を使用して編集すれば、スキーマと構文の検証に関するヘルプを利用できます。
ファイル内にセクションを含む構造を追加します servers 各サーバーにつき 1 つのオブジェクトが含まれています。たとえば、GitHub の場合は、次のようなサーバーを含めることができます。 リモートURL付きの「github」 のような https://api.githubcopilot.com/mcp/そこから、Visual Studio はサーバーを検出し、初期ハンドシェイクプロトコルを処理し、そのツールに問い合わせを行います。
ファイルが保存されると、エディタのサーバー定義の上に「認証が必要です」というCodeLens通知が表示されます。この通知をクリックすると、GitHubアカウントでのログインプロセスが開始され、MCPサーバーへのアクセスが承認されます。この機能を使用するには、 [ツール] > [オプション] > [テキストエディタ] > [CodeLens]でCodeLensが有効になっていることを確認することが重要です。
認証後、Copilotチャットに移動し、下部のドロップダウンメニューからエージェントモードに切り替えて、使用したいMCPサーバーツール(例えば、「課題一覧」ツール)を選択します。「GitHubで自分に割り当てられた課題を一覧表示してください」といったメッセージを送信すると、Copilotは対応するツールの使用許可を求めます。
自動検出用のmcp.jsonファイルをどこに配置すればよいですか?
Visual Studio は、さまざまな場所にあるMCP 構成ファイルを自動的に検索するため、グローバルなユーザー構成、ソリューション固有の構成、さらには VS Code や Cursor などの他のエディターと共有する構成を使用できます。
まず、相談します %USERPROFILE%\.mcp.jsonこれは、ユーザーに対するグローバルな MCP サーバー構成として機能します。ここで宣言されたサーバーは、Visual Studio で開くすべてのソリューションで使用できます。
次にチェックされます <SOLUTIONDIR>\.vs\mcp.jsonこれは、特定のソリューションとユーザーに固有の設定です。特定のソリューションが開かれた時のみ特定のサーバーをロードし、他のサーバーには影響を与えないようにしたい場合に便利です。
次の重要な場所は <SOLUTIONDIR>\.mcp.jsonこれは通常、MCP構成をリポジトリと共に移動させ、ソース管理システム(例えばGit)で管理したい場合に使用されます。これにより、チーム全体で同じサーバー定義を共有できます。
他の出版社向けにもルートが計画されています。 <SOLUTIONDIR>\.vscode\mcp.json o <SOLUTIONDIR>\.cursor\mcp.jsonこれらのファイルは通常、リポジトリまたは作業フォルダにリンクされますが、多くの場合、ローカルに保持するためにバージョン管理から除外されます。
これらのルートの中には名前が必要なものがあることを覚えておくことが重要です .mcp.json やその他 mcp.json 開始点がないので 指定された名前を正確に尊重することが重要です。 Visual Studioなどの環境がファイルを正しく検出できるように、各フォルダー内に配置してください。
MCPサーバー構成と編集フォーマット
MCP構成ファイルはプロトコルの仕様に準拠しており、これにより、さまざまなクライアント(Visual Studio、VS Codeなど)が曖昧さなく解釈できることが保証されます。
基本的に、各ファイルにはプロパティを持つメインオブジェクトが含まれています servers内部では、サーバー配列またはオブジェクトが定義され、各サーバーは少なくとも1つの 名称、輸送手段、接続方法この接続は、URLと認証情報を使用してリモート接続することも、コマンドを使用してローカル接続することもできます。 stdio.
ローカルサーバーでは、ツールを以下のように起動するのが一般的です。 パッケージマネージャー例えば、次のようなコマンドを使うことができます。 npx -y @azure/mcp@latest server start Azure MCP Server を起動するには、または docker run 特定の MCP サーバーを実装するイメージを使用します。Visual Studio は宣言されたコマンドを正確に尊重するため、必要に応じてバージョンを設定したり、フラグを追加したりできます。
ファイルを入手したら mcp.json リポジトリ内にあり、ソリューションエクスプローラーに表示させたい場合は、 ソリューション要素に追加します IDEから簡単に編集できます。有効な構文でファイルを保存するたびに、GitHub Copilotエージェントが再起動し、設定済みのサーバーリストを再読み込みして、変更をリアルタイムで適用します。
この宣言型のサーバー管理方法により、MCP環境を非常に細かく制御できるため、異なるマシン上で同じ構成を再現し、開発チームの他のメンバーと共有することが可能になります。
Visual Studio 内での MCP ツールのライフサイクル
Visual Studio が MCP サーバーの存在を検出すると、そのサーバーが公開するツールに対して、明確に定義されたライフサイクルが開始されます。この一連の処理により、サーバーの追加、変更、削除が行われるたびに、セキュリティと一貫性が確保されます。
Visual Studio がサーバーを見つけたときに最初に行うことは リンクプロトコルを使用して初期化します。そこで利用可能なツールの一覧を確認できます。その後、顧客はイベントに登録します。 notifications/tools/list_changed MCPによって定義されるため、サーバーがツールを追加または変更した際に反応することができます。
そのイベントがトリガーされると、Visual Studio はそれらのツールに以前に付与されたすべての認証をリセットし(ツールが途中で動作を変更する「ラグプル攻撃」を防ぐため)、ツールリストを再度要求し、その数を調整し、インターフェイスをリアルタイムで更新します。
サーバーが有効になると、Copilotエージェントはインターフェースにすべてのツールを表示しますが、デフォルトでは無効になっています。ユーザーは、実行可能な機能を明確に制御するために、許可したいツールを手動で有効にする必要があります。
構成からMCP サーバーを削除すると、Visual Studio は関連付けられたプロセスを即座に停止し、インターフェースからすべてのツールを削除します。同様に、サーバーの定義を編集した場合(たとえば、コマンド、URL、または環境変数を変更した場合)、IDE は現在のプロセスを終了し、新しい構成でプロセスを再起動し、必要なツールクエリを再実行します。
承認管理とツールのセキュリティ
CopilotエージェントがMCPツールを呼び出すたびに、Visual Studioはツールが実行する動作をユーザーが確実に認識できるように、明示的な確認レイヤーを導入します。これは、これらのツールの多くがローカルファイルやリモートデータを変更する可能性があるため、特に重要です。
ツール呼び出し後、チャットパネルにドロップダウンメニューが表示され、今後の実行を許可または確認することができます。このメニューでは、そのツールをその都度承認するか、現在のセッション全体で自動的に承認するか、アクティブなソリューションに対して検証するか、あるいは環境内での今後のすべての呼び出しに対して承認するかを選択できます。
確認に関する決定事項をすべてリセットしたい場合は、Visual Studio のオプションダイアログボックスの[GitHub] > [Copilot] > [ツール]セクションからリセットできます。これにより権限履歴がクリアされ、以降、Copilot は各ツールを使用する際に再度確認を求めるようになります。
並行して、Visual Studio は以下をサポートします 任意のOAuthプロバイダーを使用したリモートMCPサーバーの認証サーバーが MCP 認証仕様に準拠していることが条件です。これは、IDE のキーチェーンとの従来の統合に加えて行われます。特定のサーバーの認証を管理するには、CodeLens をファイルで再度使用できます。 .mcp.json認証管理オプションを選択し、ブラウザウィンドウでログインを完了してください。
このきめ細かな権限設定と統一された認証設計により、MCPツールの悪用リスクを最小限に抑えつつ、適切な権限を付与した後は、比較的スムーズな操作性を維持します。
組織レベルで許可されている MCP サーバーのリスト
企業環境においては、開発者が単にMCPサーバーを利用したいだけでは不十分です。組織のセキュリティおよびコンプライアンスポリシーを遵守する必要もあります。GitHubが管理する許可リストは、まさにこうした場面で役立ちます。
組織で MCP の許可リストが有効になっている場合、承認された MCP サーバーのみを使用できます。リストに記載されていないサーバーに接続しようとすると、Visual Studio は、企業ポリシーでそのサーバーの使用が許可されていないことを示すエラー メッセージを表示します。
その場合、唯一の解決策は、組織の管理者に連絡して、サーバーを許可されたレジストリに追加するよう依頼するか、少なくともどのMCPサーバーが許可されているかを確認することです。これは、企業が機密データが管理されていない外部サービスに漏洩するのを防ぎたい場合に非常に重要です。
これらのポリシーにより、管理者は機密情報を処理できるサーバーを制御し、データ処理に関する規制遵守を維持し、開発チーム内でどのAI統合が承認されるかについての決定を一元化することができます。
実際には、GitHub Copilot Enterprise を使用する多くの組織は、まずすべてのユーザーに対してMCP を完全に無効にするポリシーを設定し、その後、Azure API Center などのプライベート、自己ホスト型、またはサービスベースの MCP レジストリを介して選択したサーバーを段階的に有効にするという手順を踏みます。ただし、ドキュメントを読むには、MCP レジストリに関するある程度の予備知識が必要です。
MCPの手順、テンプレート、およびリソースを使用する
MCPサーバーは、ツールに加えて、言語モデルがより多くのコンテキストで、より少ない摩擦で動作できるように、事前定義された手順と構造化されたリソースを提供することができます。
MCPプロンプトは、繰り返し行うタスクに使用できる再利用可能なメッセージテンプレートです。Copilotチャットでは、「+ 参照を追加」ボタンをクリックし、「プロンプト > MCPプロンプト」カテゴリを選択して、サーバーが提供するプロンプトを選択できます。一部のプロンプトには、会話に挿入する前に入力できるカスタマイズ可能な引数が含まれています。
典型的な例としては、GitHubのMCPサーバーが挙げられます。このサーバーは、プルリクエストの分析、コミットメッセージの生成、コード変更のレビューなどを行うための、あらかじめ用意されたプロンプトを提供します。複雑なプロンプトを一つ一つゼロから作成する必要がないため、ワークフローが効率化されます。
MCPリソースは、その一方で、 モデルに関する豊富なコンテキストこれらはコード ファイル、データベース スキーマ、ビジネス データ、またはアプリケーション固有の情報です。各リソースは一意の URI で識別され、ハッシュタグ (#) の後にその URI が続きます。
引数を使用するリソーステンプレートを扱う場合も、「+ 参照の追加」ダイアログを使用できますが、今回は「MCP リソース」セクションで行います。そこでリソースを選択し、必要なパラメーター(作業項目識別子やコンポーネント名など)を入力して、Copilot がコンテキストとして使用できるように会話に挿入します。
実際の例としては、作業項目、スプリント情報、チームのキャパシティデータなどのリソースを公開してタスクの計画に役立てるAzure DevOps MCPサーバーや、デザインコンポーネント、スタイルガイド、レイアウト仕様へのアクセスを容易にするFigma MCPサーバーなどが挙げられます。
MCPサンプリングと委任されたLLMコール
このプロトコルのもう一つの興味深い機能はサンプリングです。これにより、MCPサーバーがユーザーに代わって言語モデル呼び出しを行い、より複雑な複数ステップのワークフローを実行できます。
サーバーがサンプリングをサポートしており、Copilotがこの種の操作が必要であることを検出した場合、処理を進める前に確認ダイアログボックスが表示されます。そこで詳細を確認し、サーバーが実際に行う動作を正確に理解した上で、操作を承認または拒否することができます。
このアプローチでは、自動化と制御のバランスが保たれます。サーバーがLLM呼び出しと中間操作を調整しますが、実際に環境で何を実行するかについては、最終的な決定権はユーザーにあります。
例えば、PlaywrightのMCPサーバーは、サンプリングを用いてWebアプリケーションのDOMと観測されたユーザーフローからテストシナリオを生成できます。サーバーはページ構造を分析し、テストケースを提案し、それらを自動化スクリプトに実装します。これらすべてはMCPを介して調整されます。
Azure MCP Server: Azureリソースとの統合
Azure MCP Serverは、MCPの最も強力なユースケースの1つです。なぜなら、Visual StudioとVisual Studio Codeの両方において、GitHub CopilotのようなAIアプリケーションからAzureリソースへのアクセスを標準化できるからです。
このサーバーは、NuGet パッケージや NPM パッケージなど、さまざまな形式で配布されており、Visual Studio または VS Code から使用できます。どちらの場合も、有効なアカウントで Azure に認証されていること、および操作対象のリソースが存在するサブスクリプションに対して適切なアクセス許可を持っていることが必要です。
Azure でローカル認証を行う一般的な方法は、 Azure CLI。シンプルな az login ブラウザでログインフローを開きます。その後、アカウントと有効なサブスクリプションを確認できます。 az account showAzure MCP Server はこれらの割り当てを厳密に尊重するため、ユーザーには必要な役割(例:投稿者、閲覧者、ストレージ アカウント投稿者など)が付与されていることが不可欠です。
Copilotのエージェントモードからサーバーのテストを開始するには、「Azureリソースグループの一覧を表示」のようなコマンドを実行します。Copilotは、Azureへのサインイン(まだサインインしていない場合)と操作実行の許可を求め、承認されると、リソースグループの名前とリージョンの一覧を返します。
そこから、「サブスクリプション内のすべてのストレージアカウントを一覧表示」や「ストレージアカウントで使用可能なテーブルを取得」といったメッセージを使って、さらに探索を続けることができます。セッション全体、またはワークスペース全体に対して常に許可するように設定しない限り、各操作はツールの確認フローを再度実行する必要があります。
データAPIビルダーを使用したMCP SQLサーバーの例
MCPの使用例として、 Data API Builder(DAB)をベースとしたSQLサーバーが挙げられます。これにより、SQL ServerデータベースをMCPサーバーとして公開し、VS CodeやGitHub Copilotからクエリを実行できます。
このシナリオでは、以下をインストールする必要があります .NET 9以上 また、SQL Server 2016以降のインスタンス(Developerエディション、Expressエディション、LocalDB、またはDockerコンテナのいずれか)へのアクセス権も必要です。これらのツールが準備できたら、以下のコマンドを使用してData API Builder CLIをインストールできます。 dotnet new tool-manifest, dotnet tool install microsoft.dataapibuilder y dotnet tool restore.
一般的なワークフローは、例えばサンプルデータベースを作成することから始まります。 ProductsDbにProductsテーブルがあります。そして、いくつかのレコードをそこに入力します。次に、ファイルを設定します。 .env 接続文字列付き(MSSQL_CONNECTION_STRING)そして実行する dab init サーバーを初期化し、続いて dab add Products テーブルをエンティティとして公開し、匿名読み取り権限とユーザーフレンドリーな説明を付与する。
さらに一歩進めたい場合は、 dab update 追加する 分野別の説明 (ID、名前、在庫、価格、コスト) を主キーとしてマークし、各列が何を表しているかを説明します。これにより、Copilot が MCP サーバー経由でクエリを実行する際に受け取るコンテキストが改善されます。
SQL MCP Server は HTTP トランスポートをサポートしています (開始) dab start 端末上でエンドポイントタイプに接続 http://localhost:5000/mcp)または輸送 stdioVS Code がポートを開放せずにプロセスを直接管理する場合。どちらの場合も、サーバー定義は次のように宣言されます。 .vscode/mcp.json名前、トランスポートの種類、URLまたはコマンドを示します。
接続されると、次のようなエンティティ 製品はMCPツールとして提供されます スタイルの describe_entities o read_recordsCopilot Chatから「在庫数が30未満の製品はどれですか?」といったプロンプトを使ってテストできます。MCPサーバーがリクエストをSQLクエリに変換し、構造化された結果を返します。
高度な経験:カスタムMCPサーバーの作成
MCPは、既存のサーバーを単に利用するだけでなく、独自のカスタムサーバーを作成し、チームメンバーと共有できるように設計されています。Visual Studio Codeなどの環境では、Pythonなどの言語を使用してサーバーを生成する方法を示す完全なサンプルが用意されています。
実際の例としては、MCPサーバーを構築することが挙げられます。 PyPIパッケージからデータを収集するGitHub Copilot の支援を受けて行われます。ワークフローは通常、Python 環境のセットアップ、PyPI API にクエリを実行するスクリプトの生成、そのスクリプトを正式な MCP ツールへの変換、そして最後にファイルを使用してサーバーを登録することを含みます。 mcp.json VS Code で。
実践的なセッションでは、JSONスキーマの作成から、各操作が何をするのかをモデルが理解するのに最適なツール記述の定義まで、サーバー開発の各段階でCopilotのエージェントモードをどのように活用するかを学びます。
また、モデルがツールを正しく選択できるようにツール記述を最適化する方法や、公開リポジトリ、プライベートレジストリへの公開、すぐに使用できる構成テンプレートの配布など、MCPサーバーを他の開発者と共有する方法についても解説しています。
これらすべては、MCPがツールを利用するための標準規格であるだけでなく、より透明性が高く、再利用可能で、管理しやすいAI拡張エコシステムを構築するためのプラットフォームでもあることを示している。
最後に、Visual Studio で MCP サーバーを使用する方法を理解する - ファイル内での検索と構成から .mcp.jsonOAuth認証、ツール承認、組織の許可リストから、Azure MCP ServerやData API Builderを備えたSQL Serverといった具体的な例まで、セキュリティや開発エクスペリエンスを損なうことなく、人工知能を日々のワークフローに制御された方法で統合し、ますます強力なソリューションへの扉を開くための確固たる基盤を提供します。