Hand browser work off to a server-side agent: read the page as a table, act, then verify.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent — or use 1-click editor setup below.
One-click editor setup isn’t available for this listing yet — we don’t have a confirmed install command, and we’d rather show nothing than point your editor at the wrong package or host. Follow the project’s own setup instructions, linked above.
English · ç®€ä½“ä¸æ–‡

Hand the browser work off — an MCP server that drives the page for your agent.
Your agent should not be opening the browser at all. A browser task goes over whole — the URL, the goal, and the check that proves it — and the loop runs on the server. One tool call instead of twenty. Three seconds instead of a minute. A cent instead of a frontier model's context. And it never invents a target: it picks from what the page actually has, and the server refuses rather than guesses.
What it cost. A cent for the whole day, and a cent is all of it:

Three commands, then restart your client.
install.py looks for WorkBuddy, Claude Code, Claude Desktop, Codex CLI, Cursor, VS Code, Cline,
Windsurf and Gemini CLI, and writes the format each one expects — merging into your existing
config and saving a .bak first. Needs Python ≥ 3.10 and any Chromium-family browser.
Restart the client, and then just say what you want:
You: Set this form to 3 adults, tick Nonstop only, then submit it. Your agent:
browser_goal(goal=…, url=…, verify=[…])— one call; the page is opened and the loop runs server-side, and the result is checked by code afterwards. (what that costs)
You: Open example.com and tell me what the page says. Your agent:
browser_open→ reads the element table → answers — a look is not a task, so it does not need the model. (verbatim run)
Restarted and the tools are not there? Some clients make you approve the server once. In WorkBuddy that is Connectors → Custom connectors → Trust. The approval is remembered against the config itself, so if you later edit the config it asks once more.
No checkout needed if you would rather install it as a package. It is on PyPI, so the name is enough:
A client config wants a stable interpreter path rather than uvx's cache, so:
That gives you a jev-ultrafast-mcp console script and a stable interpreter path to put in a
client config — verified against the latest mcp SDK on Python 3.13, every one of the ten tools
listed.
scripts/install.py is the other half: it finds your MCP clients and writes the config each one
expects, merging into the existing file and saving a .bak first.
Runtime dependencies: mcp, websockets, httpx. No Playwright, no Selenium, no
browser-harness.
A three-step goal on a real page, driven by browser_goal. This is everything your agent sent and
everything it got back — one turn, and the page never entered its context:
What the second time costs. Nothing. The second time is a recorded macro, and a macro makes no model calls at all — it does not even need a key.
How long it took. 3.3 s wall for the whole goal: 1.8 s of model, 1.1 s of page. Every run prints that line itself, so the numbers are checkable rather than persuasive.
That run is not a mock-up. scripts/turbo_check.py reproduces it against a real Chrome and the real
model, and then checks the page with code rather than trusting the model's account of its own
work. The three actions — plus the reading and re-reading between them — all happened on the server.
Your agent spent one turn and never saw an element table.
The division of labour is the whole design decision, so it is yours to make per task:
| agent drives | browser_goal drives | |
|---|---|---|
| Tool calls for a 3-step flow | 6+ (observe, act, observe, act…) | 1 |
| Who holds the page in context | your agent | the decision model, server-side |
| Per-step cost | one agent turn | one typed request, no screenshot |
| Who names the target | the model writes a selector | the model picks a ref from the page's own table |
| If it goes wrong | a wrong click, usually silent | the server refuses, with the reason |
| Knowing it worked | the model's summary | code-checked assertion, which wins the disagreement |
| Second time around | run the model again | macro replay, zero model calls |
Browser automation usually makes the agent do the driving: read the page, pick one element, act, read again to see whether that worked. Ten clicks is ten turns, the page passes through the agent's context every time, and a mis-click rarely announces itself.
This server can take that job instead. browser_goal is one tool call from your agent; the loop
runs here, server-side, with Jev — TypeSafe's decision model — choosing each step. The model never
writes a selector: it picks among the elements the page actually has, and the server refuses
anything that is not on the page rather than guessing. When it stops, browser_assert checks the
page it left behind in code, and a passing assertion outranks the model's own account of what it did.
Four things follow from that:
ref from a numbered table of what is on the page,
not a selector or a coordinate the model invented, and the action is re-checked against the page
before it runs.Everything except browser_goal — browser_open, browser_observe, browser_act,
browser_assert, browser_macro — needs no key, no account, and no network beyond the page itself,
from any MCP client: WorkBuddy, Claude Code, Codex, Cursor or VS Code. If you would rather keep your
hands on the wheel, that whole surface is still here.
Inspired by browser-use/jev-ultrafast and
TypeSafe's typed-question API. Independent project, not affiliated with either — see
docs/DESIGN.md for what is different and why.
Contents · Quick start · Cheap and fast · What it is · What a session looks like · Connecting an agent · What you can ask it to do · What the agent reads · Why another browser MCP? · Tools · Configuration · FAQ · Try it without an agent · See also
You say:
Open example.com and tell me what the page says.
Your agent does this, and this is everything it sees:
No reviews yet — be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/jev-ultrafast-mcp)<a href="https://allmcps.com/mcp/jev-ultrafast-mcp"><img src="https://allmcps.com/api/badge/jev-ultrafast-mcp?style=directory" alt="Jev Ultrafast MCP on AllMCPs" /></a>