{"name":"io.github.AishwaryShrivastav/vibe-testing","slug":"aishwaryshrivastav-vibe-testing","title":"Vibe Test — Browser Testing Agent","description":"Code-aware browser testing agent — 14 Playwright tools for AI code editors via MCP","url":"https://mcp.market/server/aishwaryshrivastav-vibe-testing","rating":null,"grade":"B","score":74,"certified":false,"status":"active","category":"scraping","tags":["scraping","ai"],"presence":{"score":33,"stars":6,"forks":0,"downloads_week":107,"last_push_at":"2026-10-15T05:51:25.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/AishwaryShrivastav/vibe-testing","website":null,"version":"0.4.6","remotes":[],"packages":[{"registryType":"npm","identifier":"vibe-testing","version":"0.4.6","transport":{"type":"stdio"}}],"tools":[{"name":"cleanup","description":"Close all open browsers and reset the session state. Call when done testing.","write_action":false,"price_micros":0,"input_schema":null},{"name":"configure","description":"Idempotently configure a project and detect its framework, running server, and authentication method. Existing VIBE.md and vibe.config.json files are preserved.","write_action":false,"price_micros":0,"input_schema":null},{"name":"execute_scenario","description":"Execute a single test scenario (a sequence of navigate/fill/click/assert steps) and return detailed results with step-by-step logs, screenshots after each state-changing step, API errors observed, and the final page state. The editor LLM can construct scenarios based on scan_codebase output or create custom ones.","write_action":true,"price_micros":0,"input_schema":null},{"name":"explore_page","description":"Perform a full interactive exploration of a page: discover all elements, click buttons, fill inputs, test tabs, observe API calls, and report what happened. Returns detailed interaction outcomes, API observations, and screenshots. This is the \"senior tester\" mode — it tries every element and reports what works and what breaks.","write_action":false,"price_micros":0,"input_schema":null},{"name":"generate_report","description":"Generate a self-contained HTML test report with embedded screenshots from all collected results, explorations, and coverage data. Returns the report file path and a text summary. The report includes: pass/fail results per scenario, step-by-step screenshots, element exploration findings, API error monitoring, and coverage gap suggestions. Call this after executing scenarios and explorations. The re","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_context","description":"Retrieve the most relevant source files for a given feature or route. Returns actual source code (budget-capped) so you understand real field names, API endpoints, and component structure before writing test steps. Call this after scan_codebase when you want to write precise test scenarios for a specific feature — it eliminates guesswork about selectors and form fields.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_coverage","description":"Return the current test coverage map, identified gaps, and suggested tests. Prerequisite: scan_codebase must have been called first. Returns JSON with: coverage entries per route (tested/untested, test frameworks used), gap analysis with priority scores (high/medium/low), and concrete test suggestions for missing coverage. Use this to understand what has been tested and what still needs testing.","write_action":false,"price_micros":0,"input_schema":null},{"name":"login","description":"Establish an authenticated browser session by executing a login scenario. Returns the post-login URL, token state, and a screenshot. Uses saved credentials from previous runs if available, or accepts provided credentials.","write_action":false,"price_micros":0,"input_schema":null},{"name":"run_converge","description":"Iterative coverage: runs the full baseline suite, then automatically runs follow-up rounds targeting coverage gaps and failed scenarios until pass rate and gap thresholds are met (or max rounds reached). Use for \"keep testing until coverage is good\". Returns results across all rounds and opens the final HTML report.","write_action":true,"price_micros":0,"input_schema":null},{"name":"run_full_test","description":"Run a complete end-to-end test suite: scan codebase → generate scenarios → execute all → explore pages → generate report. This is the all-in-one command. For more granular control, use the individual tools (scan_codebase, login, explore_page, execute_scenario, generate_report).","write_action":true,"price_micros":0,"input_schema":null},{"name":"scan_codebase","description":"Analyze a project's codebase to understand its structure, routes, forms, components, existing tests, and coverage gaps. Returns a ProductModel with routes, behaviours, coverage map, gaps, and generated test scenarios. Call this first before any testing.","write_action":false,"price_micros":0,"input_schema":null},{"name":"scan_page_elements","description":"Navigate to a specific page and discover all interactive elements (buttons, links, inputs, selectors, checkboxes, tabs). Returns a structured list of elements with their types, text, selectors, and disabled state. Also returns a screenshot of the page. Use this to understand what's on a page before deciding what to test.","write_action":false,"price_micros":0,"input_schema":null},{"name":"suggest_tests","description":"Analyze codebase features, existing test coverage, and results from previous runs to suggest concrete test scenarios that should be written or executed. Returns prioritized, executable scenario objects with steps. Use this after scan_codebase to understand what testing is missing and get ready-to-run scenarios.","write_action":false,"price_micros":0,"input_schema":null},{"name":"take_screenshot","description":"Navigate to a URL and take a screenshot. Returns the screenshot as a base64 data URI that the editor LLM can see and reason about. Use this for quick visual verification.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":74,"grade":"B","scanned_at":"2026-10-15T12:00:29.151Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-15T12:00:29.133Z","components":{"code":{"score":13,"max":25,"notes":["77 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":15,"max":15,"notes":["last push 0 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[{"id":"exec.shell-concat","severity":"high","component":"code","title":"Shell command built from a string (injection risk)","evidence":"dist/cli.js: …32' ? 'start' : 'xdg-open'; exec(`${openCmd} \"${reportPath}\"`); logger.succe…"}],"inputs":{"packages":[{"registryType":"npm","identifier":"vibe-testing","version":"0.4.6","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":7,"publishedAt":"2026-09-21T18:39:25.887Z","repositoryUrl":"git+https://github.com/AishwaryShrivastav/vibe-testing.git","weeklyDownloads":107}],"repo":{"found":true,"owner":"AishwaryShrivastav","repo":"vibe-testing","archived":false,"pushedAt":"2026-10-15T05:51:25Z","stars":6,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/8766155?v=4","ownerCreatedAt":"2014-09-14T07:31:55Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/8766155?v=4&s=128","source":"registry","width":128,"height":128},"presence":{"stars":6,"forks":0,"downloadsWeek":107,"license":"MIT","lastPushAt":"2026-10-15T05:51:25.000Z","score":33}}}},"grade_history":[],"reviews":[]}