# substrate-browser [Health: Active]

**Category:** 💰 Finance & Fintech  
**Repository:** https://github.com/manuelinuxkr/substrate-b  
**GitHub Stars:** 1  
**npm Downloads (last month):** 146  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/substrate-browser

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

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "substrate-browser": {
    "command": "npx",
    "args": ["-y","substrate-browser"]
  }
}
```

## Documentation

## 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.

_Full upstream README: https://allmcps.com/mcp/substrate-browser/readme_

