u/Free-Plantain4841

I built an MCP server that hit-tests before it clicks, because "clicked Save" was lying to me
▲ 0 r/Playwright+1 crossposts

I built an MCP server that hit-tests before it clicks, because "clicked Save" was lying to me

Disclosure: I built this.

The bug that started it: my agent would report a successful click and nothing would happen. Turns out most browser MCP servers resolve an element's bounding box, aim at the centre, and fire. If the page has painted a cookie scrim or a modal backdrop over that point, the click lands on the overlay and the tool still reports success. You then spend five turns debugging a button that was never pressed.

ChromeBoost hit-tests the target first, descending through open and closed shadow roots. If something is on top it says so, scrolls clear of pinned bars, or gives the covering layer pointer-events: none for exactly one click and restores the inline styles after. Same real CDP click, so isTrusted stays true.

It also adds hover and drag, because a click-only tool surface cannot reach hover-only menus or sliders or canvas apps at all.

Works with Claude Code, Gemini CLI and Codex. MIT, no telemetry, the server only talks to your own browser.

Code: https://github.com/lordamdal/chromeboost

Site: https://chromeboost.vercel.app

Happy to answer anything about the CDP side. The occlusion piece was the interesting part.

u/Free-Plantain4841 — 3 days ago