ツールを超えて:VS CodeへのMCPの導入
2025年5月14日 投稿者: Harald Kirschner
VS Codeでエージェントモードを初めて導入した際、それはチャットを通じてコードやワークスペースと対話する新しい方法を切り開きました。エージェントに対してファイルの調査、ビルドの実行、さらにはテストのデバッグまで依頼できるようになりました。しかし、モデルが学習した知識やワークスペースの内容といった制約がありました。そこで、次のステップは明らかでした。エージェントがその境界を越え、セキュアかつユーザーが管理可能な方法で、実際の外部サービスとやり取りできるようにする必要があったのです。
私たちの最初の試みは、VS Codeの慣れ親しんだパターンであるツールおよびチャット参加者APIを通じた拡張性に従うものでした。すでにエコシステムには数千もの拡張機能が存在することを考えれば、これは理にかなっていました。しかし、業界は急速に新たな標準であるModel Context Protocol (MCP)へと移行しつつありました。MCPは、Web通信を標準化したHTTPのように、AIエージェントを多種多様な外部ツールやサービスに一貫した方法で接続するためのプロトコルとして理解するのが最適です。その目標は、VS Codeだけでなく、あらゆるクライアントがデータベース、コード検索、デプロイメントシステムなどの強力なツールサーバーを接続し、それらを「そのまま動作」させることにあります。
MCPへのこの転換により、広範なエコシステムがほぼ一夜にして利用可能になりました。現在、VS Codeユーザーは、フロントエンド検証のためのPlaywright MCP Server、リポジトリの分析やプルリクエストのためのGitHub MCP Server、あるいはよりスマートなAPI利用のためのContext7といったサーバーを活用できます。サーバーのリストは拡大を続けており、MCPはAIエージェントにさらなる機能をもたらすための基盤として急速に定着しています。
MCPを誰にとっても使いやすく:VS Codeの設計原則の適用
VS Codeの設計哲学は、常に強力な機能を使いやすくすること、デフォルトで安全であること、そしてユーザーに明確な制御権を与えることに重点を置いてきました。私たちのMCP統合も、同じ原則に基づいています。
以前、MCPサーバーの利用を開始するには、JSONブロックを設定ファイルにコピーし、コマンドライン引数を管理する必要がありました。私たちはこれを簡素化したいと考えました。「MCP: Add Server」コマンドを使えば、パッケージマネージャー(NPM、PyPI、Docker)からサーバーをセットアップし、残りの処理はVS Codeに任せることができます。Webサイトには「VS Codeにインストール」ボタンを設置してオンボーディングをさらに効率化することも可能であり、可能であればClaude Desktopなどの他のクライアントから設定を自動検出することもできます。

セキュリティも重要な焦点でした。MCPサーバーのシークレット管理のために、パスワードをソース管理に含めるようなことはすべきではありません。入力変数のサポートを追加したことで、一度だけ入力を求め、その後は安全に暗号化して保存したり、ローカル開発ですでに信頼している既存の.envファイルを参照したりできるようになりました。これにより、チームは安全に設定を共有およびレビューしやすくなっています。

ユーザーによる管理は、体験の中心です。ツールピッカーを使用すると、セッションごとにどのツールにエージェントがアクセスできるかをユーザーが決定でき、明確な説明や制御を確認できます。サーバーを開発・デバッグしている開発者向けには、VS Codeはログを表示し、サーバーの開始・停止・再起動を容易にします。こうした工夫により、MCPはエンドユーザーにとってもサーバー開発者にとっても、強力かつ親しみやすいものとなっています。
基本を超えて:より豊かなMCP機能
私たちの取り組みは、ツールに対する基本的な互換性を実装するだけでは終わりませんでした。MCPの価値の大部分は、その仕様のより深い部分にあります。完全にサポートされることで、ツールがより文脈に応じ、適応的で堅牢なものとなるような機能群です。
例えば、roots(ルート)サポートにより、MCPサーバーはワークスペースの構造を理解できるようになります。ユーザーにフォルダーパスを尋ねたり設定に依存したりする代わりに、サーバーはワークスペースフォルダーのリストを事前に受け取るため、目の前のプロジェクトに合わせてツールを調整できます。これにより、モノレポ全体からすべてのTODOを見つけ出したり、検出されたインフラストラクチャファイルに基づいてデプロイメントツールを有効化したりといったユースケースが実現します。
動的ツール探索により、サーバーは利用可能なツールセットをオンザフライで変更できます。静的なリストではなく、ワークフローの進行に応じて異なるアクションを表示したり、コードベースで検出されたフレームワークに関連するツールを表示したりするなど、文脈やプロジェクトの状態に合わせてツールを適応させることができます。これにより、エージェントの能力は常に関連性の高いものに保たれ、煩雑さを回避できます。実際の活用例については、TypeScript SDKの動的サーバーのサンプルや、GitHub MCP Serverの動的ツールセット探索機能をご確認ください。
前回のVS Codeアップデートでは、ツールアノテーションのサポートも追加されました。これは、ツールに対する人間が読みやすい名前や、読み取り専用モードで実行すべきかといったヒントなど、サーバーが有用なメタデータを提供するのに役立ちます。これらの詳細は、エージェントの挙動とユーザーの理解の両方を向上させます。
最後に、ストリーム可能なHTTPが、MCP仕様の最新トランスポートとしてサポートされました。これにより、クラウドホスト型やサーバーレスのツールプロバイダーにとって、リモートサーバー統合がよりスムーズかつスケーラブルになります。
私たちの目標は、最新のMCP機能をVS Codeでサポートし、ユーザーが豊かなAI体験を享受し、サーバー開発者が自信を持ってこれらの機能を実装できるようにすることです。
エコシステムの拡大:コラボレーションと今後の展望
MCPは現在、GitHub、Playwright、Azure、Perplexityによる公式サーバーを支えており、エコシステムは拡大する一方です。VS Codeが際立っているのは、単なる早期採用だけでなく、仕様を最優先に考えたエンジニアリングへのコミットメントです。MCPの仕様に密接に従い、認証、探索、セキュリティに関する改善を貢献することで、私たちはプロトコルが成熟する過程を形作り、エコシステムにおけるイノベーションがVS Codeユーザーだけでなく、すべての人に利益をもたらすよう取り組んでいます。
今後は、認証、プロンプト、リソース、サンプリングなど、仕様に含まれている次期MCP機能のVS Codeでのサポートに向けて積極的に取り組んでいます。これらが製品に実装されることで、さらに充実した柔軟なエージェント統合が可能になるでしょう。
あなたが開発者向けツールやインフラストラクチャを構築しているなら、MCPはそれらをVS Codeをはじめとする環境のAIエージェントから利用可能にするための、実践的かつオープンな方法です。既製のサーバーを使用する場合でも、独自に作成する場合でも、その体験は堅牢かつ簡潔であるべきです。
始めるには、ModelContextProtocol.io、VS Code MCPドキュメント、またはGitHub上のリファレンスサーバーをご覧ください。
皆さんが何を構築し、エコシステムの拡大とともにエージェントのワークフローがどのように進化していくのかを楽しみにしています。
ハッピーコーディング!