DOMノイズでトークンを浪費しない:Playwright MCPのオプティマイザー層

Dev.to / 2026/4/17

📰 ニュースDeveloper Stack & InfrastructureSignals & Early TrendsTools & Practical Usage

要点

  • この記事では、Playwright MCPのブラウザ自動化が、ナビゲーションのたびに全DOMツリーをモデルへ渡してしまうため、「閲覧して操作する」系のシンプルなタスクでコンテキスト(トークン)が大幅に膨らむ問題を指摘しています。
  • モデルとPlaywrightの間に挟むオープンソースのPlaywright MCPオプティマイザー層を紹介し、不要なマークアップを減らすために関連部分だけを転送する仕組みを提案しています。
  • オプティマイザーは、(1)インタラクティブ要素を優先する、(2)ナビゲーション/メイン/フォーム/フッターなどのページ領域で意味的にグルーピングする、(3)チェックアウトなどタスクに無関係なサイドバーや広告バナーをスキップする、の3つの主なフィルタ規則を適用します。
  • GPT-4を用いた「カート→チェックアウト」の計測では、トークン使用量が大きく減少し、その副次効果として往復レイテンシも改善したと述べています。
  • 著者は、オートメーションエージェント向けに費用と速度の面で有利な選択肢だと位置付けつつ、QAや検証が重いワークフローでは従来のvanilla Playwright MCPの利用を推奨しています。

Playwright MCPを使ってAIによるブラウザ自動化を行ったことがあるなら、そのつらさは分かるはずです。ページ遷移のたびに、DOMツリー全体がモデルのコンテキストに投げ込まれます。「この店で商品を5点注文する」といった単純なフローでも、タスクに関係のないnavbar/sidebar/footerのノイズだけで数十万トークンが燃えます。

そこで、Playwrightの前に小さなMCPレイヤーをかませて、関連する部分だけを転送する仕組みを作りました。オープンソースとして公開しています。

詳細な解説: https://treesoop.com/blog/playwright-mcp-optimizer-token-saving-2026
GitHub: https://github.com/treesoop/claude-native-plugin

問題

Playwright MCPはDOMの全体をシリアライズします:

AI ← {ENTIRE_DOM_JSON} ← Playwright MCP

これは、すべてを把握する必要があるQAではうまく動きます。ですが「閲覧してアクションを実行する」系では、実際に必要な量の5〜10倍のトークンになります。

最適化(オプティマイザ)

AI ← {relevant_only} ← Optimizer ← {full DOM} ← Playwright MCP

フィルタルールは3つです:

  1. インタラクティブ要素を優先: button, input, a — 装飾用のdiv/spanではありません
  2. セマンティックなグルーピング: navigation / main / form / footerの領域をまとめ、モデルが「今どこにいるか」を理解できるようにします
  3. タスクに応じたスキップ: 現在のタスクが「checkout(チェックアウト)」なら、サイドバーのおすすめや広告バナーをスキップします

測定した効果

GPT-4を使った「cart(カート)→ checkout(チェックアウト)」のフローでは、トークンが大幅に減り、副作用として往復レイテンシも改善しました(ペイロードが小さいほどエージェントの判断が速くなるためです)。

万能薬ではありません。DOMの完全な正確性が必要なQAタスクでは、素のPlaywright MCPを使ってください。一般的な閲覧/自動化エージェントなら、このほうが安価で高速です。

ツール比較(当社のテスト)

ツール 強み 向いている用途
playwright-mcp (default) DOMの完全な正確性 QA、複雑なバリデーション
playwright-optimizer (this) トークン効率 自動化エージェント、ブラウジング
vercel-browser-agent コード生成の速さ シンプルなブラウジング
claude-chrome-extension ログイン済みセッションを使用 認証状態が必要なタスク

私たちは、用途に応じて4つすべてを使います。

インストール

npm install -g @treesoop/playwright-optimizer
claude mcp add playwright-opt -- playwright-optimizer
  • MITライセンス
  • サイトごとのプリセットで設定可能
  • --log-tokens 計測用フラグ

TreeSoopの他のOSS: ai-news-mcp, hwp-mcp, whisper_transcription, claude2codex

ブログ: https://treesoop.com/blog