mcpField
S
substrate-browser

substrate-browser

ローカル
github.com/manuelinuxkrブラウザ自動化18 週間前に更新

substrate-browser について

substrate-browserは、AIエージェントがヘッドレスChromiumを操作するためのMCPサーバーです。ページ要素と座標を簡潔なセマンティックグラフで返し、CSSセレクターやXPathを使わずに操作できます。

主な機能

  1. 01簡潔なセマンティックページグラフ
  2. 02要素IDとピクセル座標
  3. 03クリック、入力、選択操作
  4. 04スクロールとキー入力
  5. 05スクリーンショットと履歴

活用シーン

  1. 01HTMLのノイズを抑えたページ確認
  2. 02フォーム入力とドロップダウン選択
  3. 03要素IDを使ったページ操作

MCP 対応

ページ取得、クリック、入力、選択、スクロール、スクリーンショット、履歴操作などをMCPツールとして提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"manuelinuxkr-substrate-browser": {
"command": "npx",
"args": [
"-y",
"substrate-browser"
],
"env": {
"SUBSTRATE_PROXY": "<SUBSTRATE_PROXY>",
"SUBSTRATE_VIEWPORT_WIDTH": "<SUBSTRATE_VIEWPORT_WIDTH>",
"SUBSTRATE_VIEWPORT_HEIGHT": "<SUBSTRATE_VIEWPORT_HEIGHT>"
}
}
}
}
起動コマンドnpx -y substrate-browser
設定が必要な環境変数
SUBSTRATE_PROXYOptional egress proxy URL (http/socks) to route all Chromium traffic through, mitigating SSRF and DNS rebinding risks.
SUBSTRATE_VIEWPORT_WIDTHBrowser viewport width in pixels (Default: 1280)
SUBSTRATE_VIEWPORT_HEIGHTBrowser viewport height in pixels (Default: 800)

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmsubstrate-browser2.0.2

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Substrate

ウェブページを読むために、48Kトークンを無駄にするのはやめましょう。Substrateは一般的なコンテンツページを、LLMが実際に使える約1~4Kトークンに圧縮します。生のHTMLでは約48Kトークンです。

Substrateは、AIエージェントにウェブ上の視覚と操作の手段を提供するMCP サーバーです。あらゆるウェブページから、ボタン、入力欄、リンク、ドロップダウン、チェックボックスなどを含む圧縮されたセマンティックグラフを、正確なピクセル座標とともに抽出し、座標を使ったクリック、入力、選択を実行します。CSSセレクターもXPathも不要です。幻覚もありません。

重要な理由

他のあらゆるブラウザー自動化手法では、ノイズにトークンを浪費します。

手法トークン数抽出時間LLMが得るもの
生のHTML(page.content())約48,0005ms完全なDOMツリー。スクリプト、スタイル、非表示要素、広告のマークアップも含まれます。LLMはノイズに埋もれ、見えない要素をクリックする幻覚を起こします。
ビジョン(スクリーンショット+OCR)約8,000約800msピクセルの塊です。LLMはページを「見る」ことはできますが、正確な対象を指定できません。クリック位置が20pxずれ、フォームの操作に失敗します。
Substrate約1,000~4,000約10~30ms構造化されたJSONです。各要素が何で、どこにあり、どのような状態かを示します。LLMは最初の試行で正しい対象をクリックできます。

計算例: 約110個の要素を含むコンテンツページ(たとえばWikipedia)は、約2,300トークンに圧縮されます。一般的な128Kのコンテキストウィンドウの約1.8%です。LLMのコンテキストが埋まるまで、約55ページ分を抽出できます。生のHTMLでは2ページです。

トークン数は概算値で、代表的なページで実測しています(example.com:約84トークン、Wikipedia:約3.5K、Hacker Newsのトップページ:約4.4K、抽出時間:8~58ms)。ページの密度に応じて増減します。抽出器は出力をMAX_ELEMENTS=400に制限しているため、非常に密度の高いページは全体を出力せず、途中で切り詰められます。計算は単純です。約2.3Kトークンのページなら、⌊128K/2.3K⌋ ≈ 55回抽出できます。

真のメリット — アクションループの短縮:

Without Substrate:                          With Substrate:
navigate → screenshot                       navigate
→ "I see a button" → click (wrong)          → {btn id=3 "Submit" [640,400]}
→ screenshot → "ah, more right"             → click(3) → done.
→ click → "not that either"                 
→ screenshot → ...                          2 tool calls. Task complete.
8-12 tool calls. Task complete.

これはわずかな改善ではありません。ウェブタスクあたり、API呼び出しが5~6倍少なく、レイテンシが5~6分の1になり、コストが5~6分の1になります。

仕組み

Substrateは、Model Context Protocol(MCP)を介して、ヘッドレスChromiumブラウザーとして動作します。LLMエージェントは、10個のシンプルなツールを通じて操作します。

ツール機能
navigateURLを読み込み、ページグラフを取得します(要素数は最大400)
click数値IDで任意の要素をクリックします
type_text入力欄にテキストを入力します(最初に自動でクリア)
select_option値を指定してドロップダウンの項目を選択します
press_keyキーボードキーを押します(Escape、Enter、Tab、矢印キー、修飾キー)
scrollビューポートの80%分だけ上下にスクロールします
screenshotビジュアルスナップショットとグラフを一緒に取得します
go_back / go_forwardブラウザーの履歴を移動します
get_current_url現在のURLを確認します

すべてのナビゲーションツールと操作ツールは、同じ圧縮グラフを返します(get_current_urlはURLのみを返し、screenshotは画像とグラフを返します)。LLMはグラフを読み、要素IDを選び、次のツールを呼び出します。画像の解釈も、HTMLの解析も不要です。IDと座標だけです。

インストールとセットアップ

Substrateは、単独で動作するModel Context Protocol(MCP)サーバーです。使用するためにコードを書く必要はありません。AI アシスタントに追加するだけです。

オプション1:Claude Desktop(推奨)
  1. Claude Desktopの設定ファイルを開きます。
    • macOS:~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows:%APPDATA%\Claude\claude_desktop_config.json
  2. mcpServersブロックにsubstrate-browserサーバーを追加します。
{
  "mcpServers": {
    "substrate-browser": {
      "command": "npx",
      "args": ["-y", "substrate-browser"]
    }
  }
}
  1. Claude Desktopを再起動します。10個のブラウザーツール(小さなハンマーのアイコン)が利用できるようになります。Claudeに「example.comにアクセスして、何が見えるか教えて」と頼むことができます。

*(注:初回実行時に、PlaywrightがChromiumのバイナリを自動的にダウンロードします。システムに**Node.js 20+*がインストールされている必要があります。)

オプション 2:ソースから実行する(開発者向け)

抽出ロジックを変更したり、独自のツールを追加したりする場合:

git clone https://github.com/manuelinuxkr/substrate-b.git
cd substrate-b
npm install
npx playwright install chromium
npm run build
npm start

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。