Skip to main content
Glama

課題

Playwright MCPは、Hacker Newsのようなコンテンツの多いページに対して約14,000トークンを送信します。そのほとんどはノイズです。コンテキストウィンドウが埋まり、エージェントは混乱し、コストもかさみます。

Leapfrogは約1,400トークンしか送信しません。同じページ、同じ情報。ノイズを最大10倍削減します。

┌─────────────────────────────────────────────────────┐
│  Playwright MCP                                     │
│  ████████████████████████████████████████  ~14,000   │
│                                                     │
│  Leapfrog                                           │
│  █████                                    ~1,400    │
└─────────────────────────────────────────────────────┘
          tokens per page (Hacker News, real test)

削減率はページの複雑さに応じて2〜10倍です。コンテンツの多いページで最大の効果を発揮し、フォームが密集したページでは最小となります。実際のサイト全体での中央値は約4〜5倍です。

クイックスタート

npx leapfrog --doctor          # verify everything works
npx leapfrog --stealth-audit   # test all 19 stealth patches
npx leapfrog --config          # print MCP config to paste

~/.mcp.json (Claude Code) またはエディタのMCP設定に追加してください:

{
  "leapfrog": {
    "command": "npx",
    "args": ["-y", "leapfrog"],
    "env": {
      "LEAP_MAX_SESSIONS": "15",
      "LEAP_TILE": "true",
      "LEAP_HUD": "true",
      "LEAP_SOUND": "true",
      "LEAP_AUTO_CONSENT": "true"
    }
  }
}

Leapfrogはplaywright (1.6GB) の代わりにplaywright-core (15MB) を使用し、ブラウザをバンドルしていません。以下のいずれかを行ってください:

  • LEAP_CHANNEL=chrome を設定して、インストール済みのChrome/Chromiumを使用する

  • または npx playwright-core install chromium を実行して、バンドルされたChromiumバイナリをインストールする

機能マトリックス

Leapfrog

Playwright MCP

agent-browser

ページあたりのトークン数

~1,200-2,500

~3,800-15,000

~300

並列セッション数

15

1

1

セッションの分離

あり

なし

なし

マルチタブ / ポップアップ

あり

なし

なし

ネットワークインターセプト

あり

なし

なし

コンソールキャプチャ

あり

あり

なし

ステルス / アンチボット

あり

なし

なし

スマート待機 (5種類)

あり

基本のみ

なし

クラッシュ復旧

あり

なし

なし

バッチアクション (100/回)

あり

なし

なし

初期スクリプト注入

あり

あり

なし

ドラッグ / アップロード / リサイズ

あり

あり

なし

セッションごとのプロキシ

あり

なし

なし

人間味の付与 (オプトイン)

あり

なし

なし

認証プロファイルの再利用

あり

なし

なし

Cookieの永続化

あり

なし

なし

ページ分類 (18種類)

あり

なし

なし

セッションメモリ

あり

なし

なし

APIインテリジェンス

あり

なし

なし

適応型待機 + 自動再試行

あり

なし

なし

CAPTCHA自動解決

あり

なし

なし

自己改善 (9次元)

あり

なし

なし

記録 / 再生

あり

なし

なし

ページネーション抽出

あり

なし

なし

増分スナップショット (差分)

あり

なし

なし

ステルス自己テストCLI

あり

なし

なし

SSRF保護

あり

なし

なし

ステルス機能

Leapfrogは、デフォルトで有効な19種類のアンチ検知パッチを搭載しています (LEAP_STEALTH=true)。これらは、CreepJSやfingerprint-proのようなフィンガープリントサービスが実際にチェックするベクトルをカバーしています:

  • Client Hintsブランド (HeadlessChromeを削除)

  • navigator.webdriver を強制的に undefined に設定

  • WebGLベンダー/レンダラー (SwiftShaderを実際のGPU文字列に置換)

  • 接続RTT (非ゼロ)

  • アラート閉鎖タイミング (人間らしい速度の遅延)

  • ウィンドウの外側/内側の高さオフセット

  • MIMEタイプ配列の生成

  • ユーザーエージェントからのプラットフォーム推論

  • chrome.app エミュレーション

  • iframe contentWindow 保護

  • メディアコーデックのなりすまし (canPlayType)

  • document.hasFocus() のオーバーライド

  • ソースURLコメントの削除

  • カスタムUA + ステルスの共存 (カスタムユーザーエージェントでもステルスコンテキストが無効にならない)

  • CDP Runtime.enable 検知 (Error.prepareStackTrace フィルタ)

  • Permissions APIのなりすまし (20種類以上の権限タイプ)

  • AudioContextフィンガープリントノイズ (getChannelData/getFloatFrequencyData)

  • WebRTC IP漏洩防止 (ICE候補フィルタリング)

  • フォント列挙フィンガープリントのなりすまし

セッションごとのステルス制御:特定のセッションで無効にするには、session_createstealth: false を渡してください。

人間味の付与 (実験的)

LEAP_HUMANIZE=true を設定すると、人間のようなブラウザ操作が有効になります。これはオプトイン機能であり、より現実的な動作と引き換えにレイテンシが追加されます。6つのモジュールがあります:

  • マウス — フィッツの法則のタイミングと微細な震え(ジッター)を伴うベジェ曲線パス

  • タイピング — 対数正規分布のキー間遅延(中央値200ms)、キー押下時間、バイグラムを考慮した速度、ロールオーバータイピング

  • スクロール — 加速と減速を伴う慣性シミュレーション(タッチパッド/マウスホイールの物理演算)

  • 一時停止 — アクション間の認知的な間をシミュレートする「思考」遅延

  • フィンガープリント — 一貫性のあるブラウザフィンガープリント生成(プラットフォーム、デバイスメモリ、GPU、タイムゾーン)

  • ユーティリティ — 共有数学プリミティブ(ボックス=ミュラー変換、分布)

ページ分類

すべての navigate および snapshot 呼び出しは、重み付けされた信号スコアリングを使用してページタイプを自動的に分類します(LLMは不要)。18種類:

login · search-results · product · product-list · checkout · article · dashboard · form · error · challenge · landing · documentation · profile · media · feed · qa · ecommerce · unknown

分類により、よりスマートなスナップショット抽出が可能になります。ログインページではフォームフィールド、記事ではコンテンツ、ダッシュボードではインタラクティブ要素が抽出されます。

ハーネスインテリジェンス

ハーネスはセッション内のすべてのアクションを追跡し、結果を分類します:

  • アクション結果の分類SUCCESS, SILENT_CLICK, NAVIGATION, WRONG_ELEMENT, BLOCKED, ERROR, PENDING

  • ボットリダイレクト検知 — アクション後にサイトがチャレンジページやブロックページにリダイレクトされたことを検知

  • ループ検知 — エージェントが同じ要素をクリックし続けたり、URL間を往復したり、アクションを繰り返したりしている場合に警告

  • セッションメモリsession_memory ツールがコンテキストウィンドウ圧縮後のアクションを想起

永続的なブラウザプロファイルは、永続コンテキストで空を返す storageState() ではなく、context.cookies() + addCookies() を使用するようになりました。認証状態はセッションをまたいで保持されます。

適応型待機 + ステルスエスカレーション

ページ読み込みに失敗した場合、自動的にフォールバック戦略で再試行します:

  1. load を試行(最速) — 空の場合は networkidle で再試行(10秒上限)

  2. networkidle がタイムアウトした場合(Amazonや広告の多いサイト)、domcontentloaded にフォールバック

  3. ブロック/チャレンジされた場合、ステルスをエスカレート:ランダム遅延 → JSチャレンジ待機 → 新しいフィンガープリントでセッションをローテーション

  4. プロファイルセッション(認証済み)はセッションが破棄されることはありません — レベル2でハードキャップ

navigateautoRetry: false を設定するとオプトアウトできます。最大エスカレーションは maxRetryLevel (0-5, デフォルト3) で制御します。

記録 / 再生

セッションのアクション履歴を再生可能な記録としてエクスポートし、新しいセッションで再生できます:

  • session_export — セッション履歴からパラメータ化されたJSONまたはPlaywrightスクリプトを作成します。@eN 参照は安定したCSSセレクタに解決されます。メールアドレス、パスワード、URLを自動的に {{placeholders}} として検出します。

  • session_replay — パラメータオーバーライドを伴う記録を再生します。onError: 'stop' または 'skip' をサポートしています。

一度限りのエージェントワークフローを再利用可能な自動化に変換します。

ページネーション抽出

1回のツール呼び出しで複数ページにわたるデータを抽出します:

  • Click-next — 「次へ」ボタン、ページネーションリンク、「もっと見る」ボタンを自動検出

  • 無限スクロール — DOMハッシュ比較を通じてスクロールし、新しいコンテンツを待機

  • URLパターン?page={page} やカスタムパターンをインクリメント

ページあたり3〜4回のツール呼び出しを置き換えます。上限:50ページ、合計10万文字。次へボタンがない、ページが空、コンテンツが重複、またはボット検知された場合に停止します。

増分スナップショット

diff ツールは、前回のスナップショット以降に変更された部分(追加、削除、変更)のみを返します。監視やポーリングワークフローにおいて大幅なトークン削減を実現します。

HUDオーバーレイ (LEAP_HUD=true)

ヘッド付きで実行する場合、Leapfrogは各セッションに視覚的なフィードバックをオーバーレイします:

  • クリックリップル — クリック座標に広がる緑色の円(エージェントのアクションのみ)

  • ターゲットへのズーム — クリックされた要素にブラウザが一時的に1.15倍ズームし、エージェント(および人間)がタイル状のウィンドウで何が起きているかを視覚的に追跡可能

  • ターゲットへのスクロール — クリック前に scrollIntoView を実行し、エージェントが何をクリックしようとしているかを確認可能

設計上最小限に抑えています。境界線、ステータスバー、カーソルオーバーレイはなく、重要なフィードバックのみを表示します。

マルチターミナルタイル表示 (LEAP_TILE=true)

複数のLeapfrogインスタンスがファイルベースの調整を通じて画面を共有します。各インスタンスは自身のウィンドウを追跡し、TilesCoordinatorがグローバルなグリッドスロットを割り当てます。重複や手動配置は不要です。LEAP_TILE=true(プライマリインスタンスの場合は LEAP_TILE=master)を設定してください。タイル間のパディングは LEAP_TILE_PADDING (デフォルト8px) で設定可能です。

人間の介入

Leapfrogは、CAPTCHA、ログインフォーム、OAuthリダイレクト、Cloudflareチャレンジなど、人間の介入が必要な状況を自動検知し、一時停止する前に自己解決を試みます。

  • 最初に自動解決を試行: reCAPTCHAチェックボックス、Cloudflare検証ボタン、一般的な検証/続行ボタンをクリックし、その後2回目の再試行を行います。すべて助けを求める前に行われます。

  • 外部ソルバー: LEAP_CAPTCHA_PROVIDERLEAP_CAPTCHA_API_KEY を設定して、CapSolver、2Captcha、またはNopeCHAを統合します。

  • 学習: ドメインごとに成功した解決方法を記憶し、再訪問時に既知の成功方法を最初に試します。

  • reCAPTCHA、hCaptcha、Turnstile、ログインフォーム、OAuthリダイレクト、Cloudflareチャレンジを検知。

  • 介入が必要な場合、タブタイトルが「NEEDS HUMAN」に変更されます。

  • wait_for_human ツール — エージェントがスタックしたときに呼び出し、ユーザーが解決するかナビゲートするまでブロックします。

10種類のフレームワーク(OneTrust, CookieBot, TrustArc, Quantcast, Didomi, Cookielaw, Osano, Usercentrics, + その他)およびテキストマッチングフォールバックを使用して、Cookie同意バナーを自動的に閉鎖します。再訪問時に即座に再生できるよう、ドメインごとのセレクタキャッシュを行います。

トレース (LEAP_TRACE=true)

スクリーンショットとDOMスナップショットを含むセッションごとのPlaywrightトレース。session_export_trace ツールを使用して trace.playwright.dev で表示可能なZIPファイルをエクスポートします。セッション破棄時に自動保存されます。

自己改善

Leapfrogは訪問するたびに学習します。ドメインごとの知識は ~/.leapfrog/domains/{domain}.json に永続化されます。9つの次元すべてが自動です:

#

次元

内容

1

待機戦略

ドメインごとの最適な待機方法(networkidle vs domcontentloaded vs load)と平均タイミングを学習

2

ステルス階層

ブロック検知時に0→3へ自動エスカレート(1時間で2回以上のブロック)。再訪問時は学習した階層から開始

3

同意セレクタ

Cookieバナーの閉鎖セレクタを記憶し、再訪問時に自動クリック

4

チャレンジ解決

成功したCAPTCHA方法(reCAPTCHAチェックボックス、Cloudflare検証など)を記録し、既知の成功方法を最初に試行

5

安定要素の抑制

3回以上の訪問で見られるナビゲーション/フッター/サイドバー要素を特定し、スナップショットから抑制(成熟したドメインで30-40%のトークン削減)

6

セレクタ修復

要素のフィンガープリント → セレクタを記憶し、訪問をまたいで壊れた参照を修復

7

APIエンドポイントキャッシュ

発見されたAPIエンドポイントをセッション間で永続化

8

インタラクションヒートマップ

エージェントが実際に使用する要素を追跡し、未使用要素を抑制 (近日公開)

9

戦略選択

ステルス設定最適化のための敵対的バンディット (EXP3) (近日公開)

500ドメインでLRUエビクションを実行。domain_knowledge ツールで検査可能です。

SSRF強化

URL検証により、16進数エンコードされたIP (0x7f000001)、8進数表記 (0177.0.0.1)、CGNAT範囲 (100.64.0.0/10)、および内部アドレスに解決されるリダイレクトチェーンを

Install Server
A
security – no known vulnerabilities
A
license - permissive license
B
quality - B tier

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/anthonybono21-cloud/leapfrog'

If you have feedback or need assistance with the MCP directory API, please join our Discord server