Ecobrowser logo

Ecobrowser

MCP browser automation with structured page snapshots, durable element IDs, verified actions, self-healing, and a live view.

Install Ecobrowser

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": {
    "ecobrowser": {
      "command": "npx",
      "args": [
        "-y",
        "ecobrowser-mcp"
      ],
      "env": {
        "AI_BROWSER_HEADED": "YOUR_VALUE_HERE",
        "PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD": "YOUR_VALUE_HERE"
      }
    }
  }
}

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

Values are written into the snippet above so you can paste it as is. They never leave your browser.

Install not yet sandbox-tested— we haven't run this command through our automated sandbox yet. Not a red flag; we're working through the catalog.

Overview

ecobrowser provides an MCP interface for driving Chromium through structured page data instead of screenshots. It exposes browser navigation and interaction tools, assigns durable IDs to interactive elements, verifies action results, and can recover when page structure changes. Use it for local, supervised browser automation where an agent needs observable and repeatable control of authorized websites. The package also includes a typed TypeScript library and a live view for watching headless runs.

Use cases

  • Navigate websites and expose their interactive controls to an AI agent
  • Automate forms using durable element IDs and verified actions
  • Inspect only the page changes after a browser action
  • Supervise headless Chromium runs through the live view

Key features

  • Structured interactive-element snapshots
  • Durable IDs with self-healing element lookup
  • Verified actions with change detection
  • Incremental DOM-diff perception
  • Playwright Chromium automation
  • Live screenshots and action traces

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.

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 12d ago via OSV.dev · ecobrowser-mcp (npm)

Adoption & maintenance

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

GitHub stars1Stargazers on the source repository.
Last commit1mo agoMost recent push to the default branch.

How Ecobrowser works

What ecobrowser does

ecobrowser connects an MCP client to a Chromium browser driven through Playwright. Its primary interface is a set of schema-defined MCP tools exposed over JSON-RPC 2.0 through stdio. The same browser engine is also available as a TypeScript library, so applications can use the browser directly instead of going through MCP.

Rather than returning a screenshot as the main page representation, the engine produces a compact inventory of interactive elements. Entries include durable IDs along with information such as role, accessible name, value, state, and available options. Agents can use those IDs to click, type, or select without constructing CSS selectors or relying on pixel coordinates.

How it works

The engine inspects each frame and open shadow root, then tracks DOM changes with a mutation observer. Unchanged snapshots can be served from cache, while changes() reports only the difference since the previous observation. find(description) can narrow a request such as “the search box” to a matching element.

Actions include a verification step that reports whether the operation succeeded and whether the page changed. If an element ID no longer resolves after a re-render, ecobrowser attempts to locate the same element by its identity. It avoids retrying an operation that may already have been applied, such as a click whose handler stalled, and reports that uncertain state as maybeApplied.

The engine handles ARIA widgets, contenteditable controls, iframes, open shadow DOM, dropdown options, and elements covered by another element. New tabs opened by links are reported, and the MCP server switches to the new tab. Password values are represented as [redacted] rather than captured.

Setup and configuration

Install the npm package with Node.js 18 or newer:

Terminal
npm install ecobrowser

Chromium is downloaded by the package’s postinstall process. If installation scripts are disabled, browser downloading is skipped, or the machine is offline, install Chromium separately with npx playwright install chromium. To run the MCP entry point, use npx -y ecobrowser-mcp, or point a client at src/mcp.ts when working from a repository checkout.

Claude Desktop can start the server through its MCP configuration, and Claude Code can register it with claude mcp add ecobrowser -- npx -y ecobrowser-mcp. The AI_BROWSER_HEADED setting enables a headed browser. PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 prevents Playwright from downloading Chromium.

Tools and capabilities

The MCP adapter advertises 22 tools with JSON schemas. The documented interaction model includes navigation, structured snapshots, element lookup, clicking, typing, selecting, incremental changes, and browser diagnostics. Console output, page errors, and network requests are captured and associated with the action that produced them.

A separate live-view server provides a refreshed screenshot and color-coded action trace so a human can supervise the run. The browser is headless by default.

Limitations and notes

ecobrowser is designed as a fast, local, single-user developer tool for sites that the operator owns or is authorized to access. Its behavior has been tested thoroughly along its own paths but is intended to be evaluated before use across broad collections of production websites. The live view is for observation; the MCP adapter remains the control interface.

Reviews

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

Frequently Asked Questions about Ecobrowser

ecobrowser is an MCP server that connects AI clients to a Playwright-controlled Chromium browser. Its main tools provide navigation, structured page snapshots, element lookup, clicking, typing, selecting, incremental changes, and browser diagnostics, with verified action results and self-healing when page elements move.

Install the package with Node.js 18 or newer using `npm install ecobrowser`, then run the MCP entry point with `npx -y ecobrowser-mcp`. Chromium is normally downloaded during installation; use `npx playwright install chromium` if browser installation was skipped or unavailable.

Add an `ecobrowser` entry to Claude Desktop’s MCP configuration with `npx` as the command and `-y ecobrowser-mcp` as its arguments. Set `AI_BROWSER_HEADED` to `1` in the entry’s environment when you want a visible browser window.

Yes. Cursor is named as an MCP client supported by the project’s architecture. The server communicates through the standard MCP JSON-RPC interface over stdio, allowing a compatible client to discover its tools and call them.

It uses durable element IDs, resolves moved elements by identity, and verifies the result of each action. When an operation may already have been applied, ecobrowser reports that uncertain state instead of retrying and risking a duplicate submission.

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 PreviewEcobrowser AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/ecobrowser?style=directory)](https://allmcps.com/mcp/ecobrowser)
HTML Embed
<a href="https://allmcps.com/mcp/ecobrowser"><img src="https://allmcps.com/api/badge/ecobrowser?style=directory" alt="Ecobrowser on AllMCPs" /></a>