yo-bug
Auto-detects Angular dev server and injects the yo-bug test SDK for collecting feedback, console errors, and network failures during QA testing.
Auto-detects Astro dev server and injects the yo-bug test SDK for collecting feedback, console errors, and network failures during QA testing.
Auto-detects Next.js dev server and injects the yo-bug test SDK for collecting feedback, console errors, and network failures during QA testing.
Auto-detects Nuxt dev server and injects the yo-bug test SDK for collecting feedback, console errors, and network failures during QA testing.
Detects React component names in the DOM and captures them as part of element feedback for bug reports.
Auto-detects Svelte dev server and injects the yo-bug test SDK for collecting feedback, console errors, and network failures during QA testing.
Auto-detects Vite dev server and injects the yo-bug test SDK for collecting feedback, console errors, and network failures during QA testing.
Auto-detects Webpack dev server and injects the yo-bug test SDK for collecting feedback, console errors, and network failures during QA testing.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@yo-bugStart a test session for the login page"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
yo-bug ๐
English ยท ็ฎไฝไธญๆ
"Yo, bug!" โ Point at bugs, AI fixes them.

MCP Server that gives AI coding assistants QA superpowers. One install, then your AI handles the entire test-feedback-fix loop.
In vibe coding, the bottleneck is testing: humans find bugs but struggle to describe them. yo-bug solves this by letting users point, click, or type โ while the AI automatically receives element locations, console errors, network failures, action recordings, and annotated screenshots.
What it does
For the Human | For the AI |
Click a broken element โ done | Gets: CSS selector + computed styles + React/Vue component name |
Draw on a screenshot โ done | Gets: annotated PNG as inline image content |
Type a behavior bug ("scroll doesn't auto-jump") โ done | Gets: structured text feedback linked to a checklist case |
Check off a multi-step test case | Gets: which cases passed/failed, with linked feedback per case |
Just use the app normally | Gets: last 100 user actions + 50 console errors + failed network calls |
The AI drives the entire workflow through MCP tools. Humans never need to learn commands, configure proxies, or modify their code.
Install
npx yo-bug install(or npm install -g yo-bug && yo-bug install if you prefer a global install)
This auto-detects your AI tool (Claude Code / Cursor / Windsurf) and writes the MCP config. One time, done forever.
How it works
AI writes code
โ AI calls start_test_session()
โ Reverse proxy starts, injects test SDK into HTML responses
โ Browser opens (zero code changes to your project)
โ AI pushes grouped test cases (8 QA dimensions, multi-step scenarios)
โ Human runs each case; pass/fail at the case level
โ When failing, picks feedback mode: element / screenshot / text
โ AI calls list_feedbacks() + get_feedback() โ sees diagnostic data
โ AI must state root cause BEFORE writing fix (enforced by tool response)
โ AI fixes โ calls resolve_feedback() โ browser shows verify card
โ Human clicks Fixed / Locate (jump to element) / Still broken
โ Loop until doneMCP Tools (9 total)
Session Control
Tool | Description |
| Start test mode: auto-detect dev server, launch reverse proxy with SDK injection, open browser. |
| Stop test mode, return session summary (feedback stats, checklist results, weak dimensions, whether dev server was auto-closed) |
Feedback
Tool | Description |
| List submitted feedback. Defaults to current session only |
| Full details: element info, console errors, network errors, action steps, annotated screenshot. Response includes a mandatory diagnostic protocol that forces the AI to identify root cause before writing code |
| Mark as fixed โ pushes a rich verification card to the browser (with screenshot thumbnail, element selector, page URL, locate button). Human confirms |
Test Checklist (Grouped Test Cases)
Tool | Description |
| Push structured test cases to browser. Each case has a title, sequential |
| See which cases passed/failed and any user feedback per case |
Test History
Tool | Description |
| Save test results per module. Accumulates history for future reference |
| Get historical test records. Shows frequently failing scenarios so AI prioritizes coverage |
8 QA Test Dimensions
The create_checklist tool embeds professional QA methodology. AI is guided to cover:
Happy path โ Core functionality works end-to-end
Empty/boundary โ Empty inputs, special chars, max length, zero/negative values
Error states โ Offline, server errors, timeouts, recovery
Duplicate ops โ Double-click, re-submit, concurrent requests
State recovery โ Refresh, back/forward, deep links, tab close/reopen
Loading/async โ Loading states, failed loads, stale data
Responsive โ 375px mobile width, touch targets, overflow
Interaction detail โ Tab order, Enter/Escape, disabled states, focus
Each case is multi-step (open page โ fill form โ click submit โ verify result), so the human marks a whole scenario passed/failed rather than micro-managing each step.
Three Feedback Modes
When a checklist case fails, users pick a mode that fits the bug:
Mode | Shortcut | When to use |
Element |
| Visual / component bug โ click the broken element, AI gets selector + styles + framework component name |
Screenshot |
| Layout / styling bug โ drag to select a region, annotate with arrow / rect / circle / freehand / text |
Text | (Checklist | Behavior / logic bug ("doesn't auto-scroll", "wrong order") โ pure description, AI uses console/network data to find cause |
Other shortcuts: Alt+X toggle mode bar, Esc exit anything.
In-Browser Feedback Management
Above the floating bug button you'll see a list icon with a red badge showing open feedback count. Click it to:
See all open feedback you've submitted this session
Edit description inline (click description text)
Delete a feedback (trash icon, confirms first)
View screenshot thumbnails
When all feedback is resolved, the button auto-hides.
Auto-Captured Context
Every feedback submission automatically includes:
Console errors โ last 50
console.error/console.warnentries with stack tracesNetwork failures โ last 50 failed
fetch/XHRrequests with status, URL, durationUnhandled exceptions โ last 50
window.onerror+unhandledrejectioneventsAction recording โ last 100 user actions (click / input / navigate / scroll / keypress) with timestamps
Element info โ CSS selector, tag, text content, bounding rect, computed styles, React/Vue component name (when in element mode)
Verify-Fix Flow
When AI calls resolve_feedback(), a rich verify card appears on the left:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โผ VERIFY FIX [3] โ โ collapsible header with count
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ [thumbnail*] "Button click โ
โ does nothing" โ
โ bug ยท element โ
โ ๐ <button> #submit-btn โ โ only when element info exists
โ ๐ /orders โ
โ โฑ 5 min ago โ
โ [๐ฏ Locate*] [โ] [โ] โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
* thumbnail only if a screenshot was attached
* Locate only if an element selector was captured๐ฏ Locate scrolls to the element + flashes a red pulse twice. If the verify card was submitted on a different URL, it navigates there first. If the element no longer exists on the current page, shows a toast
โ Fixed confirms the fix โ status: resolved
โ Still broken sends it back โ status: open (AI sees it in next
list_feedbackscall)Click the header bar to collapse the whole stack when it gets in the way
Theming
Auto-detects
prefers-color-scheme(light or dark)All UI uses design tokens, contrast-verified (WCAG AA)
Glass-morphism panels with backdrop blur; clearly distinct from white host pages
Works Inside Modal Dialogs
If your app opens a <dialog>.showModal() (which traps focus and inerts the rest of the page), yo-bug still works: it detects the open modal via the :modal selector plus a MutationObserver, and relocates the SDK host inside the dialog so focus is shared.
This means you can submit text feedback even when a modal is open โ the textarea will accept input normally. When the dialog closes, the host moves back out.
i18n
SDK auto-detects <html lang="...">:
Any value starting with
zh(zh,zh-CN,zh-Hans, ...) โ Chinese interfaceEverything else โ English interface
MCP tool descriptions are in English (AI translates to the user's language naturally in chat).
Architecture
Browser โ Reverse Proxy (localhost:3695+) โ Dev Server (localhost:5173)
โ
โโ Auto-injects SDK into HTML responses
โโ WebSocket passthrough (HMR works normally)
โโ Feedback API (POST/GET/PATCH/DELETE)
โโ Checklist API (push/poll/update)
โโ Verify API (push/confirm)
MCP Server (stdio) โ AI Tool (Claude Code / Cursor / Windsurf)
โ
โโ start/stop_test_session โ controls proxy lifecycle
โโ feedback tools โ reads user submissions w/ diagnostic protocol
โโ checklist tools โ pushes grouped test cases, reads results
โโ history tools โ persists test records per moduleThe proxy auto-detects dev server framework (Vite, Next.js, CRA, Webpack, Nuxt, Angular, Svelte, Astro) and port. If the dev server is already running, it connects. If not, it starts one. On stop_test_session it cleans up โ and tells the AI whether the dev server was auto-closed or left running (because the user had started it themselves).
If port 3695 is taken, yo-bug auto-increments to 3696, 3697... up to 3795. Multiple projects can run yo-bug simultaneously without conflict.
Security
All data stays local โ feedback files in
<project>/.yo-bug/feedback/by default (auto-.gitignore'd), or~/.yo-bug/if you opt inFeedback IDs validated against path traversal
Input fields whitelist-filtered and length-limited
Network interceptor uses exact pathname matching (no substring false positives)
No data sent to any external service
Requirements
Node.js >= 18
Any MCP-compatible AI tool
A current-version browser (Chrome / Edge / Firefox / Safari)
License
MIT
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/WYYkerwin/yo-bug'
If you have feedback or need assistance with the MCP directory API, please join our Discord server