Substrate Browser logo

Substrate Browser

Headless Chromium browsing for AI agents with compact page graphs and ID-based web interactions.

Install Substrate Browser

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "substrate-browser": {
      "command": "npx",
      "args": [
        "-y",
        "substrate-browser"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

We couldn’t confirm it starts correctly

We ran the install command but it didn't respond within our test window — this can mean a slow first-time install rather than a real problem.

npx -y substrate-browser

No response to initialize.

This is an experimental automated check and can have false negatives — missing environment variables, a slow cold install, etc. It doesn’t necessarily mean something’s wrong. Last checked 8d ago.

Overview

The substrate-browser MCP server gives AI agents a headless Chromium browser that represents webpages as compact semantic graphs. It exposes tools for navigation, clicking, text entry, dropdown selection, keyboard input, scrolling, screenshots, and browser history. Each page graph identifies interactive elements by numeric ID and includes state and pixel coordinates, reducing reliance on raw HTML or visual interpretation. Reach for it when an agent needs to inspect and operate webpages while keeping browser output small.

Use cases

  • Browse content pages with limited model context
  • Fill web forms using identified inputs
  • Select dropdown values without CSS selectors
  • Navigate multi-step webpages with browser history
  • Inspect page structure through compact graphs

Key features

  • Headless Chromium browser
  • Compressed semantic page graphs
  • Element IDs and pixel coordinates
  • Click, typing, selection, and keyboard tools
  • Screenshot output with page graphs
  • 400-element extraction cap

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 3d ago

Recent health check succeeded.

11/11 checks healthy over the last 57d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 12d ago via OSV.dev · substrate-browser (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars1Stargazers on the source repository.
npm downloads119Package downloads in the last 30 days.
Last commit2mo agoMost recent push to the default branch.
Install checkInconclusiveDidn't respond in our test window — often a slow first install.

How Substrate Browser works

What the substrate-browser MCP server does

The substrate-browser MCP server connects an AI agent to a headless Chromium browser. Instead of returning a complete DOM containing scripts, styles, hidden nodes, and other page markup, it extracts a compact semantic graph of the visible page. The graph describes elements such as links, buttons, text fields, dropdowns, and checkboxes, along with their labels, state, numeric identifiers, and pixel positions.

This representation is intended for agents that need to browse and interact with webpages without spending most of their context on HTML. The README gives representative extraction sizes of roughly 1,000–4,000 tokens, depending on page density. Output is capped at 400 elements, so very dense pages may be truncated.

How it works

The browser exposes an MCP interface with ten tools. An agent first calls navigate with a URL and receives the current page graph. It can then select an element by its numeric ID and call an interaction tool. Navigation and interaction results generally include the updated graph, allowing the next action to be based on the current page state.

The interaction model does not require CSS selectors or XPath expressions. click targets an element ID, while type_text enters text into a field and clears its existing contents first. select_option chooses a dropdown value. press_key supports keys such as Enter, Escape, Tab, arrow keys, and modifiers. scroll moves by approximately 80% of the viewport.

screenshot returns a visual image together with the semantic graph when a visual reference is useful. go_back and go_forward control browser history, and get_current_url reports the current address. The graph contains coordinates, but the normal interaction flow uses element IDs rather than asking the model to estimate click locations from an image.

Setup and configuration

The substrate-browser MCP server can be added to Claude Desktop through its MCP configuration. The documented command uses npx -y substrate-browser, so the package is obtained and started through Node.js. After changing the configuration, restart Claude Desktop to expose the browser tools.

Node.js 20 or newer is required. On the first run, Playwright downloads the Chromium binary, which requires an internet connection and local permission to install the browser dependency.

Developers who want to change extraction behavior can run the project from source. The documented flow is to clone the repository, install npm dependencies, install Chromium with Playwright, build the project, and start it with the provided npm scripts.

Tools and capabilities

The substrate-browser MCP server provides:

  • navigate for loading a URL and extracting its page graph.
  • click for activating an identified element.
  • type_text for entering text into an input.
  • select_option for choosing a dropdown value.
  • press_key for keyboard actions.
  • scroll for moving through a page.
  • screenshot for returning an image and graph together.
  • go_back and go_forward for browser history.
  • get_current_url for reading the active URL.

The server is licensed under MIT.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Substrate Browser

substrate-browser is an MCP server that connects an AI agent to a headless Chromium browser for web pages. Its main tools navigate to URLs, extract compressed semantic graphs, click elements by numeric ID, enter text, select options, press keys, scroll, capture screenshots, and move through browser history.

Install it by adding the documented npx command to Claude Desktop’s MCP configuration: `npx -y substrate-browser`. Restart Claude Desktop afterward. Node.js 20 or newer is required, and Playwright downloads Chromium on the first run.

It identifies substrate-browser as a standalone MCP server, but it does not provide Cursor-specific configuration or confirm Cursor compatibility.

It extracts a compact semantic graph instead of returning the full HTML document. The graph focuses on page elements such as links, buttons, inputs, dropdowns, and checkboxes, with identifiers, state, and coordinates; output is capped at 400 elements.

Yes. It can click identified elements, type into input fields, choose dropdown options, and send keyboard keys.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewSubstrate Browser AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/substrate-browser?style=directory)](https://allmcps.com/mcp/substrate-browser)
HTML Embed
<a href="https://allmcps.com/mcp/substrate-browser"><img src="https://allmcps.com/api/badge/substrate-browser?style=directory" alt="Substrate Browser on AllMCPs" /></a>