Zynlex MCP server
2026년 11월 15일 커밋공유 세션과 기록된 단계를 사용하여 AI 코딩 에이전트가 활성화된 브라우저 창 내에서 localhost 애플리케이션을 직접 테스트할 수 있습니다.
다른 이름 webtools-dotcom/Zynlex
- 스타
- 8
- Tools
- —
- 다운로드, 30일
- —
- 최신 버전
- —
- 마지막 커밋
- 2026년 11월 15일
- 라이선스
- Apache-2.0
Zynlex MCP란?
Zynlex은(는) MCP server입니다. 공유 세션과 기록된 단계를 사용하여 AI 코딩 에이전트가 활성화된 브라우저 창 내에서 localhost 애플리케이션을 직접 테스트할 수 있습니다.
프로젝트 README에서 생성된 요약
Zynlex MCP server 정보
Zynlex는 개발자와 Claude Code와 같은 AI 코딩 에이전트가 동일한 활성 창에서 함께 작업할 수 있는 공유 브라우저 환경을 제공합니다. 에이전트가 별도의 보이지 않는 브라우저 인스턴스를 실행하는 대신, 사용자의 눈에 보이는 세션 내에서 localhost 또는 스테이징 애플리케이션에서 직접 작동합니다. 이를 통해 모든 클릭을 실시간으로 관찰하거나, 에이전트를 일시 중지하여 직접 제어하거나, 키보드 단축키를 사용하여 오류가 발생한 요소를 직접 가리킬 수 있습니다.
설정하려면 Windows 설치 프로그램을 실행하고 선호하는 MCP 클라이언트에 zynlex-mcp server를 추가하면 됩니다. 이 server에는 다단계 상호작용을 수행하는 act, 대화형 요소를 확인하는 snapshot, API 응답을 모의하는 mock과 같은 특화된 도구가 포함되어 있습니다. 에이전트가 기존 브라우저 세션을 사용하므로 추가 자격 증명이나 테스트 계정 없이도 로그인 상태가 유지됩니다. 또한 버그 수정에 필요한 턴 수를 줄여 Playwright MCP보다 토큰 효율성이 높도록 설계되었습니다.
활용 사례
- 1회귀 테스트 자동화수동 버그 재현 세션을 CI 파이프라인을 위한 영구적인 Playwright 테스트로 변환합니다.
- 2API 장애 시뮬레이션모킹 도구를 사용하여 API가 500 에러를 반환하도록 강제함으로써 애플리케이션이 서버 장애를 어떻게 처리하는지 확인합니다.
프로젝트의 README를 바탕으로 작성되었습니다. 모든 활용 사례는 해당 내용의 인용문과 대조하여 확인합니다.
자동 검사
2026년 11월 14일에 실행됨전체 보고서 →아직 인증되지 않았습니다. 서버는 80점 이상의 점수, 심각한 결함 없음, 그리고 검사에 충분한 데이터를 갖추어야 합니다. 검사 방식 · 점수를 높이기 위해 수정할 항목
- 소스 저장소 연결 및 접근 가능webtools-dotcom/zynlex is public and reachablegithub.com/webtools-dotcom/zynlex ↗통과
- 패키지가 이 저장소를 소스로 명시검사되지 않음
- 빌드 출처(Sigstore 증명)검사되지 않음
- 오픈 소스 라이선스 (OSI)Apache-2.0spdx.org/licenses/Apache-2.0.html ↗통과
- 최근 1년 내 커밋 또는 릴리스Last commit or release 2026-11-13github.com/webtools-dotcom/zynlex ↗통과
- OpenSSF Scorecard검사되지 않음
- 패키지 이름이 인기 패키지와 유사하지 않음검사되지 않음
- 패키지 및 해당 종속성에 중요한 보안 권고 없음검사되지 않음
- 모델에 대한 숨겨진 지침 없음0 tool descriptions and the README read; no override phrases, credential paths or hidden characters통과
- 파괴적인 도구에 라벨 표시됨검사되지 않음
- 원격 엔드포인트가 MCP 핸드셰이크에 응답검사되지 않음
README
GitHub에서 보기ZYNLEX
The browser you share with your AI coding agent.
Claude Code, Codex and other coding agents test your localhost app in the ZYNLEX window you already have open.
You watch every click, point at what's broken, and take over whenever you want.
It costs the agent less than Playwright MCP, and it's a developer's browser in its own right.
One real take with Claude Code, zoomed and sped up only where marked · Watch the full film with sound (56 s)
Download for Windows →
then, in a new terminal:
claude mcp add zynlex zynlex-mcp
How this was measured, with every run's data
Your agent tests in a browser you can't see
Ask a coding agent to check your app today and it launches a browser of its own: a fresh profile, not logged in, empty console, somewhere off screen. It doesn't know about the error you hit five minutes ago. You can't point at the button that's wrong; you describe it in words and hope. It clicks around, finds the bug again from scratch, and hands you a summary of what it did.
ZYNLEX turns that around. The agent works in your browser, on the tab in front of you. You both see the same page at the same time.
What that changes
You point instead of describing. Press Ctrl+Shift+E, click the broken element, type a note. The agent's next reply starts with it, and with the element's ref so it can act on it straight away:
Developer flagged e15 button "Apply": does nothing on mobile
You show it the bug instead of writing steps. Start Record Steps for Agent, reproduce the bug the way you found it, stop. The agent reads every click and key, and the error or failed request each one caused:
2. press Enter in textbox "New task" [e2] → ReferenceError: addTsk is not defined
5. click button "Load tasks" [e8] → GET /api/tasks 404
It already knows what broke. ZYNLEX records errors and failed requests the whole time you use it. When an agent connects, its first look at a tab starts with what happened before it arrived, grouped and counted, so it doesn't have to reproduce what you already saw.
You can watch it, stop it, or take over. Every action happens in the visible page, and the Agent Activity panel lists each call. Pause in the status bar holds the agent while you use the page yourself; on Resume it's told what changed. Stop disconnects it.
The fix stays fixed. Once the bug is fixed, the agent turns your recording into a Playwright test, with your mocks, so it runs in CI from then on. ZYNLEX finds the bug; Playwright keeps it from coming back.
It's already logged in, because you are. No test accounts, no saved cookies, no passwords in a prompt. The agent uses the session you have open.
Cheaper, too
Each action already returns what changed on the page and any new errors, so the agent rarely needs a second look. Steps it already knows (type, then press Enter; click Delete, then accept the confirm) go in a single call. Claude Code re-sends its whole context on every turn, so fewer turns means fewer tokens.
The latest run (2026-11-09, ZYNLEX 0.18), on the same day as Playwright MCP: Claude Code fixing five bugs it had never seen, five runs each.
| ZYNLEX | Playwright MCP | |
|---|---|---|
| Bugs fixed | 25/25 | 25/25 |
| Tokens per bug (median) | 176k | 262k |
| Cost per bug (median) | $0.124 | $0.196 |
| Turns per bug (median) | 10 | 13 |
That's 33% fewer tokens and 37% lower cost, and fewer tokens on every one of the five bugs. It's our own harness, on one machine, with one model family, which is why the harness, the buggy apps, the graders and every run's result are in benchmark/ for you to rerun.
What a session looks like
Real replies from the v0.17.0 release, word for word. The agent calls open with http://localhost:7720/:
http://localhost:7720/ "Tasks" [dfc7d5cc]
Page:
h1 "Tasks"
textbox "New task" [e2] value=""
button "Add" [e6]
combobox "Sort" [e3] value="Oldest" collapsed
option "Oldest" [e22] selected
option "Newest" [e25]
button "Load tasks" [e8]
No new errors or failed requests.
Then one act with two steps, typing into e2 and pressing Enter in it:
Typed "Release check" into textbox "New task" [e2] value=""
Pressed Enter in textbox "New task" [e2] value=""
Page changes:
+ "Release check"
No new errors or failed requests.
After each code change the agent calls check, which waits for the page to settle and lists only what's new.
ZYNLEX or Playwright MCP?
Both, for different jobs. Keep Playwright for CI.
| ZYNLEX | Playwright MCP | |
|---|---|---|
| Where the agent works | Your open browser, in front of you | A browser it launches, or your Chrome through an extension |
| Point at an element, record a bug, pause and take over | ✅ in the page you're using | Partly: annotate and record, in its own dashboard |
| Errors from before the agent connected | ✅ kept across page loads | From when it connects |
| Logged in as you | ✅ | With the extension; otherwise saved state or a login flow |
| Mocks you can also see and edit in the UI | ✅ | ❌ |
| Turns a recording into a Playwright test | ✅ | ✅ (codegen) |
| Any website | ❌ localhost and staging you allow |
✅ |
| Headless, CI, Firefox, WebKit | ❌ | ✅ |
| macOS and Linux | ❌ Windows only, for now | ✅ |
Set up
-
Download the installer and run it. It puts
zynlex-mcpon your PATH. -
In a new terminal, connect your agent:
claude mcp add zynlex zynlex-mcpSettings → AI agents has the snippet for Codex, Cursor, Antigravity, OpenCode and any other MCP client.
-
Open your app in ZYNLEX and ask your agent to check it: "The Add button does nothing when I press Enter. Fix it."
What the agent can do
| Tool | What it does |
|---|---|
tabs, open |
List your tabs and running dev servers; open or switch to one |
snapshot |
The page's interactive elements, with refs to act on |
act |
Click, type, select, press, hover, drag, upload, go back, answer dialogs; up to 10 steps in one call |
check |
Wait for the page to settle, then list new errors and failed requests |
errors, network |
The console at any level; requests with headers and bodies |
screenshot |
The view, one element or the whole page |
viewport |
Emulate a phone or tablet, with touch |
wait_for |
Wait for text to appear or go, or the URL to change |
mock |
Fake API responses or add request headers, shown in your panels too |
eval |
Run JavaScript in the page |
recording |
Your recorded steps, or a Playwright test made from them |
What it can reach
localhost, plus any staging environment you tick agent on in Settings → Environments. Never production, even if you tick it. Page text, console messages and response bodies are passed to the agent as data, not instructions. The status bar shows when an agent is connected. Every detail is in docs/agent-interface.md.
It's a developer's browser first
Before agents could use it, ZYNLEX was the browser for localhost, and it still is. A new tab lists the dev servers running on your machine. The sidebar has what you'd otherwise open four apps for, and an agent can use all of it too.
Watch the full tour in 1080p · Watch the workflows film (73 s) · Website
- Network log: per tab, with filters, search and response bodies. No proxy, no certificate.
- Mock responses: make any API return a 500, an empty list or a slow reply, by URL pattern, or click Mock this on a captured request.
- Console: each tab's errors and failed requests, with a count on the tab itself so you notice.
- Device viewports: one device at a time, at its real pixel size.
- Header rules: add, override or strip request headers per URL pattern.
- API client: saved collections and cURL import, sent from Rust so page CORS doesn't apply.
- Environments: the same path on local, staging and production in one click. Production is marked red and asks first.
- Copy Bug Report: URL, environment, device, recent errors and a screenshot, ready to paste into an issue.
- Snippets, network throttling, full-page screenshots, a colour picker, and a JWT decoder, Base64 and user-agent switcher.
Workspaces keep each project's tabs, rules and saved requests apart, Ctrl+K finds everything, and any command can have a shortcut or a toolbar button.
It's light: a 4 MB installer because it uses the WebView2 (Chromium) runtime already in Windows, and less than half Chrome's memory at idle. Hidden tabs are suspended and then discarded on timers you set, and localhost tabs never are, so hot reload keeps working. The measurements.
No account, no telemetry. The only network call it makes on its own is an update check against this repo's releases.
Your servers, on the new tab page:
Network log, with a response open:
A mocked 500, and how the page handles it:
The same page on local, staging and prod:
A bug report, one click:
A device viewport at 1:1:
Why I built it
A few months ago I was watching a video by @crynta and got stuck on the comments underneath, where people were asking for a lightweight browser without telemetry. I wanted one too, but the one I needed was for development: the four things I check constantly (which port is that, what did that request return, how does this look on a phone, what happens with this header) lived in four separate windows. So I put them in the browser.
Then I started handing more of the checking to coding agents, and watched them work in a browser I couldn't see. They'd launch a clean Chrome, miss the error I'd just been looking at, and spend half the run getting back to where I already was. Meanwhile my own browser had already captured all of it: every error, every request, the page I was pointing at.
So ZYNLEX gave the agent a way in, to the browser I'm already using, with me able to see every step.
Limitations
- Windows only. Tabs, network capture, mocking and viewports are built on WebView2's Windows APIs. macOS and Linux are on the roadmap, and they're a real port, not a recompile.
- Agents reach
localhostand staging you allow, nothing else. For other sites, use Playwright. - Not signed yet. Windows shows "Unknown publisher" and some antivirus software quarantines new builds until signing is approved (policy).
- The benchmark is one machine and one model family, on small apps written for it. The data is there so you can check it.
- Header rules don't apply to WebSocket handshakes; the network log keeps bodies only for text responses; downloads show no progress percentage.
FAQ
Should I uninstall Playwright? No. Keep it for CI, headless runs and other browsers. ZYNLEX is for the loop where you and an agent build and fix your app together; the tests it writes run on Playwright.
Which agents work with it? Any MCP client. Settings → AI agents has setup for Claude Code, Codex, Cursor, Antigravity and OpenCode. The benchmark uses Claude Code.
Can the agent see my other tabs, or my banking site?
No. It only sees localhost tabs and staging environments you've ticked agent on. Production is refused even if ticked.
Will websites work in it? Yes. Tabs render with WebView2, Microsoft's packaging of Chromium, the same engine as Chrome and Edge.
Is it Electron? No. It's Tauri and Rust on the WebView2 runtime that ships with Windows, which is why the installer is 4 MB.
Is it free? Free and open source under Apache-2.0. No account, no telemetry.
Docs
- docs/agent-interface.md: the MCP server, every agent tool, the safety model
- benchmark/README.md: the agent benchmark, its data and harness
- docs/performance.md: memory compared with Chrome, and the settings that trade it off
- docs/architecture.md: process model, network capture, security boundary
- CONTRIBUTING.md · ROADMAP.md · CHANGELOG.md
- CODE_SIGNING_POLICY.md: how releases are signed. Free code signing provided by SignPath.io, certificate by SignPath Foundation
Contributing
If ZYNLEX saves your agent tokens, or you a few windows, a star helps other developers find it.
Issues and pull requests are welcome. For anything non-trivial, open an issue first so we don't both write it. From source: pnpm install, then pnpm tauri dev.
License
Zynlex MCP 질문
Zynlex는 Playwright MCP와 어떻게 다른가요?
Playwright MCP는 일반적으로 별도의 새로운 브라우저 인스턴스를 실행하는 반면, Zynlex는 에이전트가 사용자의 기존 활성 세션이 있는 브라우저에서 직접 작업할 수 있도록 합니다.
기존 로그인 세션과 함께 Zynlex를 사용할 수 있나요?
네, 에이전트가 이미 열려 있는 세션을 사용하므로 테스트용 계정이나 비밀번호를 별도로 제공할 필요가 없습니다.
Zynlex는 macOS 또는 Linux와 호환되나요?
현재 Zynlex는 Windows에서만 사용할 수 있습니다.