v1.16.8$2$2$2$2$2$2$2$2$2$2$2$2 — MIT License
Fennec

Ears everywhere
in your stack.

Fennec is an AI-native developer observability MCP server that gives AI agents full-stack visibility into your development environment — browser, terminal, and processes — all in one unified interface.

165+
MCP Tools
18
Categories
679
Tests
26
Debug Tools

AI agents are blind without context

When a developer asks an AI agent "why is my login broken?", the agent has no access to the browser console, network tab, or server terminal. The developer becomes a copy-paste bridge.

# What the AI agent sees without Fennec:
"I can't access your terminal"
"Please paste the error message"
"I don't have browser access"

# What the developer sees:
 TypeError: jwt.sign is undefined          // Browser Console
 Error: JWT_SECRET not set in env          // Terminal
 POST /api/login -> 500                 // Network Tab

Installation & Configuration

Get Fennec running in under 2 minutes. No external services, no cloud accounts — everything runs locally.

Quick Install

# Install globally
npm install -g @plumpslabs/fennec-cli

# Install browser engines (optional)
fennec install-browsers

# Start the MCP server
fennec start

MCP Client Config

Add to your MCP client's config file. Connect via stdio (default) or SSE (--sse).

✅ stdio (default)

Works with Claude Desktop, Claude Code, Cline, Cursor, Windsurf:

{
  "mcpServers": {
    "fennec": {
      "command": "fennec",
      "args": ["start"]
    }
  }
}
🌐 SSE (remote)

Required for OpenCode, recommended for Continue.dev:

{
  "mcpServers": {
    "fennec": {
      "command": "fennec",
      "args": ["start", "--sse"]
    }
  }
}

Client compatibility:

ClientstdioSSENotes
Claude Desktopstdio default
Claude Codestdio default
Clinestdio default
Cursorstdio default
Windsurfstdio default
Continue.dev⚠️SSE recommended
OpenCodestdio default (local build wrapper recommended)

💡 Run fennec start --sse — Fennec outputs the exact remote config snippet on startup. For OpenCode, you can add it as a local stdio server or add type: remote, url: http://localhost:3333/sse to ~/.config/opencode/opencode.json for SSE.

Quick Start

Once Fennec is running and connected to your AI agent, pipe your server output and let the AI investigate.

# Terminal: Start your app with Fennec watching
npm run dev 2>&1 | fennec pipe --name "my-app"

Then ask your AI agent: "Why is my app broken?"

The AI will automatically use Fennec tools to open the browser, check console errors, inspect network requests, correlate with server logs, and report the root cause.

Core Features

165+ MCP tools across 18 categories — browser automation, process management, multi-language debugging, and mobile device control.

Browser Automation

Navigate, click, type, scroll. Full DOM and accessibility tree access with zero-dependency CDP engine.

Console & Network

Real-time console monitoring, network interception, request mocking, and CORS detection.

Debug Engine NEW

Multi-language debugger: V8/CDP, Python, PHP, Java/Kotlin, Go, .NET, Ruby, Rust. Auto-debug with EventBus triggers. 26 tools across 3 levels.

Full-Stack Correlation

Correlate browser errors with server logs. Automatic root cause inference with confidence scoring across 11+ patterns.

Process Management

Spawn, monitor, adopt, and supervise processes. Auto-restart, health checks, flapping detection, and concurrency safety.

Auth & Sessions

Auto-fill login forms, save/load authenticated sessions, multi-user parallel testing. Persist across conversations.

Incident Engine

Rate-limited incident detection via EventBus. NOISY event suppression, auto-decay, cooldown. Structured alerts with suppressed count tracking.

Self-Observability

Time-series trend analysis, memory monitoring, tool call metrics, and diagnose_fennec_health diagnostic tool.

Mobile (ADB)

Android device management: tap, type, swipe, logcat, screenshot, install APK. Wireless ADB support.

AI-Native Debugging for 10+ Runtimes

Fennec's Debug Engine provides three levels of debugging — from passive log analysis to active breakpoint debugging to proactive auto-debug — across JavaScript, Python, PHP, Java/Kotlin, Go, .NET, Ruby, Rust, and more.

Level 1 — Log Debug

Passive error dedup by stack hash, source map resolution, grouped error summaries. Token-efficient: 10 identical errors → 1 entry.

Level 2 — Breakpoint

Set breakpoints, step over/into, inspect variables, evaluate expressions. V8/CDP, Python DAP, PHP DBGp, Java JDWP. Logpoints for non-blocking observation.

Level 3 — Auto-Debug

EventBus-driven: auto-attach debugger on process crash, stderr error, browser error, or 5xx. Structured snapshots with suggested fixes.

Multi-Language Support

RuntimeProtocolStatus
Node.js / BrowserV8 Inspector (CDP→DAP)
Pythondebugpy (DAP)
PHPXdebug (DBGp→DAP)
JVM (Java/Kotlin/Scala)JDWP→DAP
GoDelve (DAP)
.NET (C#, F#, VB)NetCoreDbg (DAP)
Rubyruby/debug (DAP)
Rust / C / C++ / Zig / Swiftlldb-dap
Dart / FlutterDart DAP

Record & Replay (Cassette)

Record MCP tool call sessions and replay them to detect regressions:

# Record a debugging session
debug_record_session("login-bug")
# ... perform debug steps ...
debug_stop_recording()

# Replay and compare
debug_diff_sessions(cassette_a, cassette_b)

Full-Stack Correlation

The crown jewel of Fennec. A single command correlates browser errors with server logs and process state to identify root causes automatically.

// diagnose_fullstack({ processId: "dev-server" })
{
  "correlation": {
    "rootCause": "JWT_SECRET environment variable missing",
    "confidence": 0.94,
    "fix": "Add JWT_SECRET to your .env file",
    "timeline": [
      { "t": "+0ms",  "layer": "browser", "event": "POST /api/auth/login initiated" },
      { "t": "+12ms", "layer": "server",  "event": "ERROR: JWT_SECRET not set" },
      { "t": "+16ms", "layer": "browser", "event": "TypeError thrown in auth.js:67" }
    ]
  }
}

Tool Reference

165+ tools organized into 18 categories. Every tool follows MCP conventions with structured Zod schemas and token-efficient responses.

🚀 Navigation
6 tools
  • browser_navigate
  • browser_go_back
  • browser_go_forward
  • browser_reload
  • browser_get_current_url
  • browser_wait_for_navigation
🖱️ Interaction
10 tools
  • browser_click
  • browser_type
  • browser_select
  • browser_hover
  • browser_scroll
  • browser_press_key
  • browser_upload_file
  • browser_focus
  • browser_clear
  • browser_drag_drop
📄 DOM & Page
9 tools
  • browser_screenshot
  • browser_get_dom_snapshot
  • browser_get_accessibility_tree
  • browser_find_elements
  • browser_get_element_info
  • browser_wait_for_element
  • browser_get_page_text
  • browser_get_page_title
  • browser_get_meta
📋 Console
5 tools
  • devtools_get_console_logs
  • devtools_clear_console
  • devtools_evaluate
  • devtools_get_js_errors
  • devtools_watch_console
🌍 Network
10 tools
  • network_get_logs
  • network_get_failed_requests
  • network_get_cors_issues
  • network_clear_logs
  • network_wait_for_request
  • network_wait_for_api_response
  • network_intercept
  • network_remove_intercept
  • network_mock_response
  • network_get_request_detail
⚡ Performance
6 tools
  • devtools_get_performance_metrics
  • devtools_get_memory_usage
  • devtools_get_dom_counters
  • devtools_simulate_network
  • devtools_start_profiling
  • devtools_stop_profiling
🐛 Debug NEW
26 tools
  • debug_get_errors
  • debug_get_error_detail
  • debug_investigate
  • debug_summary
  • debug_logs_since
  • debug_configure
  • debug_set_breakpoint
  • debug_remove_breakpoint
  • debug_list_breakpoints
  • debug_continue
  • debug_step_over
  • debug_step_into
  • debug_get_variables
  • debug_get_pause_state
  • debug_evaluate
  • debug_set_logpoint
  • debug_investigate_runtime
  • debug_record_session
  • debug_stop_recording
  • debug_replay_session
  • debug_diff_sessions
  • debug_list_cassettes
  • debug_auto_report
  • debug_auto_history
  • debug_auto_configure
  • debug_auto_stats
📦 Storage
12 tools
  • storage_get_local
  • storage_set_local
  • storage_remove_local
  • storage_clear_local
  • storage_get_session
  • storage_set_session
  • storage_get_cookies
  • storage_set_cookie
  • storage_delete_cookie
  • storage_get_indexeddb
  • storage_export_state
  • storage_import_state
🔐 Auth
6 tools
  • auth_fill_login_form
  • auth_save_session
  • auth_load_session
  • auth_list_sessions
  • auth_delete_session
  • auth_check_logged_in
📑 Tabs
9 tools
  • tab_new
  • tab_close
  • tab_list
  • tab_switch
  • tab_get_current
  • context_new
  • context_close
  • context_rotate
  • browser_session_recover
⚙️ Process
19 tools
  • process_spawn
  • process_run_and_wait
  • process_list
  • process_get_logs
  • process_get_status
  • process_kill
  • process_restart
  • process_spawn_tracked
  • process_stop_tracked
  • process_adopt
  • process_get_tracked
  • process_wait_for_ready
  • process_attach_pid
  • process_attach_port
  • process_set_group
  • process_rename_tracked
  • process_cleanup_tracked
  • process_clear_logs
  • process_send_input
🖥️ Terminal
7 tools
  • terminal_watch_file
  • terminal_watch_pipe
  • terminal_get_logs
  • terminal_get_errors
  • terminal_list_watchers
  • terminal_clear_buffer
  • terminal_stop_watcher
🔍 Diagnostic
8 tools
  • diagnose_page
  • diagnose_element
  • diagnose_network
  • diagnose_auth
  • diagnose_fullstack
  • diagnose_performance
  • diagnose_fennec_health
⏰ Scheduler
7 tools
  • scheduler_get_stats
  • scheduler_list_rules
  • scheduler_trigger_rule
  • scheduler_enable_rule
  • scheduler_disable_rule
  • scheduler_get_last_result
  • scheduler_clear_history
🧠 Smart
12 tools
  • smart_wait
  • smart_navigate
  • smart_fill_form
  • smart_validate_form
  • browser_screenshot_annotated
  • browser_screenshot_export
  • browser_screenshot_baseline
  • browser_screenshot_diff
  • compare_sessions
  • test_with_state
  • browser_get_element_component
  • tools_help
📋 Planner
5 tools
  • planner_execute_goal
  • planner_create_plan
  • planner_list_plans
  • planner_get_plan
  • planner_cancel_plan
🧪 Recorder
5 tools
  • recorder_start
  • recorder_stop
  • recorder_export
  • recorder_list
  • recorder_capture
📱 Mobile
11 tools
  • mobile_list_devices
  • mobile_tap
  • mobile_type
  • mobile_swipe
  • mobile_keyevent
  • mobile_screenshot
  • mobile_logcat
  • mobile_install_apk
  • mobile_launch_app
  • mobile_stop_app
  • mobile_device_info
🗄️ Database
9 tools
  • db_connect
  • db_disconnect
  • db_list
  • db_query
  • db_schema
  • db_tables
  • db_ping
  • db_explain
  • db_stats

See the full tool reference for detailed schemas and examples.