このクックブックはMario Zechnerの“What if you don’t need
MCP?”,
軽量なブラウザヘルパーをチームで共有できるよう、再利用可能なFactoryスキルとして調整されています
新しいサービスを立ち上げずに共有できます。
start.js、nav.js、eval.js、screenshot.js、pick.js)と簡潔なSKILL.mdをバンドルしています。これらにより、Factory Droidsはポート9222でChromeを確実に起動し、既存のタブを操作し、構造化データをスクレイピングし、開発者マシン上で完全に動作しながら視覚的証拠を取得する信頼性の高い方法を提供します。
このスキルを使用する場合
- タスクを完了するために実際のブラウザコンテキスト(認証済みセッション、本番環境でのみ発生する動作、視覚的リグレッション)が必要な場合。
- 専用のMCPサーバーを構築することなくDOM状態を検査または抽出したい場合。
- QAノート、バグトリアージ、またはドキュメント作成の一環としてスクリーンショットまたはDOM要素メタデータの取得が必要な場合。
- チームメンバーが追加インフラストラクチャなしでローカルで実行できるポータブルでgit管理されたバンドルを好む場合。
スクリプトが提供する機能
| スクリプト | 目的 | 典型的な使用方法 |
|---|---|---|
start.js | :9222でリモートデバッグ機能を有効にしてChromeを起動し、--profileによるオプションのプロファイル同期を行います。 | ~/.factory/skills/browser/start.js --profile |
nav.js | アクティブなタブをナビゲートするか、--newが渡された際に新しいタブを開きます。 | ~/.factory/skills/browser/nav.js https://example.com --new |
eval.js | フォーカスされたタブで任意のJavaScript(async対応)を実行し、構造化された結果を出力します。 | ~/.factory/skills/browser/eval.js "document.title" |
screenshot.js | 現在のビューポートを$TMPDIRに保存されるタイムスタンプ付きPNGとしてキャプチャします。 | ~/.factory/skills/browser/screenshot.js |
pick.js | ビジュアルピッカーを注入して、DOM ノードをクリックしてタグ/ID/クラス/テキストメタデータを返すことができます。 | ~/.factory/skills/browser/pick.js "送信ボタンをクリック" |
puppeteer-coreに依存し、あなたが制御するChromeインスタンスに接続します。すべてがローカルで実行されるため、既存のクッキーや認証トークンがマシンから外に出ることはありません。
セットアップ
スクリプトとパッケージメタデータをコピー
start.js、nav.js、eval.js、screenshot.js、pick.js、および
package.jsonを.factory/skills/browser/に配置します(または共有dotfilesリポジトリへシンボリックリンクします)。依存関係をインストール
npm install --prefix .factory/skills/browser puppeteer-coreを実行し、その後chmod +x .factory/skills/browser/*.jsを実行します。スキル定義
以下を.factory/skills/browser/SKILL.mdにコピーしてください:
