VibeCheck MCP
by kosbay
README.md
# @vibecheck-mcp/mcp
MCP server for [VibeCheck](https://vibecheck-qa.com) ā connect AI assistants (Claude Code, Claude Desktop, Cursor, Windsurf, VS Code) to your bug reports, and let them **record their own browser sessions** as shareable bug reports.
š **[Full guide ā features, installation, use cases ā DOCS.md](https://github.com/kosbay/vibecheck-mcp/blob/main/DOCS.md)**
## š¬ Record browser sessions (new)
Give your AI agent a task in plain English ā it drives a real browser on your machine while VibeCheck records everything, then returns a shareable link:
```
You: Go to staging.myapp.com/cart, add a product and check the total
updates. Record it and send me the link.
Agent: āŗ Opening browser ā recording started
āŗ Clicked: Add to cart
āŗ Validated: total updated to $42.00 ā
Recording uploaded to VibeCheck.
Shareable link: https://app.vibecheck-qa.com/tracks/1783ā¦
```
The link opens a full bug report: **video** of the session, **console logs**, **network requests** (with response bodies), and a labeled **action timeline** ā all synced. Anyone can watch it, no account needed.
- **No AI inside** ā your assistant does the reasoning and clicking; this server is a recorded browser plus an uploader. No extra LLM costs.
- **Local browser** ā works against `localhost` dev servers and VPN-only staging. Uses your installed Chrome/Edge automatically (fresh isolated profile); auto-downloads a browser if neither exists.
- **11 tools** ā `browser_navigate`, `browser_snapshot`, `browser_click`, `browser_type`, `browser_press_key`, `browser_select_option`, `browser_hover`, `browser_scroll`, `browser_screenshot`, `browser_wait_for`, `browser_finish` (uploads + returns the link).
Perfect for: "go validate this page", reproducing a bug from an existing report, proving a fix before a PR, smoke-testing a deploy.
## Installation
### Requirements
- **Node.js 18+**
- **A browser** ā nothing to install if you have Google Chrome or Microsoft Edge (auto-detected). Otherwise one is auto-downloaded on first run (or pre-download: `npx playwright install chromium`)
- **A VibeCheck API key** (recording only ā the read tools below need no key):
1. Sign in at [app.vibecheck-qa.com](https://app.vibecheck-qa.com)
2. Open the **API Keys** page ([app.vibecheck-qa.com/api-keys](https://app.vibecheck-qa.com/api-keys)) ā **Generate key**
3. The dialog gives you a ready-made setup: a copy-paste Claude Code command with your key already inside, plus one-click **Add to Cursor** / **Add to VS Code** buttons ā use those and skip the manual configs below
### Claude Code
```bash
claude mcp add vibecheck \
-e VIBECHECK_API_KEY=vck_your_key_here \
-- npx -y @vibecheck-mcp/mcp
```
### Claude Desktop
Add to `claude_desktop_config.json` (macOS: `~/Library/Application Support/Claude/`, Windows: `%APPDATA%\Claude\`), then restart Claude Desktop:
```json
{
"mcpServers": {
"vibecheck": {
"command": "npx",
"args": ["-y", "@vibecheck-mcp/mcp"],
"env": { "VIBECHECK_API_KEY": "vck_your_key_here" }
}
}
}
```
### Cursor
Add the same block to `.cursor/mcp.json` (or use the one-click **Add to Cursor** button on VibeCheck's API Keys page):
```json
{
"mcpServers": {
"vibecheck": {
"command": "npx",
"args": ["-y", "@vibecheck-mcp/mcp"],
"env": { "VIBECHECK_API_KEY": "vck_your_key_here" }
}
}
}
```
### Windsurf
Add the same `mcpServers` block to `~/.codeium/windsurf/mcp_config.json`.
### VS Code
Add to `.vscode/mcp.json` (note the key is `servers`):
```json
{
"servers": {
"vibecheck": {
"command": "npx",
"args": ["-y", "@vibecheck-mcp/mcp"],
"env": { "VIBECHECK_API_KEY": "vck_your_key_here" }
}
}
}
```
### Verify it works
Open a **new** session in your AI tool and paste:
```
Go to https://example.com, then finish the recording titled "Setup test"
and give me the link.
```
A browser window opens, and within ~15 seconds the agent replies with a `.../tracks/...` link. If the video plays ā you're set. š
### Environment variables
| Variable | Required | Description |
|----------|----------|-------------|
| `VIBECHECK_API_KEY` | For recording | Personal API key (`vck_...`) from the API Keys page |
| `VIBECHECK_API_URL` | No | Override platform URL (default `https://app.vibecheck-qa.com`) |
| `VIBECHECK_HEADLESS` | No | Set `1` to hide the browser window (CI) |
| `VIBECHECK_NO_CONDENSE` | No | Set `1` to upload the full-length video instead of the condensed one |
### Watchable videos
Recordings show a **cursor that moves to every element** the agent interacts with, a **click ripple**, and a **caption** describing each action (`Click ā Place order button`), so anyone watching the video can follow what happened.
If `ffmpeg` is installed (`brew install ffmpeg` / `apt install ffmpeg`), the idle "agent think time" between actions is automatically cut out before upload ā a 5-minute session typically becomes under a minute, with the console/network/action timeline re-synced to the shorter video. Without ffmpeg the full-length video is uploaded as-is.
## š Analyze bug reports
Paste a VibeCheck track URL and your AI pulls in the full debugging context ā no API key needed:
| Tool | Description | Image? |
|------|-------------|--------|
| `get_track` | Full bug report ā console logs, network, user actions, vitals | Yes (screenshots) |
| `analyze_track_errors` | Focused error analysis ā console errors + failed network requests | Yes (screenshots) |
| `get_track_network` | Network deep-dive ā failed requests, slow requests, summary table | No |
| `get_track_performance` | Performance report ā web vitals, navigation timing, assessment | No |
| `get_track_actions` | User action timeline + auto-generated steps to reproduce | No |
### `get_track`
Fetch and format a complete VibeCheck bug report.
**Parameters:**
- `url_or_id` (required) ā Track URL or ID
- `include` (optional) ā Sections to include: `logs`, `network`, `actions`, `vitals`, `all`
### `analyze_track_errors`
Focused view of errors only ā console errors with stack traces and failed network requests with response bodies.
**Parameters:**
- `url_or_id` (required) ā Track URL or ID
### `get_track_network`
Deep analysis of network requests with failed/slow request detection.
**Parameters:**
- `url_or_id` (required) ā Track URL or ID
- `slow_threshold_ms` (optional, default: 1000) ā Threshold in ms to flag slow requests
- `status_filter` (optional, default: `all`) ā Filter: `all`, `errors`, `success`
### `get_track_performance`
Web vitals analysis with ratings and optimization suggestions.
**Parameters:**
- `url_or_id` (required) ā Track URL or ID
### `get_track_actions`
User action timeline with auto-generated steps to reproduce.
**Parameters:**
- `url_or_id` (required) ā Track URL or ID
- `action_types` (optional) ā Filter by type: `click`, `input`, `scroll`, `navigation`, etc.
### Screenshot support
For **screenshot** tracks, `get_track` and `analyze_track_errors` return the screenshot image alongside the text report using MCP's `ImageContent` type. Video tracks return text data only (no video fetch).
## Development
```bash
git clone https://github.com/kosbay/vibecheck-mcp.git
cd vibecheck-mcp
npm install
npm run build
npm start
```
## License
MIT
TDQS
A4/5.0
Scored across 5 tools
Disambiguation5/5
Each tool targets a distinct aspect of bug report analysis: errors, full report, actions, network, and performance. There is no overlap in their purposes.
Naming Consistency5/5
All tools use snake_case and follow a verb_noun pattern (analyze_track_errors, get_track, get_track_actions, etc.), with consistent verb prefixing and resource targeting.
Tool Count5/5
Five tools is an ideal count for the scope of analyzing a single bug report, covering all key dimensions without excess or deficiency.
Completeness5/5
The set covers the full breadth of analysis needs for a VibeCheck bug report: errors, user actions, network requests, performance metrics, and a comprehensive overview. No obvious gaps.
Maintenance
ActivityStale
ResponsivenessNo issues