Skip to content

public-browser

MCP server and libraries that drive Chrome over CDP and hand a decision model like Jev a bounded menu of page actions.

Projectproduction

Overview

Public Browser is an MCP server that lets Claude Code, Cursor and other MCP clients drive Chrome directly over the DevTools Protocol, with accessibility-tree refs and a run_plan tool that executes several steps per call. It also ships a Node library and a Python client that run the same tool handlers without an LLM.

The Jev connection is in a dedicated README section: because a decision model needs a bounded menu rather than free text, Public Browser's element refs give Jev a set of options to choose from, and a Python Script API with parallel access is described as suited to Jev loops. The README reports a blind benchmark in which version 3.0 used a median 3.0M session tokens versus 4.5M for agent-browser (about a third fewer) and finished in 261 s versus 386 s, while also listing what agent-browser does better.

What the decision model decides

TypeQuestionAnswers
ChoiceWhich element ref or action from the current page menu should be taken next?(inferred)—

How it works

  1. Connect to Chrome via CDP and read the accessibility tree into refs
  2. Present the available elements and actions as a bounded option set
  3. Let the LLM client or a Jev loop pick the next action
  4. Execute one or more steps (run_plan) and return a diff of what changed

Strengths

  • README reports about a third fewer tokens and lower cost than agent-browser on its benchmark
  • Loud failures for ambiguous selectors and stale refs
  • Usable without an LLM through Node and Python clients

Caveats

  • Benchmark uses the authors' own test page
  • Jev integration is a usage pattern via the Script API rather than built-in
  • Profile mode does not carry site logins on macOS

Getting started

claude mcp add --scope user public-browser -- npx -y public-browser@latest (add --script for the Python Script API).

At a glance

Type
Project
Status
production
Language
TypeScript
Runtime
MCP server, Node library, Python client
Has code
yes
Has tests
yes

Use cases and integrations

How curated lists describe it

  • Browser control: lets Claude Code and Cursor drive a real Chrome profile, with a Jev loop deciding the actions, reporting roughly 30% fewer tokens and 25% lower cost.

    yibie/awesome-jev

Frequently asked questions

Where does Jev fit in Public Browser?

Public Browser exposes the page as a bounded set of refs, which a Jev loop can choose from instead of an LLM inventing selectors.

How much cheaper is it?

The README reports a median 3.0M versus 4.5M session tokens against agent-browser on its 30-test benchmark page.

Do I need Jev to use it?

No; it works with any MCP client, and Jev is one optional decision layer.

Related projects

  • Jev browser agent that pierces shadow DOM and iframes, adds canvas fallback and full actions, with one Jev request per cycle.

    MCP serverbetaPython
  • MCP server that takes a whole browser task (URL, goal, checks) in one call and drives Chrome server-side with a decision model.

    MCP serverbetaPython
  • Agent skill porting jev-ultrafast's loop into ego lite: one ~0.4 s Jev call per DOM step picks operation and target.

    Agent skillbetaTypeScript
  • Agent-plugin browser tool where Jev picks one operation and one row from a numbered page table; a small LLM only writes typed text.

    ProjectbetaTypeScript
  • Chrome extension plus MCP server so Claude or Codex can drive your real Chrome, with Jev picking each click in about half a second.

    MCP serverbetaTypeScript
  • MCP server that lets Claude Code or Codex drive real Chrome with Jev picking elements and checking steps, plus safety gates and traces.

    MCP serverbetaTypeScript