Camoufox Playwright MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CAMOUFOX_MCP_CONFIG | No | Path to JSON/INI configuration file for deeper Camoufox settings | |
| CAMOUFOX_MCP_BROWSER | No | Default browser to use (camoufox, chrome, chromium, firefox, webkit) | camoufox |
| CAMOUFOX_MCP_HEADLESS | No | Set to true or 1 for headless mode | false |
| CAMOUFOX_MCP_ISOLATED | No | Set to true to use isolated contexts | false |
| CAMOUFOX_MCP_OUTPUT_DIR | No | Output directory for saved snapshots, screenshots, and logs | |
| CAMOUFOX_MCP_PROXY_SERVER | No | Proxy server URL (e.g. http://user:pass@proxy.example.com:8080) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| browser_resizeD | Resize the browser window |
| browser_closeC | Close the page |
| browser_console_messagesC | Returns all console messages |
| browser_handle_dialogD | Handle a dialog |
| browser_evaluateC | Evaluate JavaScript expression on page or element |
| browser_file_uploadC | Upload one or multiple files |
| browser_dropB | Drop files or MIME-typed data onto an element, as if dragged from outside the page. At least one of "paths" or "data" must be provided. |
| browser_findA | Search the accessibility snapshot of the current page for text or a regular expression. Returns matching snapshot nodes with a few lines of surrounding context (like search snippets), which is cheaper than capturing the whole snapshot when you only need to locate an element and its ref. |
| browser_fill_formC | Fill multiple form fields |
| browser_press_keyC | Press a key on the keyboard |
| browser_typeC | Type text into editable element |
| browser_navigateC | Navigate to a URL |
| browser_navigate_backA | Go back to the previous page in the history |
| browser_network_requestsA | Returns a numbered list of network requests since loading the page. Use browser_network_request with the number to get full details. |
| browser_network_requestA | Returns full details (headers and body) of a single network request, or a single part if |
| browser_run_code_unsafeA | Run a Python Playwright code snippet. Unsafe: executes arbitrary Python in the Playwright server process with normal builtins/imports and is RCE-equivalent. |
| browser_take_screenshotA | Take a screenshot of the current page. You can't perform actions based on the screenshot, use browser_snapshot for actions. |
| browser_snapshotC | Capture accessibility snapshot of the current page, this is better than screenshot |
| browser_clickC | Perform click on a web page |
| browser_select_optionC | Select an option in a dropdown |
| browser_hoverC | Hover over element on page |
| browser_dragC | Perform drag and drop between two elements |
| browser_tabsC | List, create, close, or select a browser tab. |
| browser_wait_forC | Wait for text to appear or disappear or a specified time to pass |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 24 tools
Most tools have clearly distinct purposes, but 'browser_snapshot' and 'browser_take_screenshot' could confuse agents as both capture page state, and 'browser_type' vs 'browser_fill_form' overlap slightly. Descriptions help differentiate them.
All tools follow a consistent 'browser_<action_or_noun>' pattern using lowercase with underscores. The naming is predictable and uniform, making it easy for agents to infer tool function from the name.
24 tools is well-scoped for a browser automation server, covering navigation, interaction, forms, dialogs, console, network, tabs, and more. Each tool addresses a distinct operation without being excessive.
The tool set covers most common browser automation operations (CRUD-like for page interactions), but lacks a forward navigation tool and explicit waiting for elements beyond text. These minor gaps are workable.