エージェント型開発を探求する -

VS Code のエージェントプラグイン (プレビュー)

エージェントプラグインは、Visual Studio Code のプラグインマーケットプレイスから検索・インストールできる、チャットのカスタマイズ用パッケージです。1 つのプラグインで、スラッシュコマンド、エージェントスキルカスタムエージェントフック、および MCP サーバーを自由に組み合わせて提供できます。

プラグインは、ローカルで定義したカスタマイズと並行して機能します。プラグインをインストールすると、そのコマンド、スキル、エージェント、フック、MCP サーバーがチャットに表示されます。

注意

エージェントプラグインは現在プレビュー段階です。 chat.plugins.enabled Open in VS Code Open in VS Code Insiders 設定を使用して、エージェントプラグインのサポートを有効または無効にできます。

プラグインが提供するもの

エージェントプラグインには、以下のカスタマイズタイプを 1 つ以上バンドルできます。

  • スラッシュコマンド: チャットで / を入力して呼び出せる追加コマンド
  • スキル: 必要に応じて読み込まれる指示、スクリプト、リソースを備えたエージェントスキル
  • エージェント: 特化したペルソナとツール設定を持つカスタムエージェント
  • フック: エージェントのライフサイクルポイントでシェルコマンドを実行するフック
  • MCP サーバー: 外部ツール統合のための MCP サーバー

例えば、テスト用プラグインには、スクリプトを含む test-runner スキル、読み取り専用ツールを備えた test-reviewer エージェント、そしてテストレポートダッシュボード用の MCP サーバーが含まれる場合があります。プラグインのディレクトリ構造は以下のようになります。

my-testing-plugin/
  plugin.json              # Plugin metadata and configuration
  skills/
    test-runner/
      SKILL.md             # Testing skill instructions
      run-tests.sh         # Supporting script
  agents/
    test-reviewer.agent.md # Code review agent
  hooks/
    hooks.json             # Hook configuration
  scripts/
    validate-tests.sh      # Hook script
  .mcp.json                # MCP server definitions

インストールされると、プラグインが提供するカスタマイズは、ローカルで定義したものと並んで表示されます。例えば、プラグインのスキルは「スキルの設定 (Configure Skills)」メニューに表示され、MCP サーバーは MCP サーバーリストに表示されます。

注意

プラグインには、マシン上でコードを実行するフックや MCP サーバーが含まれる可能性があります。特にコミュニティマーケットプレイスのプラグインをインストールする際は、事前にコンテンツや発行元を確認してください。

プラグイン内のフック

プラグインには、エージェントのライフサイクルポイントでシェルコマンドを実行するフックが含まれる場合があります。プラグインのフックは、ワークスペースレベルやユーザーレベルのフックと並行して動作します。プラグインが有効な場合、同じイベントに対して設定された他のフックに加えて、プラグインのフックも実行されます。

フックファイルの場所

フックファイルの場所は、プラグインの形式によって異なります。

プラグイン形式 フックファイルのパス
Claude hooks/hooks.json
Copilot hooks.json (プラグインのルートディレクトリ)

VS Code はプラグインの形式を自動検出し、フックファイルを自動的に探索します。

my-plugin/
  hooks/
    hooks.json           # Hook configuration (Claude format)
  scripts/
    format.sh            # Hook script referenced by hooks.json

フック設定の形式

プラグインのフックは、ワークスペースフックと同じ基本形式を使用します。VS Code は、マッチャー構文を含む Claude Code のフック設定を解析します。現在、VS Code はマッチャーの値を無視するため、フックは一致するすべてのイベントで実行されます。

フラット形式 (ワークスペースフックと同じ)

{
  "hooks": {
    "PostToolUse": [
      {
        "type": "command",
        "command": "${CLAUDE_PLUGIN_ROOT}/scripts/format.sh"
      }
    ]
  }
}

マッチャー形式 (Claude 互換構文)

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Write|Edit",
        "hooks": [
          {
            "type": "command",
            "command": "${CLAUDE_PLUGIN_ROOT}/scripts/format.sh"
          }
        ]
      }
    ]
  }
}

VS Code は Claude Code との互換性のために matcher フィールドを解析しますが、現時点ではマッチャーの値は無視されます。VS Code でフックの動作をフィルタリングする必要がある場合は、フックスクリプト内でイベント入力を確認してください。

フックコマンドでのプラグインパスの参照

Claude 形式のプラグインでは、フックコマンド内で ${CLAUDE_PLUGIN_ROOT} トークンを使用して、プラグインディレクトリ内のスクリプトやファイルを参照してください。VS Code は実行時にこのトークンをプラグインの絶対パスに展開し、フックプロセス用に CLAUDE_PLUGIN_ROOT 環境変数も設定します。スクリプト内では、$CLAUDE_PLUGIN_ROOT (Windows の場合は %CLAUDE_PLUGIN_ROOT%) としてアクセスします。

プラグインはワークスペースの外にインストールされるため、相対パスを使用することはできません。そのため、このトークンは重要です。

{
  "hooks": {
    "PreToolUse": [
      {
        "type": "command",
        "command": "${CLAUDE_PLUGIN_ROOT}/scripts/validate-tool.sh"
      }
    ]
  }
}

サポートされているフックイベント

プラグインのフックは、ワークスペースフックと同じライフサイクルイベントをサポートしています: SessionStartUserPromptSubmitPreToolUsePostToolUsePreCompactSubagentStartSubagentStopStop。各イベントの詳細については、フックのライフサイクルイベントを参照してください。

プラグインのフックと他のフックの相互作用

プラグインのフックは、ワークスペースレベルやユーザーレベルのフックと並行して実行されます。複数のフックが同じイベントをターゲットにしている場合、それらすべてが実行されます。PreToolUse フックの場合、すべてのフックの中で最も制限の強い決定が優先されます。denyask を上書きし、askallow を上書きします。

プラグインを無効にすると、そのフックも無効になります。拡張機能ビューから、プラグインをグローバルに、または特定のワークスペースに対して有効/無効に切り替えることができます。

プラグイン内の MCP サーバー

プラグインは MCP サーバーをバンドルして、エージェントに追加のツールやデータソースを提供できます。プラグインの MCP サーバーは、プラグインが有効になると自動的に開始し、無効になると停止します。

MCP 設定ファイル

MCP サーバーの定義は、プラグインのルートディレクトリにある .mcp.json に配置してください。VS Code はプラグインの読み込み時にこのファイルを自動的に検出します。

my-plugin/
  .mcp.json              # MCP server definitions
  servers/
    db-server             # Server executable
  config.json             # Server configuration

MCP 設定の形式

プラグインの MCP サーバーは、最上位の mcpServers オブジェクト内で定義されます。各サーバーエントリーには、コマンド、引数、およびオプションの環境変数を指定します。

{
  "mcpServers": {
    "plugin-database": {
      "command": "${CLAUDE_PLUGIN_ROOT}/servers/db-server",
      "args": ["--config", "${CLAUDE_PLUGIN_ROOT}/config.json"],
      "env": {
        "DB_PATH": "${CLAUDE_PLUGIN_ROOT}/data"
      }
    },
    "plugin-api": {
      "command": "npx",
      "args": ["@company/mcp-server", "--plugin-mode"],
      "cwd": "${CLAUDE_PLUGIN_ROOT}"
    }
  }
}
注意

最上位のキーは mcpServers です (ワークスペースの mcp.json とは異なり servers ではありません)。

サーバー設定でのプラグインパスの参照

Claude 形式のプラグインでは、MCP サーバーのフィールド内で ${CLAUDE_PLUGIN_ROOT} トークンを使用して、プラグインディレクトリ内の実行ファイルやファイルを参照してください。VS Code は以下のフィールドでこのトークンを展開します。

  • command: 実行ファイルのパス
  • args: コマンドライン引数
  • cwd: 作業ディレクトリ
  • env: 環境変数の値
  • envFile: 環境ファイルのパス
  • url: HTTP ベースの MCP サーバーの場合
  • headers: HTTP ヘッダーの値

また、VS Code はサーバープロセスに CLAUDE_PLUGIN_ROOT 環境変数を注入するため、サーバーコードは実行時にプラグインパスにアクセスできます。

プラグインの MCP サーバーと他のサーバーの相互作用

プラグインの MCP サーバーは、ワークスペースレベルやユーザーレベルの MCP サーバーと並んで表示されます。これらは同じツールで管理できます。

  • チャットビューで「ツールを設定 (Configure Tools)」を選択すると、プラグインサーバーを含むすべての MCP サーバーのツールを確認できます。
  • コマンドパレットから「MCP: サーバーを一覧表示 (MCP: List Servers)」を実行すると、他のサーバーと並んでプラグインサーバーが表示されます。

プラグインの MCP サーバーは、プラグインをインストールした時点で暗黙的に信頼されます。ワークスペース MCP サーバーとは異なり、起動時に個別の信頼確認プロンプトは表示されません。

プラグインを無効にすると、その MCP サーバーは停止します。停止したサーバーによって提供されていたツールは、チャットで使用できなくなります。

プラグインの検索とインストール

VS Code の拡張機能サイドバーには、エージェントプラグインをブラウズおよび管理するための専用ビューが用意されています。

利用可能なプラグインのブラウズ

  1. 拡張機能ビュー (⇧⌘X (Windows, Linux Ctrl+Shift+X)) を開き、検索フィールドに @agentPlugins と入力します。

    または、拡張機能サイドバーの「その他のアクション (More Actions)」(3 つの点)アイコンを選択し、「ビュー (Views)」>「エージェントプラグイン (Agent Plugins)」を選択します。

  2. 設定済みのマーケットプレイスから、利用可能なプラグインのリストをブラウズします。

    Screenshot of browsing agent plugins in the Extensions sidebar.

  3. インストール (Install)」を選択して、ユーザープロファイルにプラグインをインストールします。

    新しいマーケットプレイスから初めてプラグインをインストールする際、VS Code は信頼確認のプロンプトを表示します。確認する前にマーケットプレイスのソースを確認してください。

ソースからプラグインをインストールする

マーケットプレイスを完全に追加することなく、Git リポジトリの URL から直接プラグインをインストールできます。

  • コマンドパレットから「チャット: ソースからプラグインをインストール (Chat: Install Plugin From Source)」を実行します。
  • または、チャットカスタマイズエディターの「プラグイン (Plugins)」ページにある「+」ボタンを選択します。

Git リポジトリの URL (例: https://github.com/rwoll/markdown-review) を入力すると、VS Code がクローンを作成し、プラグインをインストールします。

インストール済みプラグインの表示

拡張機能ビューの「エージェントプラグイン - インストール済み (Agent Plugins - Installed)」セクションには、インストール済みのプラグインが表示されます。このビューから、プラグインの有効化、無効化、アンインストールが可能です。

Screenshot of the Agent Plugins - Installed view in the Extensions view.

インストール済みのプラグインは、チャットビューで「歯車アイコン」>「プラグイン (Plugins)」を選択して管理することもできます。

プラグインの有効化または無効化

プラグインは、グローバルに、または特定のワークスペースに対して有効/無効にできます。

  • 拡張機能ビューの「エージェントプラグイン - インストール済み」セクションで、プラグインのコンテキストメニューを使用します。
  • チャットカスタマイズエディターを使用して、プラグインの有効状態を切り替えます。

有効/無効の状態はプラグイン設定とは別に保存されるため、共有ワークスペース設定には影響しません。

プラグインを無効にすると、そのスキル、エージェント、フック、MCP サーバー、スラッシュコマンドは使用できなくなります。例えば、無効になったプラグインのスキルは「チャット: スキルの設定 (Chat: Configure Skills)」には表示されません。無効化されたプラグインは、チャットカスタマイズエディターや拡張機能ビューでグレーアウトして表示されます。

プラグインのアンインストール

プラグインを削除するには、「エージェントプラグイン - インストール済み」ビューで右クリックし、「アンインストール (Uninstall)」を選択します。外部ソース(npm、PyPI、または外部 Git リポジトリなど)からインストールされたプラグインはディスクから削除されます。マーケットプレイスリポジトリ内にインライン化されたプラグインは、ディスク上に残りますがアクティブではなくなります。

プラグインマーケットプレイスの設定

デフォルトでは、VS Code は copilot-plugins および awesome-copilot からプラグインを検出します。 chat.plugins.marketplaces Open in VS Code Open in VS Code Insiders 設定を使用して、マーケットプレイスを追加できます。

マーケットプレイスは、プラグイン定義を含む Git リポジトリです。いくつかの形式で参照できます。

  • ショートハンド: パブリック GitHub リポジトリの owner/repo。例: anthropics/claude-code
  • HTTPS git リモート: .git で終わる完全な URL。例: https://github.com/anthropics/claude-code.git
  • SCP スタイル git リモート: SSH スタイルの参照。例: git@github.com:anthropics/claude-code.git
  • file URI: すでにディスク上にクローンされたマーケットプレイスリポジトリへの file:/// パス。

プライベートリポジトリもサポートされています。パブリックな検索が失敗した場合、VS Code はリポジトリを直接クローンするフォールバックを行います。

マーケットプレイスのプラグインは、npm や PyPI パッケージなどの外部パッケージソースを参照することもできます。マーケットプレイスのプラグインスキーマ全体については、Claude Code プラグインマーケットプレイスのドキュメントを参照してください。

// settings.json
"chat.plugins.marketplaces": [
    "anthropics/claude-code"
]

ローカルプラグインの使用

プラグインを手動でクローンまたはダウンロードした場合は、 chat.pluginLocations Open in VS Code Open in VS Code Insiders 設定を使用して登録できます。この設定は、ローカルのプラグインディレクトリパスと、有効/無効の状態をマッピングします。

// settings.json
"chat.pluginLocations": {
    "/path/to/my-plugin": true,
    "/path/to/another-plugin": false
}

プラグインを有効にするには値を true に設定し、登録したまま無効にするには false に設定します。

プラグインの更新

VS Code は、コマンドパレットから「拡張機能: 拡張機能の更新を確認 (Extensions: Check for Extension Updates)」を実行した時、または extensions.autoUpdate Open in VS Code Open in VS Code Insiders が有効な場合に 24 時間ごとにプラグインの更新を確認します。

更新を行うと、クローンされたマーケットプレイスリポジトリからの変更がプルされ、外部ソースのプラグインの新しいバージョンがチェックされます。

npm や PyPI から取得したプラグインは、自動的に更新されることはありません。代わりに、拡張機能ビューに「更新 (Update)」ボタンが表示されます。このボタンを選択すると、インストールコマンドを実行する前に確認を求められます。バックグラウンドチェック中に更新が見つかった場合でも、ユーザーが明示的に「更新」を選択するまでアクションは実行されません。

ワークスペースでのプラグイン推奨

プロジェクトでは、ワークスペース設定でプラグイン設定を構成することで、チームメンバーにプラグインを推奨できます。

  • enabledPlugins: デフォルトで有効にすべきプラグインをリストします。初めてチャットメッセージが送信された際に VS Code が通知を表示し、拡張機能ビューの @agentPlugins @recommended の下にこれらのプラグインをリストします。
  • extraKnownMarketplaces: プロジェクト用にマーケットプレイスを追加登録します。これらのマーケットプレイスは、拡張機能ビューで @agentPlugins を検索した際に表示されます。
{
  "extraKnownMarketplaces": {
    "company-tools": {
      "source": {
        "source": "github",
        "repo": "your-org/plugin-marketplace"
      }
    }
  },
  "enabledPlugins": {
    "code-formatter@company-tools": true
  }
}
© . This site is unofficial and not affiliated with Microsoft.