Skip to main content
Glama
browser-firefox-mcp

browser-firefox-mcp

by ironessi

browser-firefox-mcp

Security-focused Firefox browser MCP server for penetration testing agents. Built on Playwright with a Python-native API designed for vulnerability scanning, session manipulation, network inspection, and reconnaissance.

Features

  • Firefox-first: Uses Playwright's native Firefox engine for accurate rendering (especially useful for anti-bot detection)

  • Security tooling: XSS payload injection, form enumeration, DOM analysis, sensitive data leak detection

  • Session management: Cookie export/inject, token extraction, storage manipulation

  • Network inspection: Request/response interception and capture via CDP

  • Reconnaissance: Technology stack fingerprinting, framework detection, metadata extraction

  • MCP stdio transport: Works with cyberstrikeai, Claude Code, Cursor, and any MCP-compatible client

Related MCP server: mcp-browser-automation

Quick Start (Kali Linux)

git clone https://your-repo/browser-firefox-mcp.git
cd browser-firefox-mcp
uv venv && source .venv/bin/activate
uv pip install -e .
playwright install firefox
python server.py  # or: browser-firefox-mcp

Integration with cyberstrikeai

Add to your ~/.config/cyberstrikeai/config.json (or equivalent):

{
  "mcp_servers": {
    "firefox-browser": {
      "command": "python",
      "args": ["server.py"],
      "cwd": "/path/to/browser-firefox-mcp"
    }
  }
}

The agent will automatically discover tools: navigate, click, fill, screenshot, inject_payload, scan_forms, capture_network, get_session_info, recon_technology_stack, etc.

Architecture

┌──────────────────┐     JSON-RPC (stdio)     ┌──────────────────┐
│  cyberstrikeai   │ ◄──────────────────────► │     server.py    │
│   (agent)        │                          │ (MCP stdio)      │
└──────────────────┘                          └────────┬─────────┘
                                                       │
                                          ┌────────────▼─────────┐
                                          │  core/ modules        │
                                          │  engine | page        │
                                          │  security | session   │
                                          │  network | recon      │
                                          └────────────┬─────────┘
                                                       │
                                               ┌───────▼───────┐
                                               │ Firefox (headless) │
                                               └─────────────────┘

License

MIT

Available Tools

40 tools
block_urlsC

Block navigations matching glob-style URL patterns.

Inputs: patterns (required).

clear_cookiesC

Clear all cookies for the current context.

Inputs: no named parameters.

clickC

Click an element identified by CSS selector.

Inputs: selector (required), timeout.

click_textA

Click the first node whose visible text contains the given text.

Inputs: text (required), timeout.

close_browserA

Close the browser and release resources.

Inputs: no named parameters.

dom_analysisB

Extract structural summary of the DOM tree.

Inputs: no named parameters.

enumerate_formsA

List all forms with actions, methods, and field details.

Inputs: no named parameters.

export_stateA

Save full browser state (cookies + storage) to a file.

Inputs: path (required).

fill_inputB

Fill a form field. Fires framework-compatible input/change events.

Inputs: value (required), selector (required), timeout, clear_first.

find_reflectionA

Check whether text was reflected in the current page DOM.

Inputs: text (required).

find_sensitive_dataA

Scan page HTML and text for leaked secrets, keys, tokens.

Inputs: no named parameters.

get_cookiesA

List all cookies, optionally filtered by domain patterns.

Inputs: domains.

get_network_summaryC

Get a filtered summary of captured network traffic.

Inputs: status_filter, resource_types.

get_session_infoA

Full session snapshot: cookies + storage + detected tokens.

Inputs: no named parameters.

get_storage_dataA

Dump localStorage and sessionStorage contents.

Inputs: no named parameters.

get_textC

Extract visible text under the given CSS selector.

Inputs: selector.

get_url_paramsA

Extract and list all URL query parameters.

Inputs: no named parameters.

go_backC

Navigate back in history.

Inputs: no named parameters.

go_forwardC

Navigate forward in history.

Inputs: no named parameters.

import_stateB

Restore browser state from a previously saved file.

Inputs: path (required).

inject_payloadC

Inject a single custom payload into a target element and verify reflection.

Inputs: payload (required), selector (required).

inject_xss_payloadC

Inject XSS probes into a target input/textarea and check for reflection.

Inputs: selector (required), payloads, clear_first.

js_evalC

Execute JavaScript expression and return result.

Inputs: expression (required).

list_contextsA

List all active browser contexts.

Inputs: no named parameters.

new_contextA

Create a new isolated browser context (separate cookie jar).

Inputs: proxy.

press_keyA

Press a keyboard key or combination (e.g. 'Enter', 'Control+a').

Inputs: key (required).

read_pageA

Read the full page: DOM HTML length + title + metadata summary.

Inputs: no named parameters.

recon_technology_stackB

Detect technologies/frameworks/CMS used on the current page.

Inputs: no named parameters.

reload_pageD

Reload the current page.

Inputs: no named parameters.

screenshotA

Take a screenshot. Returns base64 string, or saves to path.

Inputs: path, full_page.

security_headers_checkB

Check for common security headers and protections.

Inputs: no named parameters.

set_cookiesA

Bulk-inject cookies (e.g., from Burp export).

Inputs: cookies (required).

set_storage_itemC

Write a key-value pair to localStorage or sessionStorage.

Inputs: key (required), value (required), store.

start_network_captureA

Begin capturing all HTTP(S) requests/responses on the current page.

Inputs: no named parameters.

stop_network_captureB

Stop capturing and report totals.

Inputs: no named parameters.

upload_fileB

Upload file(s) to a file input element.

Inputs: selector (required), file_paths (required).

wait_for_selectorC

Wait for an element to appear. Returns True when found.

Inputs: selector (required), timeout_ms.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    C2.6/5.0

    Scored across 40 tools

    Disambiguation3/5

    Several tools overlap in purpose, such as inject_xss_payload vs inject_payload and find_reflection vs find_sensitive_data, though descriptions help distinguish them. Most tools are distinct, but the boundaries are not always crystal clear.

    Naming Consistency3/5

    Naming is mostly verb_noun with underscores, but there are deviations like 'dom_analysis' and 'security_headers_check' that reverse the pattern, and 'new_context' is not a clear verb. Mixed conventions remain readable but lack strict consistency.

    Tool Count2/5

    With 40 tools, the server exceeds the recommended range for a focused MCP server. Many tools are highly specialized (e.g., network capture, security scanning) and contribute to a heavy surface, making it feel over-scoped.

    Completeness4/5

    The toolset covers a wide range of browser automation and security testing operations, including navigation, interaction, cookies, storage, network capture, and security checks. Minor gaps like hover/focus or tab management exist, but overall it's comprehensive for its domain.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      B
      quality
      D
      maintenance
      A universal browser automation MCP server using Playwright, enabling programmatic control of Chrome with 63 tools for navigation, interaction, media control, and CDP-based diagnostics.
      63
      28 npm
      3
      MIT
    • A
      license
      B
      quality
      D
      maintenance
      An MCP server for generic browser automation using Playwright. Enables MCP clients to navigate pages, inspect elements, execute JavaScript, capture screenshots, and monitor console logs and network traffic via a headless Chromium instance.
      7
      27 npm
      ISC