Skip to main content
Glama
whit3rabbit

Camoufox MCP Server

by whit3rabbit

browse_find

Read-only

Navigate once to a page, search for visible text, and get bounded context snippets. Use it to find and extract specific information from web pages without manual browsing.

Instructions

Navigate once, search visible text, and return bounded context matches.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
osNoOptional OS to spoof. Can be 'windows', 'macos', or 'linux'. If not specified, will rotate between all OS types.
urlYesThe URL to navigate to. Must be a fully qualified http or https URL.
argsNoAdditional browser command-line arguments to pass to the browser. Rejected unless CAMOUFOX_MCP_ALLOW_UNSAFE_OPTIONS=1; denied args are always rejected.
geoipNoAutomatically detect geolocation based on IP address.
proxyNoProxy configuration for routing browser traffic through an HTTP(S) proxy. Proxy servers are checked against the same local-network URL policy as page requests.
queryYesVisible text to search for on the page.
localeNoBrowser locale (e.g., 'en-US', 'fr-FR').
windowNoSet fixed window size [width, height] instead of random generation. An empty array [] is accepted and treated as if the window parameter was not specified.
timeoutNoTimeout in milliseconds for page load (5-300 seconds).
headlessNoRun browser in headless mode. Auto-detects best mode for environment if not specified.
humanizeNoEnable realistic cursor movements and human-like behavior for better stealth and anti-detection.
selectorNoOptional CSS selector to limit extraction to one matching element.
viewportNoCustom viewport dimensions.
maxMatchesNoMaximum matches to return.
block_webglNoBlock WebGL to prevent fingerprinting and tracking.
block_imagesNoBlock all images for faster loading, reduced bandwidth, and lightweight browsing.
block_webrtcNoBlock WebRTC entirely for enhanced privacy and stealth.
contextCharsNoCharacters of surrounding visible text to return per match.
disable_coopNoDisable Cross-Origin-Opener-Policy for sites that require it.
enable_cacheNoCache pages, requests, etc. Uses more memory but improves performance when revisiting pages.
waitStrategyNoWait strategy for page load. Defaults to 'domcontentloaded'. 'load' waits for all resources, 'networkidle' waits for network activity to finish.domcontentloaded
captchaPolicyNoChallenge handling policy. 'detect' reports signals, 'pause' returns state for human action, 'fail' returns an error, 'attempt' returns enhanced challenge metadata, interactive elements, a bounded screenshot, and a suggested strategy. When CAPTCHA_AUTONOMOUS=true, responses are marked for LLM-assisted handling and include provider-specific challengePlaybook context when known.
exclude_addonsNoList of default addons to exclude (e.g., ['ublock_origin']). Rejected unless CAMOUFOX_MCP_ALLOW_UNSAFE_OPTIONS=1.
includeConsoleNoInclude bounded page console diagnostics in the JSON response.
includeNetworkNoInclude bounded network diagnostics in the JSON response.
stealthProfileNoConvenience profile for common Camoufox browser settings. Explicit options override profile values.normal
firefox_user_prefsNoCustom Firefox user preferences to set. Rejected unless CAMOUFOX_MCP_ALLOW_UNSAFE_OPTIONS=1; denied prefs are always rejected.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlYes
queryYes
titleNo
statusNo
matchesYes
messageNo
selectorNo
truncatedYes
maxMatchesYes
contentTypeNo
diagnosticsNo
contextCharsYes
challengeTypeNo
selectorFoundYes
captchaIframesNo
captchaDetectedNo
challengeSignalsNo
challengeHandlingNo
challengePlaybookNo
challengeProviderNo
suggestedStrategyNo
requiresUserActionNo
interactiveElementsNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is known. The description adds useful behavioral traits: it navigates once, searches visible text (as opposed to HTML or raw source), and returns bounded context matches (limited by maxMatches and contextChars). This goes beyond the annotations and gives the agent a better understanding of the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence containing three short clauses: 'Navigate once, search visible text, and return bounded context matches.' Every word earns its place, and the structure front-loads the core action. No unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 27 parameters, nested objects, and an output schema, the description is minimal but sufficient to convey the essential purpose. The rich schema and output schema handle the detailed parameter semantics and return values, so the description does not need to explain them. However, it could have added a note about when to use it versus browse_links or browse_forms, but the sibling names partially cover that. It is complete enough for an agent to make an initial selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with detailed descriptions for all 27 parameters, including query, maxMatches, contextChars, and others. The description does not add any meaning beyond what the schema already provides; it merely echoes concepts already present in the parameter descriptions. Therefore, a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool navigates to a URL, searches visible text, and returns bounded context matches. This specific verb-action combination distinguishes it from siblings like browse_links (which finds links) and browse_forms (which finds forms), making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context: use this tool when you need to search for visible text on a webpage and get surrounding context. It does not explicitly list exclusions or alternatives, but the sibling tool names (browse_links, browse_forms, browse_outline) imply the differentiation, so the agent can infer when to choose this over others.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/whit3rabbit/camoufox-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server