jev-browser MCP
A browser MCP server where Claude states each step's goal, Jev picks the element and action, and Playwright runs it.
- 135 ★ on the repository
- Last commit
- MIT
Broad access
Why this level
- The agent types data into sites and can place an order when a step is called with `allow_irreversible: true`.
- Page text and elements are sent to the third-party TypeSafe or OpenRouter API.
- A persistent profile keeps your site logins.
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add mcp/jev-browserDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- The agent types data into sites and can place an order when a step is called with `allow_irreversible: true`.
- Page text and elements are sent to the third-party TypeSafe or OpenRouter API.
- A persistent profile keeps your site logins.
This is third-party code. Review the repository files before installing.
What it does
jev-browser automates a browser through MCP. Claude names the outcome of one step and passes any text to type. Code describes the page, then a single request to the Typesafe System One model (Jev) decides which element and action are needed, whether the step is done and whether an irreversible action looms. Playwright performs the click or typing. Claude does not read page snapshots unless it takes over itself. The tools include `browser_open`, `browser_do`, `browser_check`, `browser_read`, `browser_snapshot` and `browser_screenshot`. When a page registers WebMCP tools, Jev chooses between them and ordinary buttons.
Who it is for. Developers and testers who ask Claude Code to fill forms and walk through live-site flows while saving context on page snapshots.
Good fit when
- An agent walks a multi-step form with dropdowns, checkboxes and modal dialogs.
- You need only the text relevant to a question from a large page, via `browser_read`.
- A flow must pause before payment or deletion and ask for confirmation.
- A page supports WebMCP and the agent can call its own tools.
Not a fit when
- Page content cannot go to a third-party API: page text and elements are sent to Typesafe or OpenRouter.
- A step has several ordered sub-goals, and the author advises splitting them.
- You need to verify complex judgements such as "the table is sorted", where the model can miss.
Example request
Open the order page with jev-browser, fill the form with these values and stop before the payment button.MCP
- Transport
- stdio
- Authentication
- key is optional
Environment variables
TYPESAFE_API_KEYsecret- TypeSafe System One key; needed unless an OpenRouter key is set
OPENROUTER_API_KEYsecret- OpenRouter key used instead of the TypeSafe key
JEV_BROWSER_HEADED- Set to 1 to show the browser window
JEV_BROWSER_PROFILE- Persistent profile directory so logins survive restarts
Limitations
The project is unofficial and not affiliated with TypeSafe. You need your own TypeSafe System One or OpenRouter key. The page URL, title, visible text, elements and `values` go to that API, except values whose keys look like `password` or `token`. The first call downloads Chromium for Playwright. Some sites, x.com included, serve a blank page to headless Chromium, so use `JEV_BROWSER_HEADED=1`.
How to disable. Run `/plugin uninstall jev-browser` or `claude mcp remove jev-browser`. Delete the persistent profile folder from `JEV_BROWSER_PROFILE` separately.
FAQ
How do I install jev-browser in Claude Code?
Run `/plugin install jev-browser --marketplace Ying-Kai-Liao/jev-browser`. Claude Code asks for a TypeSafe or OpenRouter key and stores it securely. The plugin starts the MCP server and adds a skill covering each status.
What does the needs_confirmation status mean?
The next action looks irreversible: an order, payment, send or delete. Inspect `pending` and call again with `allow_irreversible: true` only if the user wants it.
Can I use it without a TypeSafe account?
Yes. Jev is available on OpenRouter: pass `OPENROUTER_API_KEY` instead of `TYPESAFE_API_KEY`. When both keys are set, TypeSafe wins.
How do I keep a site login between runs?
Set `JEV_BROWSER_PROFILE` to a dedicated directory and enable `JEV_BROWSER_HEADED=1` to log in by hand. Your everyday Chrome profile cannot be used for this.
What data goes to the external API?
The page URL, title, visible text, interactive elements, the step goal and the action history. Values under keys such as `password`, `token` and `otp` go by key name only. Snapshots and screenshots go only to your MCP client.
Discussion
No questions or reviews yet.
Related
MCP serversAn MCP server that lets an agent drive a real browser: open pages, click and fill forms through Playwright
MCP Server Playwright by Automata Labs
MCP Server Playwright
Playwright-based MCP server for browsing sites, clicking, filling forms, taking screenshots and running JavaScript in a browser
Microsoft's official MCP server for driving a browser with Playwright through the accessibility tree, no screenshots needed
An MCP server and Chrome extension that let the agent drive your already open browser with your logged-in sessions, all locally
An MCP wrapper over the browser-use engine: a single tool drives a browser from a natural-language task.
MCP gives an agent a Playwright browser where a person can take over the same session and save an authentication profile
Comparison with similar tools
Cards that share the main search query, and how they differ.
| Tool | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| jev-browser (this card) | no | key is optional | 135 | |
| Playwright MCP | yes | not required | 39,570 | gives the agent page snapshots to parse; jev-browser hands element choice to the Jev model and returns a step status |
| browser-use-mcp-server | no | API key | 848 | runs an autonomous browser agent; jev-browser performs one step at a time under the calling model |
README in short
The author reports their own run of 42 tasks in 16 categories on live sites: 40 correct results and no false "done". The model answers with probabilities and only the caller writes text. Code turns low confidence into a status the agent can act on.