extensiondev について
extensiondevは、ブラウザー拡張機能の開発者やコーディングエージェント向けのMCPサーバーです。プロジェクトのひな形作成、ブラウザー上での検査、クロスブラウザー検証に加え、任意で公開機能も利用できます。
主な機能
- 0150以上のテンプレートから作成
- 02ホットリロードで拡張機能を実行
- 03DOM、ログ、ストレージ、コンテキストの検査
- 04期待する動作を判定付きでテスト
- 05マニフェスト検証とリリースビルド
活用シーン
- 01テンプレートからブラウザー拡張機能を作成
- 02実行中のブラウザーで拡張機能をデバッグ
- 03対応ブラウザー間の動作を確認
- 04拡張機能をビルドして審査に提出
MCP 対応
MCPクライアントに、ブラウザー拡張機能の作成、実行、検査、テスト、ビルド用ツールを提供します。任意のプラットフォームツールでは、プレビュー、共有、リリース、ストア審査への提出ができます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
23掲載時のツール一覧 · 今日に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| install | boolean | いいえ | 作成後に依存関係をインストールします |
| template | string | いいえ | extension.dev カタログのテンプレート slug(例:'react'、'ai-claude'、'content-vue')。extension_templates でテンプレートを見つけられます。 |
| parentDir | string | いいえ | プロジェクトを作成するディレクトリ。デフォルトは MCP サーバープロセスの cwd であり、呼び出し元の cwd ではありません。作成場所を指定したい場合は必ず渡してください。エイリアス:parent、into。 |
| projectName | string | はい | 拡張機能プロジェクトの名前(ディレクトリ名として使用)。エイリアス:name。 |
詳細
@extension.dev/mcp

AI エージェントに、ブラウザー拡張機能開発のための手を与えましょう。35 個の MCP ツールで、クロスブラウザー拡張機能をお使いのマシンでスキャフォールド、実行、調査、デバッグ、テスト、ビルドできます。さらに、共有や公開に使えるプラットフォームレーン(プライベートアルファ)も利用できます。
claude mcp add extension-dev npx @extension.dev/mcp
Claude Code、Claude Desktop、Cursor、およびあらゆる MCP クライアントで利用できます。
extension.dev · ドキュメント · テンプレート · Discord
拡張機能向け MCP サーバーが必要な理由
拡張機能の問題は、気づかないうちに発生します。注入されないコンテンツスクリプト、開かないパネル、エラーもなく undefined を返す権限などです。これらのツールを使えば、エージェントが実行中のブラウザーを直接確認できるため、推測ではなく証拠に基づいてデバッグできます。
- スキャフォールド:templates.extension.dev の 50 種類以上のテンプレートから作成するか、既存のプロジェクトにポップアップ、サイドバー、コンテンツスクリプトを追加できます
- 実行:Chrome、Firefox、Edge、および以下のすべてのブラウザーで HMR を有効にして開発サーバーを実行できます。macOS の Safari にも対応しています(HMR はまだ利用できません)
- 確認:ライブ DOM、すべての拡張機能コンテキストのログ、
chrome.storage、読み込み済み拡張機能の一覧を確認できます - 操作:任意のコンテキストでコードを評価し、アクションボタンやコマンドを実行して、拡張機能を再読み込みできます
- テスト:実行中の拡張機能に対する期待事項を指定すると、それぞれについて判定結果が得られます
- 公開:マニフェストのクロスブラウザー検証と、本番用のビルドができます。プラットフォームレーンでは、プレビューリンクの共有、ビルドの昇格、ストアへの申請も行えます
extension.dev がスポンサーを務めるオープンソースのフレームワーク、Extension.jsを基盤に構築されています。
動作の様子
ブラウザー
extension_dev は、指定したブラウザーで拡張機能を開きます。
| Google Chrome | Chromium | Microsoft Edge | Brave | Opera | Mozilla Firefox | Apple Safari |
Chromium 系と Firefox では、HMR、制御、評価、検査、アサーションを利用できます(Firefox では CDP を使わず、デバッガープロトコルとエージェントブリッジを使用します)。Safari では macOS 上で開発とビルドを利用できますが、HMR と検査には対応していません。Safari で利用できる機能の全一覧は、Safari をご覧ください。さらに、Vivaldi、Yandex、Waterfox、Zen、Floorp、およびパスで指定した任意の Chromium または Gecko バイナリにも対応しています。
クライアント
| Claude Code | Claude Desktop | Cursor | VS Code | Codex |
セットアップ
Claude Code
claude mcp add extension-dev -- npx @extension.dev/mcp --features=local,platform
またはプラグインとしてインストールすると、MCP サーバーと /extension、/extension-add、/extension-debug、/extension-publish コマンドをまとめてセットアップできます。
/plugin marketplace add extensiondev/mcp
/plugin install extension-mcp@extensiondev-mcp
Cursor
または、以下の .mcp.json ブロックを .cursor/mcp.json に貼り付けます。
VS Code
code --add-mcp '{"name":"extension-dev","command":"npx","args":["@extension.dev/mcp","--features=local,platform"]}'
または、"type": "stdio" をエントリーに指定して、servers の下に貼り付けます。
Codex
codex mcp add extension-dev -- npx @extension.dev/mcp --features=local,platform
または、同じ command と args を含む [mcp_servers.extension-dev] テーブルとして、~/.codex/config.toml に記述します。
その他のクライアント(Claude Desktop と .mcp.json)
.mcp.json:
{
"mcpServers": {
"extension-dev": {
"command": "npx",
"args": [
"@extension.dev/mcp",
"--features=local,platform"
]
}
}
}
フラグ
- デフォルトでは、このマシンで動作する35個中24個のツールがサーバーによって公開されます(11個のプラットフォームツールは無効です)。
--features=local,platformを指定すると、プラットフォームグループが追加されます。環境変数:EXTENSION_DEV_FEATURES。 --no-shipを指定すると、他の人の目に触れるものを伴うすべての呼び出し(公開、昇格、実際の送信、共有プレビュー、取り消し)が拒否されます。環境変数:EXTENSION_DEV_NO_SHIP=1。--project <workspace>/<project>を指定すると、サーバーを1つのプロジェクトに固定します。環境変数:EXTENSION_DEV_PROJECT。- プラットフォーム操作がデスクトップ環境(ヘッドレスでもCIでもなく、ディスプレイがあるLinux環境)で
approval-requiredを返した場合、サーバーはデフォルトのブラウザーで承認ページを一度開きます。--no-shipまたはEXTENSION_DEV_NO_AUTO_OPEN=1を指定すると、この動作は無効になります。
拒否された呼び出しは、変更すべきフラグとともにE_TOOL_DISABLEDを返します。ストアへの送信と安定版への昇格に対する人間の承認、各ツールが持つMCPアノテーション、ページに書き込まれたテキストを囲む<untrusted-data-ID>のフェンスについては、サーバーフラグを参照してください。
テレメトリー
extension_createは、スキャフォールドの作成に成功すると、PostHogのus.i.posthog.comにdraft_seededイベントを1件送信します(テンプレートのスラッグ、ソースとコミット、プロセスごとにランダムなセッションIDを含みます。パスや名前は含みません)。プラットフォームツールは呼び出し時にインストールごとのIDヘッダーを送信します。EXTENSION_DEV_NO_TELEMETRY=1またはDO_NOT_TRACK=1を設定すると、両方が停止します。ペイロードの全項目はテレメトリーに記載されています。
スキルと組み合わせる
このサーバーはエージェントに手段を提供し、@extension.dev/skillは判断力を提供します。クロスブラウザーのルール、見落としやすいサイレント失敗の注意点、デバッグ手順、ストアのチェックリストが、オープンなAgent Skills形式で用意されています。このパッケージには、Claude Codeのルールとclaude/内の4つのスラッシュコマンドも含まれています。
npm i -D @extension.dev/skill
mkdir -p .claude/skills && cp -R node_modules/@extension.dev/skill/skills/extension-dev .claude/skills/
ツール
デフォルトで有効な、このマシンで動作する24個のツール:
| Tier | ツール | 説明 |
|---|---|---|
| build | extension_create | テンプレートからスキャフォールドを作成 |
| build | extension_templates | 50 以上のテンプレートを参照し(list)、テンプレートのソースを確認(source) |
| build | extension_docs_search | キーワードで Extension.js と extension.dev のドキュメントを検索 |
| build | extension_add_feature | 既存プロジェクト向けに、オプションページ、ポップアップ、サイドパネル、コンテンツスクリプト、開発者ツールパネル、新しいタブページを計画 |
| build | extension_build | 本番用にビルド |
| run | extension_dev | HMR 対応の開発サーバー |
| run | extension_start | 本番用ビルドをビルドして起動(build: false の場合は既存の dist を起動し、outputPath の場合は任意のビルド済み展開ディレクトリを起動) |
| run | extension_wait | 開発サーバーの準備完了コントラクトをポーリング |
| run | extension_stop | dev/start/preview セッション(サーバーとブラウザー)を停止 |
| see | extension_manifest_validate | クロスブラウザーのマニフェスト検証 |
| see | extension_analyze | ディスク上のビルド済み拡張機能を静的解析 |
| see | extension_inspect | 実行中の拡張機能を詳細にライブ検査(閉じたシャドウルート、プローブ) |
| see | extension_dom_snapshot | エージェントブリッジ経由で、選択したタブまたは拡張機能サーフェスの浅い DOM スナップショットを取得 |
| see | extension_screenshot | 開いている拡張機能サーフェスまたはページのスクリーンショットを、セッションのデバッグポート経由で .png として保存 |
| see | extension_list_extensions | 読み込まれている拡張機能を一覧表示(Chromium と Firefox) |
| see | extension_logs | すべてのコンテキストからログをストリーミング |
| see | extension_doctor | 開発セッションを段階ごとに診断(準備完了コントラクト、ポート、トークン、エグゼキューター、ブラウザー) |
| see | extension_theme_verify | Chrome が実際に描画する色と照らし合わせて、Chrome テーマのマニフェストを検証 |
| test | extension_assert | 実行中の拡張機能に対する期待値を指定し、合格、不合格、または判定不能のいずれかの判定を取得 |
| act | extension_eval | コンテキスト内で評価(extension_dev で allowEval: true が必要) |
| act | extension_storage | chrome.storage を読み書き |
| act | extension_reload | 拡張機能またはタブを再読み込み |
| act | extension_open | サーフェス(ポップアップ、オプション、サイドバー、開発者ツールパネル、オーバーライドページ)を開く/action、command を実行 |
| browsers | extension_browsers | ブラウザーを検出、一覧表示、インストール、アンインストール |
--features=local,platform を有効にすると、extension.dev プラットフォームに接続する 11 個(プライベートアルファ版):
| Tier | Tool | Description |
|---|---|---|
| platform | extension_auth | extension.dev で、1 つのプロジェクトまたは複数のプロジェクトにデバイスログインし、ログイン状態の確認やログアウトを行います |
| platform | extension_workspace_create | デバイス承認を通じて、ヘッドレスで extension.dev ワークスペースを作成します。承認者がその所有者になります |
| platform | extension_project_create | デバイス承認を通じて、ビルド済み拡張機能用の extension.dev プロジェクトを作成します。または、1 回の承認で複数のプロジェクトをヘッドレスで作成します |
| platform | extension_preview_web | Web エミュレーターでビルドを表示し、リンクとして共有します |
| platform | extension_shares | 共有したすべてのリンクを一覧表示し、プラットフォームのビルドをリンクとして共有して、リンクを完全に取り消します |
| platform | extension_publish | extension.dev がすでに保持しているビルド用の共有可能なリンクを発行します(アップロードは行われません) |
| platform | extension_release_promote | ヘッドレスで、ビルドをリリースチャンネルに昇格します |
| platform | extension_submit | extension.dev を通じて、Chrome、Firefox、Edge、Safari のストア審査に提出します |
| platform | extension_release_status | リリースチャンネル、リリース履歴、最近のビルド、ストアの設定、提出状況、審査状況を読み取ります |
| platform | extension_builds | プラットフォームのビルド(最近のビルド、個々のビルドの成果物と整合性、その CI ログ)を読み取り、整合性レポートと照合して検証済みのビルドパッケージをディスクに保存し、再ビルドを開始し、所有者のトークンを使って通常の呼び出しとしてビルド設定を変更し、リリースチャンネルを追加します |
| platform | extension_workspace | プロジェクトのログイン情報を使ってワークスペースを読み取ります。プランと上限、プロジェクトと最後のビルド、使用状況、プロジェクトの設定を確認できます |
開発セッションには、extension_storage、extension_reload、extension_open、extension_dom_snapshot が使用する制御チャンネルが含まれます。このチャンネルはローカルで、同じマシン上の同じユーザーが使用し、extension_dev に allowControl: false を指定しない限り有効です。extension_eval は、extension_dev に allowEval: true を渡すまで無効のままです(この指定は制御も有効にします)。2 回目の呼び出しを行っても、セッションのゲートは変わりません。必要な指定と replace: true を付けて extension_dev を再度呼び出すと、最初のセッションが停止します。
推測するのではなく、アサーションする
ほかのすべてのツールは読み取り結果を返します。extension_assert は期待する結果を指定し、判定結果を返します。
{
"projectPath": "/path/to/extension",
"expect": [
{ "assert": "background-worker-booted" },
{ "assert": "surface-rendered", "surface": "popup", "selector": "[data-testid=root]" },
{ "assert": "storage-key-present", "key": "settings", "area": "local" },
{ "assert": "console-errors-empty", "context": ["background", "popup"] },
{ "assert": "content-script-injected", "url": "https://shop.example/cart" }
]
}
各チェックの結果は pass、fail、inconclusive のいずれかで、すべてのチェックに合格した場合のみ実行全体が合格となります。inconclusive は、現時点でこのプラットフォームではその質問を検証できないことを意味します。チェックには、回答に必要な証拠を示す settledBy が含まれます。コンテンツスクリプトのチェックは、そのスクリプト自身が書き込んだ行でのみ合格します。ビルドされていないセッションでの「コンソールエラーなし」は判定不能です。また、セッションが拒否した読み取り(allowControl: false を指定して開始したセッションでの chrome.storage)も失敗ではなく、判定不能となります。
Safari
Safari の開発セッションは、ほかのすべてのエンジンと同じブリッジで実行されます。Extension.js 4.1.21 以降では、extension_dev に browser: "safari" を指定すると(macOS と Xcode が必要です)、アプリをビルドして開き、保存するたびに再読み込みし、ログをストリーミングします。Safari の MV3 バックグラウンド CSP は eval をブロックします。extension_inspect に使える CDP または RDP の経路はなく、タブを開くには safaridriver セッションが必要です。制限事項は Safari に記載されています。
プラットフォーム(プライベートアルファ版)
プラットフォームツールは11個あり、エージェントを extension.dev に接続します。サーバーを --features=local,platform を指定して起動するまで無効のままです。また、共有、公開、プロモーション、提出にはログインが必要です。
npx @extension.dev/mcp login --project <workspace>/<project>
extension.dev/device でコードを承認します。GitHub トークンがご利用のマシンに送られることはありません。プロジェクトスコープのトークンはローカルに保存され、エージェントに返されることはなく、最長7日間有効です。share: true を指定した extension_preview_web は、直前にビルドした成果物をアップロードし、ウェブエミュレーターでそのバイト列を表示するリンクと、expiresAt および revokeUrl を返します。extension_publish は extension.dev がすでに保持しているビルドの共有可能な URL を返します。extension_submit は、ビルド済みの拡張機能を extension.dev 経由でストア審査に提出します。ストアの認証情報は extension.dev が保持し、既定ではドライランとして実行されます。
![]() | ![]() | ||
|---|---|---|---|
| Chrome ウェブストア | Firefox アドオン | Edge アドオン | App Store |
詳細、承認フロー、複数のプロジェクトへの一括ログインについては、ビルド中の成果物を共有する、公開と提出は別の操作、ログインをご覧ください。
コミュニティ
- extension.dev の Discord に参加して、サポートやフィードバックを受けましょう
- templates.extension.dev で本番環境向けのテンプレートを探しましょう
- GitHub でプラットフォームの公開パッケージをチェックしましょう
- GitHub で Extension.js フレームワークの問題を報告しましょう
ライセンス
Apache-2.0 (c) 2026 Cezar Augusto および extension.dev のコラボレーター。詳しくは LICENSE をご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。



