Substrate Browser

io.github.manuelinuxkr由 GitHub 帳號 manuelinuxkr 發布v2.0.2更新於 Oct 24, 2026

Token-first headless browser for AIs. Extracts a tiny semantic graph, cutting HTML bloat by 95%.

概覽

AI 產生的概覽

本機 MCP 伺服器,驅動無頭 Chromium 瀏覽器並回傳精簡的頁面語意圖,讓助理以較低 token 成本瀏覽與操作網頁。

可以做什麼
  • 開啟網址並回傳帶像素座標的壓縮頁面元素圖,最多 400 個元素
  • 依數字 ID 點擊元素、在輸入欄位輸入文字、選擇下拉選項、按下按鍵
  • 捲動頁面、截圖並同時回傳元素圖、前進或後退瀏覽歷史
  • 查詢目前網址
適用情境
適合需要讓助理實際瀏覽網站、填寫表單或點擊操作的場合,同時避免讀取原始 HTML 或解讀截圖造成的高 token 消耗。
執行需求
以 stdio 方式在本機執行,通常透過 npx substrate-browser 啟動。需要 Node.js 20 以上版本,首次執行會由 Playwright 下載 Chromium。可選環境變數 SUBSTRATE_PROXY、SUBSTRATE_VIEWPORT_WIDTH、SUBSTRATE_VIEWPORT_HEIGHT 用於設定出口代理與視窗尺寸。未宣告身分驗證。
安裝前請注意
瀏覽器會在真實網站上執行操作:點擊、輸入、送出表單與跳轉都可能修改或傳送資料。造訪的頁面與輸入的內容會經由瀏覽器離開本機,可能經 SUBSTRATE_PROXY 指定的代理。元素密集的頁面會在 400 個元素處截斷,部分內容可能遺漏。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Substrate Browser,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

Substrate

Stop wasting 48K tokens to read a webpage. Substrate compresses a typical content page into roughly 1–4K tokens your LLM can actually use — vs. ~48K of raw HTML.

Substrate is an MCP server that gives your AI agent eyes and hands on the web. It extracts a compressed semantic graph of any webpage — buttons, inputs, links, dropdowns, checkboxes — with precise pixel coordinates, and handles clicking, typing, and selection via spatial coordinates. No CSS selectors. No xpaths. No hallucination.

Why It Matters

Every other browser automation approach burns tokens on noise:

ApproachTokensExtractionWhat Your LLM Gets
Raw HTML (page.content())~48,0005msFull DOM tree — scripts, styles, hidden elements, ad markup. LLM drowns in noise and hallucinates clicks on invisible elements.
Vision (screenshot + OCR)~8,000~800msA pixel blob. LLM can "see" the page but can't target anything precisely. Clicks land 20px off. Forms fail.
Substrate~1,000–4,000~10–30msStructured JSON: what each element is, where it is, what state it's in. LLM clicks the right thing on the first try.

The math: a ~110-element content page (say, Wikipedia) compresses to roughly ~2,300 tokens — about 1.8% of a typical 128K context window. You can fit roughly ~55 page extractions before the LLM runs out of room. With raw HTML, you get 2.

Token figures are order-of-magnitude, measured live on representative pages (example.com ~84 tok, Wikipedia ~3.5K, Hacker News front page ~4.4K, extraction 8–58ms). They scale with page density; the extractor caps output at MAX_ELEMENTS=400, so very dense pages are truncated rather than emitted in full. The math is arithmetic: on a ~2.3K-token page, ⌊128K/2.3K⌋ ≈ 55 extractions.

The real win — shorter action loops:

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.

That's not a marginal improvement. That's 5-6x fewer API calls, 5-6x less latency, and 5-6x lower cost per web task.

How It Works

Substrate runs as a headless Chromium browser via the Model Context Protocol (MCP). Your LLM agent talks to it through 10 simple tools:

ToolWhat It Does
navigateLoad a URL, get back the page graph (capped at 400 elements)
clickClick any element by its numeric ID
type_textType into an input field (auto-clears first)
select_optionPick a dropdown option by value
press_keyPress a keyboard key (Escape, Enter, Tab, arrows, modifiers)
scrollScroll up/down by 80% of viewport
screenshotGet a visual snapshot + the graph together
go_back / go_forwardBrowser history navigation
get_current_urlCheck where you are

Every navigation and interaction tool returns the same compressed graph (get_current_url returns just the URL; screenshot returns the image plus the graph). Your LLM reads the graph, picks an element ID, and calls the next tool. No image interpretation. No HTML parsing. Just IDs and coordinates.

Installation & Setup

Substrate is a standalone Model Context Protocol (MCP) server. You do not need to write code to use it — you just plug it into your AI assistant.

Option 1: Claude Desktop (Recommended)

  1. Open your Claude Desktop configuration file:
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
  2. Add the substrate-browser server to the mcpServers block:
json
{  "mcpServers": {    "substrate-browser": {      "command": "npx",      "args": ["-y", "substrate-browser"]    }  }}
  1. Restart Claude Desktop. You will now see the 10 browser tools available (a small hammer icon) and you can ask Claude to "Go to example.com and tell me what you see".

(Note: Playwright will automatically download the Chromium binary on the very first run. This requires Node.js 20+ installed on your system).

Option 2: Running from Source (For Developers)

If you want to modify the extraction logic or add your own tools:

bash
git clone https://github.com/manuelinuxkr/substrate-b.gitcd substrate-bnpm installnpx playwright install chromiumnpm run buildnpm start

License

MIT

來源:README.md,提交 803c64b

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v2.0.2最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分