MCP サーバーによるエージェントの拡張

MCPサーバーは、エージェントを外部ツールやデータソースに接続します。このガイドでは、MCPサーバーのインストール、チャットでのツールの使用、適切な設定スコープの選択、およびサーバーをサンドボックス化するタイミングの判断を行います。

前提条件

開始する前に、VS Codeをインストールし、AI機能を有効にして、GitHub Copilotにサインインしてください。また、MCPサーバーへのアクセス権、またはマーケットプレイスからサーバーを追加する機能が必要です。

具体的なサーバーから始める

このレッスンでは、例としてPlaywright MCPサーバーを使用します。これにより、エージェントにブラウザーツールが提供され、ページのオープン、操作、スクリーンショットのキャプチャが可能になります。

  1. 拡張機能ビューを開きます。

  2. @mcp playwrightを検索します。

  3. インストールを選択して、Playwright MCPサーバーをユーザープロファイルにインストールします。

  4. VS Codeからサーバーを信頼するかどうか尋ねられたら、パブリッシャーとサーバーの詳細を確認し、信頼できる場合は承認します。

サーバーが起動すると、VS Codeがそのツールを検出し、チャットで使用できるようにします。

Screenshot showing the MCP servers in the Extensions view.

チャットでサーバーを使用する

次に、実際にブラウザーアクセスを必要とするタスクをエージェントに与えます。

  1. チャットビューを開きます。

  2. エージェントを選択します。

  3. ツールの構成を選択します。

  4. Playwrightツールを有効にします。

  5. このプロンプトを送信します

    Go to code.visualstudio.com, decline the cookie banner if it appears, and describe the main navigation items on the homepage.
    

タスクにブラウザー操作が必要なため、エージェントはPlaywright MCPツールを呼び出すはずです。ツール呼び出しの前に承認を求められた場合は、アクションを確認し、タスクと一致していれば承認してください。

Screenshot showing an MCP tool invocation in chat with the input and output shown.

設定をどこに配置するか決定する

サーバーをインストールすると、設定が mcp.json ファイルに書き込まれます。サーバーを使用するユーザーに基づいてスコープを選択します。

スコープ 使用する状況
ユーザープロファイル 自分のワークスペース全体で役立つサーバーです。 ブラウザー自動化サーバーやドキュメント検索サーバーなど。
ワークスペース プロジェクトの動作の一部となるサーバーです。 プロジェクト固有のAPIサーバーやデータベース検査ツールなど。
リモートユーザープロファイル リモートマシン上で実行する必要があるサーバーです。 開発コンテナやリモート環境にインストールされたツールへのアクセスが必要なサーバーなど。

ユーザープロファイルの設定を確認するには、MCP: ユーザー設定を開くを使用します。現在のプロジェクト用の .vscode/mcp.json ファイルが必要な場合は、MCP: ワークスペースフォルダー設定を開くを使用します。

資格情報を必要とするサーバーの場合、ワークスペースファイルにシークレットをハードコードしないでください。機密値は、入力変数または環境ファイルを使用して保存します。

ヒント

VS Codeは mcp.json に対してIntelliSenseとインラインアクションを提供するため、サーバーの起動、停止、検査が容易になります。

MCP server configuration with lenses to manage server.

MCPが提供できる機能を知る

MCPはいくつかの機能を中心に構築されています。それぞれが異なる問題を解決します。

  • ツールを使用すると、ブラウザーを開く、APIにクエリを実行するなどのアクションをエージェントが実行できます。
  • リソースは、データベースのスキーマやドキュメントなど、リクエストにアタッチする読み取り専用のコンテキストを提供します。
  • プロンプトは、標準的なリサーチプロンプトなど、サーバーからの再利用可能なテンプレートを提供します。
  • MCPアプリは、サーバーがより高度な入力をサポートしている場合に、チャットでインタラクティブなUIをレンダリングします。

エージェントに何かを実行させたい場合はツールを使用します。何かを読み取る必要がある場合はリソースを使用します。チームで再現可能なインタラクションパターンが必要な場合はプロンプトを使用します。

ローカルサーバーをサンドボックス化する

ローカルのMCPサーバーは、マシンの上で実行できるコードとして扱ってください。インストールする前に、パブリッシャーと設定を確認してください。

デフォルトでは、MCPツールの呼び出しは実行前に承認を求めるプロンプトを表示するため、人間が常に介入できるようになっています。macOSおよびLinux上のローカルstdioサーバーでは、サンドボックス化を有効にしてファイルシステムとネットワークへのアクセスを制限できます。

サーバーに有用な権限が必要でありながら、明確な境界内に留める必要がある場合は、サンドボックス化を追加します。たとえば、Playwright MCPサーバーの場合、作業がホストから隔離されるため、サンドボックス化により、すべてのステップでプロンプトを表示することなく、エージェントがページを移動してブラウザータスクを実行できるようになります。

ローカルのstdioサーバーでサンドボックス化を有効にするには、サーバー設定で sandboxEnabledtrue に設定します。サーバーに追加のアクセス権が必要な場合は、マシン全体へのアクセスを広げるのではなく、そのサーバーのサンドボックスルールを更新してください。

{
  "servers": {
    "playwright": {
      "command": "npx",
      "args": ["-y", "@microsoft/mcp-server-playwright"],
      "sandboxEnabled": true
    }
  }
}

Screenshot showing the MCP server trust prompt.

2つ目のサーバーで練習する

Playwrightを試した後は、ドキュメントまたはAPIに特化したMCPサーバーをインストールして、ワークフローを比較してください。

  1. 拡張機能ビューで @mcp を検索します。

  2. ドキュメント、課題追跡、または使用している別のシステムに接続するサーバーを選択します。

  3. 個人のツールである場合はユーザープロファイルにインストールし、プロジェクトで共有すべきものである場合はワークスペースにインストールします。

  4. チャットでそのツールを有効にします。

  5. その外部ソースを必要とするプロンプトを送信します。

たとえば、ドキュメントMCPサーバーを有効にした状態で、モデルの一般的な知識ではなく、そのドキュメントに基づいているべき質問をします。

MCP サーバーを管理する

VS Code内のいくつかの場所からサーバーを管理できます

  • 拡張機能ビュー。
  • mcp.json エディター。
  • MCP: サーバーの一覧表示を含むコマンドパレット。
  • チャットビューの歯車アイコンからのエージェントカスタマイズビュー。

これらのインターフェースを使用して、サーバーの起動や停止、マーケットプレイスの閲覧、追加サーバーのインストールを行います。

Screenshot showing the actions for an MCP server in the Command Palette.

サーバーをデバッグするには、サーバーのアクションから出力の表示を選択して、サーバーが処理するすべてのリクエストからのログを確認します。

Screenshot showing the MCP server output panel with logs.

この内容が重要な理由

MCPは、モデルの外部にアクセスして既存のシステムと連携するための標準的な方法をエージェントに提供します。これにより、アドホックなプロンプトが減り、再現性の高いワークフローが実現します。

次のステップ

次に、エージェントプラグインがスキル、エージェント、フック、MCPサーバーを単一のインストール可能なバンドルにパッケージ化する方法を確認します。

詳細情報

© . This website operates independently and is not affiliated with or endorsed by Microsoft. All brand names, logos, and trademarks are the property of their respective owners.