1AQuantum/websee-mcp-server
If you are the rightful owner of websee-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
WebSee MCP Server provides advanced frontend debugging intelligence for AI assistants using the Model Context Protocol (MCP).
WebSee MCP Server
Frontend Debugging Intelligence for AI Coding Assistants
56 MCP tools for debugging frontend applications with AI assistance. Works with Claude Code, Cursor, VS Code, Windsurf, Gemini CLI, and OpenAI Codex.
Features
- Source Map Resolution - Transform minified stack traces to original source code
- Component Intelligence - Inspect React/Vue/Angular component state, props, and hierarchy
- Performance Profiling - Long tasks, memory leaks, Web Vitals, paint timing
- Timeline Recording - Session recording with screenshots, events, and replay
- State Evolution - Watch component state changes over time
- Network Analysis - Trace requests, timing, headers, and response bodies
- Error Intelligence - Comprehensive error context with AI-suggested causes
- Watch Mode - Proactive monitoring with configurable triggers
- Bundle Analysis - Webpack/Vite bundle size and dependency analysis
Quick Start
# Clone and setup
git clone https://github.com/1AQuantum/websee-mcp-server.git
cd websee-mcp-server
npm run setup
# Build for production
npm run build
Then configure your AI coding assistant using the instructions below.
Installation by Platform
Claude Code
Method 1: CLI (Recommended)
# Navigate to the websee directory
cd /path/to/websee-mcp-server
# Add the MCP server
claude mcp add websee -- node dist/mcp-server.js
# Verify installation
claude mcp list
Method 2: Project Configuration
Create .mcp.json in your project root:
{
"mcpServers": {
"websee": {
"command": "node",
"args": ["/absolute/path/to/websee-mcp-server/dist/mcp-server.js"],
"env": {
"BROWSER": "chromium",
"HEADLESS": "true"
}
}
}
}
Then enable in .claude/settings.local.json:
{
"enabledMcpjsonServers": ["websee"]
}
Cursor IDE
Create .cursor/mcp.json in your project root (or ~/.cursor/mcp.json for global):
{
"mcpServers": {
"websee": {
"command": "node",
"args": ["/absolute/path/to/websee-mcp-server/dist/mcp-server.js"],
"env": {
"BROWSER": "chromium",
"HEADLESS": "true"
}
}
}
}
Then go to Cursor Settings > Tools & Integrations > MCP and click refresh.
VS Code (GitHub Copilot)
Create .vscode/mcp.json in your workspace:
{
"servers": {
"websee": {
"command": "node",
"args": ["/absolute/path/to/websee-mcp-server/dist/mcp-server.js"],
"env": {
"BROWSER": "chromium",
"HEADLESS": "true"
}
}
}
}
Requires the GitHub Copilot Chat extension with MCP support enabled.
Windsurf (Codeium)
Edit ~/.codeium/windsurf/mcp_config.json:
macOS/Linux:
mkdir -p ~/.codeium/windsurf
Windows:
mkdir %USERPROFILE%\.codeium\windsurf
Add configuration:
{
"mcpServers": {
"websee": {
"command": "node",
"args": ["/absolute/path/to/websee-mcp-server/dist/mcp-server.js"],
"env": {
"BROWSER": "chromium",
"HEADLESS": "true"
}
}
}
}
Open Windsurf Settings (Cmd/Ctrl + ,) > Cascade > Plugins (MCP servers) to verify.
OpenAI Codex CLI
Add to ~/.codex/config.toml:
[mcp.servers.websee]
command = "node"
args = ["/absolute/path/to/websee-mcp-server/dist/mcp-server.js"]
[mcp.servers.websee.env]
BROWSER = "chromium"
HEADLESS = "true"
Or use the CLI:
codex mcp add websee -- node /path/to/websee-mcp-server/dist/mcp-server.js
Gemini CLI
Add to ~/.gemini/settings.json:
{
"mcpServers": {
"websee": {
"command": "node",
"args": ["/absolute/path/to/websee-mcp-server/dist/mcp-server.js"],
"env": {
"BROWSER": "chromium",
"HEADLESS": "true"
}
}
}
}
Claude Desktop
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"websee": {
"command": "node",
"args": ["/absolute/path/to/websee-mcp-server/dist/mcp-server.js"],
"env": {
"BROWSER": "chromium",
"HEADLESS": "true"
}
}
}
}
Restart Claude Desktop after saving.
Available Tools (56 Total)
Workflow Tools (6)
High-level debugging workflows that combine multiple capabilities:
| Tool | Description |
|---|---|
debug_frontend_issue | Debug frontend issues by analyzing components, network, and errors |
analyze_performance | Analyze frontend performance (network, components, bundle, memory) |
inspect_component_state | Inspect component state, props, and structure |
trace_network_requests | Trace network requests and identify triggers |
analyze_bundle_size | Analyze JavaScript bundle size and large modules |
resolve_minified_error | Resolve minified stack traces to source code |
Component Intelligence (8)
| Tool | Description |
|---|---|
component_tree | Get full component hierarchy as tree structure |
component_get_props | Get component props by CSS selector |
component_get_state | Get component state by CSS selector |
component_find_by_name | Find all instances of a component by name |
component_get_source | Map component to source file location |
component_track_renders | Track component re-renders over time |
component_get_context | Get React context values |
component_get_hooks | Get React hooks state |
Performance Intelligence (5)
| Tool | Description |
|---|---|
perf_get_long_tasks | Capture long tasks blocking the main thread |
perf_profile_memory | Profile heap memory for leak detection |
perf_get_metrics | Get Core Web Vitals (LCP, FCP, CLS, FID, TTFB) |
perf_detect_detached_nodes | Detect detached DOM nodes (memory leaks) |
perf_get_paint_timing | Get paint timing metrics (FP, FCP, LCP, TTI) |
Error Intelligence (5)
| Tool | Description |
|---|---|
error_resolve_stack | Resolve minified stack traces via source maps |
error_get_context | Get comprehensive error context |
error_trace_cause | Trace error to root cause with AI analysis |
error_get_similar | Find similar errors to identify patterns |
error_get_enriched_context | Get enriched context with timeline, state, network |
Network Intelligence (6)
| Tool | Description |
|---|---|
network_get_requests | Get all network requests with details |
network_get_by_url | Filter requests by URL pattern |
network_get_timing | Get detailed timing metrics for a request |
network_trace_initiator | Trace request to source code origin |
network_get_headers | Get request/response headers |
network_get_body | Get request/response body |
Timeline Intelligence (8)
| Tool | Description |
|---|---|
timeline_start_recording | Start recording session with events/screenshots |
timeline_stop_recording | Stop recording and get summary |
timeline_get_events | Query events by time range and type |
timeline_get_summary | Get recording summary with stats |
timeline_export_video | Export as interactive HTML video player |
timeline_replay_session | Replay recorded interactions |
timeline_get_event_at_time | Get event and screenshot at timestamp |
capture_video | Capture native video for AI analysis |
State Intelligence (4)
| Tool | Description |
|---|---|
state_watch_component | Watch component state changes over time |
state_get_mutations | Track DOM mutations |
state_capture_snapshot | Capture full page state snapshot |
state_compare_snapshots | Compare two snapshots for differences |
Watch Mode (2)
| Tool | Description |
|---|---|
watch_start | Start watching for conditions (errors, network, DOM) |
watch_stop | Stop watch session and get results |
Build Intelligence (5)
| Tool | Description |
|---|---|
build_get_manifest | Get webpack/vite build manifest |
build_get_chunks | Get all code chunks with modules |
build_find_module | Find specific module in bundle |
build_get_dependencies | Get module dependency graph |
build_analyze_size | Analyze bundle sizes with recommendations |
Source Intelligence (7)
| Tool | Description |
|---|---|
source_map_resolve | Resolve minified location to original source |
source_map_get_content | Get original source file content |
source_trace_stack | Enhance full stack trace with source maps |
source_find_definition | Find function/class definition in source |
source_get_symbols | List exports, imports, and types from file |
source_map_bundle | Map bundle to all original source files |
source_coverage_map | Map V8 coverage data to original sources |
Configuration Options
Environment Variables
| Variable | Default | Description |
|---|---|---|
BROWSER | chromium | Browser to use: chromium, firefox, webkit |
HEADLESS | true | Run browser headlessly: true, false |
Example with Environment Variables
{
"mcpServers": {
"websee": {
"command": "node",
"args": ["/path/to/websee-mcp-server/dist/mcp-server.js"],
"env": {
"BROWSER": "firefox",
"HEADLESS": "false"
}
}
}
}
Usage Examples
Once configured, ask your AI assistant:
"Debug the login form at https://example.com - check for JavaScript errors"
"Analyze performance of https://myapp.com/dashboard - find slow API calls"
"Inspect the UserProfile component state at https://app.com"
"Start recording a session on https://shop.com and capture user interactions"
"Watch https://myapp.com for any console errors or network failures"
"Profile memory usage on https://dashboard.com to find leaks"
Development
# Install dependencies
npm install
# Install browsers
npx playwright install chromium
# Build
npm run build
# Run tests
npm test
# Start MCP server directly
npm run mcp:serve
Project Structure
websee-mcp-server/
├── src/
│ ├── index.ts # Main entry point
│ ├── mcp-server.ts # MCP server implementation
│ ├── tools/ # MCP tool implementations
│ │ ├── component-intelligence-tools.ts
│ │ ├── performance-intelligence-tools.ts
│ │ ├── error-intelligence-tools.ts
│ │ ├── network-intelligence-tools.ts
│ │ ├── timeline-intelligence-tools.ts
│ │ ├── state-intelligence-tools.ts
│ │ ├── watch-mode-tools.ts
│ │ ├── build-intelligence-tools.ts
│ │ └── source-intelligence-tools.ts
│ ├── timeline/ # Timeline recording system
│ ├── source-map-resolver.ts # Source map resolution
│ ├── component-tracker.ts # Component inspection
│ └── network-tracer.ts # Network tracing
├── dist/ # Compiled output
├── examples/ # Configuration examples
├── package.json
├── tsconfig.json
└── README.md
Troubleshooting
MCP Server Not Appearing
- Verify the path is absolute (not relative)
- Ensure you ran
npm run build - Restart your AI coding assistant
- Check MCP logs in your tool's settings
Browser Launch Fails
# Install browsers with dependencies
npx playwright install --with-deps chromium
Source Maps Not Found
- Ensure your app generates source maps
- Source maps must be accessible (same origin or CORS enabled)
- Check browser DevTools Network tab for
.mapfiles
Component Tracking Not Working
- React: Must be in development mode
- Vue: Requires Vue DevTools concepts enabled
- Angular: Requires development mode
Requirements
- Node.js 18.0.0 or higher
- Operating System: macOS, Linux, or Windows
- Browsers: Chromium, Firefox, or WebKit (installed via Playwright)
License
MIT - See for details.
Links
- Model Context Protocol - MCP Specification
- Playwright - Browser Automation
- GitHub Repository
Ready to debug with AI? Clone, build, and connect to your favorite AI coding assistant!