-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy pathserver.json
More file actions
139 lines (139 loc) · 13.1 KB
/
Copy pathserver.json
File metadata and controls
139 lines (139 loc) · 13.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
{
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-09-29/server.schema.json",
"name": "camofox-mcp",
"description": "Anti-detection browser automation MCP server. 47 tools wrapping CamoFox REST API with stealth fingerprinting that passes bot detection.",
"repository": {
"url": "https://github.com/redf0x1/camofox-mcp",
"source": "github"
},
"version_detail": {
"version": "1.15.0",
"release_date": "2026-08-13",
"is_stable": true
},
"packages": [
{
"registry_name": "npm",
"name": "camofox-mcp",
"version": "1.15.0",
"runtime": "node",
"runtime_arguments": [],
"package_arguments": [],
"environment_variables": [
{
"name": "CAMOFOX_URL",
"description": "CamoFox server URL",
"required": false,
"default": "http://localhost:9377"
},
{
"name": "CAMOFOX_TIMEOUT",
"description": "Request timeout in ms",
"required": false,
"default": "30000"
},
{
"name": "CAMOFOX_API_KEY",
"description": "Optional outbound CamoFox Browser API key; leave unset when browser CAMOFOX_AUTH_MODE=disabled is used on a trusted private network",
"required": false
},
{
"name": "CAMOFOX_TRANSPORT",
"description": "Transport mode: stdio or http",
"required": false,
"default": "stdio"
},
{
"name": "CAMOFOX_HTTP_PORT",
"description": "HTTP server port for Streamable MCP transport",
"required": false,
"default": "3000"
},
{
"name": "CAMOFOX_HTTP_HOST",
"description": "HTTP server bind address",
"required": false,
"default": "127.0.0.1"
},
{
"name": "CAMOFOX_HTTP_RATE_LIMIT",
"description": "Maximum HTTP requests per minute",
"required": false,
"default": "60"
},
{
"name": "CAMOFOX_HTTP_API_KEY",
"description": "Inbound HTTP MCP Bearer token; required when HTTP transport binds beyond loopback",
"required": false
},
{
"name": "CAMOFOX_HTTP_ALLOWED_HOSTS",
"description": "Comma-separated Host header allowlist for HTTP transport",
"required": false
},
{
"name": "CAMOFOX_PROFILES_DIR",
"description": "Custom profiles directory for session persistence",
"required": false,
"default": "~/.camofox-mcp/profiles/"
},
{
"name": "CAMOFOX_VIEWPORT",
"description": "Default viewport size for new tabs in WIDTHxHEIGHT format (e.g., 1280x720). Width must be 320..3840 and height must be 240..2160.",
"required": false
}
]
}
],
"tools": [
{"name": "batch_click", "description": "Click multiple elements sequentially. Continues on error (clicks are independent). Returns per-click results."},
{"name": "camofox_close_session", "description": "Close all browser tabs for a user session. Use for complete cleanup when done with a browsing session.", "inputSchema": {"type": "object", "properties": {"tabId": {"type": "string", "description": "Any tab ID from the session to identify the user"}}, "required": ["tabId"], "additionalProperties": false}},
{"name": "camofox_evaluate_js", "description": "Execute JavaScript in the browser page context. Runs in isolated scope (invisible to page scripts — safe for anti-detection). Use for: extracting data not visible in accessibility snapshot, checking element properties, reading computed styles, manipulating DOM elements. Requires CAMOFOX_API_KEY only when browser-server authentication is enabled."},
{"name": "camofox_get_page_html", "description": "Get rendered HTML from the live DOM. Use when accessibility snapshots miss dynamic or custom component content."},
{"name": "camofox_hover", "description": "Hover over an element to trigger tooltips, dropdown menus, or hover states. Use ref from snapshot or CSS selector.", "inputSchema": {"type": "object", "properties": {"tabId": {"type": "string", "description": "Tab ID"}, "ref": {"type": "string", "description": "Element ref from snapshot (e.g. 'e5')"}, "selector": {"type": "string", "description": "CSS selector (e.g. '#menu-item', '.dropdown-trigger')"}}, "required": ["tabId"], "additionalProperties": false}},
{"name": "camofox_press_key", "description": "Press a keyboard key. Use after type_text to submit forms (Enter), navigate between elements (Tab), move through suggestions (ArrowDown/ArrowUp), or dismiss dialogs (Escape). Common keys: Enter, Tab, Escape, ArrowDown, ArrowUp, Backspace, Space."},
{"name": "camofox_query_selector", "description": "Query a CSS selector in the live DOM and return element text, HTML, attributes, and visibility metadata."},
{"name": "camofox_scroll_element", "description": "Scroll a specific container element (modal dialog, scrollable div, sidebar). Use when page-level scroll doesn't reach content inside modals or overflow containers. Returns scroll position metadata to track progress."},
{"name": "camofox_scroll_element_and_snapshot", "description": "Scroll a container element AND take a snapshot. Combines scroll_element + snapshot in one call. Perfect for incrementally loading lazy content in modals (e.g. Facebook group post comments). Returns both scroll position and page snapshot."},
{"name": "camofox_wait_for", "description": "Wait for page to be fully ready (DOM loaded, network idle, framework hydration complete). Use after navigation or actions that trigger page changes.", "inputSchema": {"type": "object", "properties": {"tabId": {"type": "string", "description": "Tab ID"}, "timeout": {"type": "number", "description": "Timeout in ms (default: 10000)"}, "waitForNetwork": {"type": "boolean", "description": "Wait for network idle (default: true)"}}, "required": ["tabId"], "additionalProperties": false}},
{"name": "camofox_wait_for_selector", "description": "Wait for a CSS selector to appear in the live DOM. Useful for SPA and async-content workflows."},
{"name": "camofox_wait_for_text", "description": "Wait for specific text to appear on the page. Useful for waiting for search results, form submissions, or dynamic content loading.", "inputSchema": {"type": "object", "properties": {"tabId": {"type": "string", "description": "Tab ID"}, "text": {"type": "string", "description": "Text to wait for"}, "timeout": {"type": "number", "description": "Timeout in ms (default: 10000)"}}, "required": ["tabId", "text"], "additionalProperties": false}},
{"name": "click", "description": "Click an element. Provide either ref (from snapshot) or CSS selector. Use snapshot first to discover element refs."},
{"name": "close_tab", "description": "Close a browser tab and release resources. Always close tabs when done to free memory."},
{"name": "create_tab", "description": "Create a new browser tab with anti-detection fingerprinting. Supports URL, user/session isolation, viewport/display size, geo overrides, proxyProfile/raw proxy, and geoMode. To share the camofox CLI default browser profile/context, pass userId \"cli-default\" and sessionKey \"default\"; this creates a tracked MCP tab in that context but does not attach to a CLI tab that is already open."},
{"name": "delete_download", "description": "Delete a downloaded file from disk and registry"},
{"name": "fill_form", "description": "Fill multiple form fields in one call. Provide an array of field entries, each with a ref or CSS selector and the text to type. Optionally specify a submit button to click after filling."},
{"name": "batch_download", "description": "Extract resources from a DOM container and download them all. Combines extract_resources + download in one call. Useful for downloading all images from a chat, all PDFs from a table, etc."},
{"name": "extract_resources", "description": "Extract resources (images, links, media, documents) from a specific DOM container. Use a CSS selector or element ref from snapshot to scope extraction to a particular section of the page. This is useful for extracting all images from a specific post, all links from a table, etc."},
{"name": "extract_structured", "description": "Extract deterministic structured JSON from a page using the camofox-browser structured extraction schema."},
{"name": "get_download", "description": "Get a downloaded file. Images are always returned as viewable images. Recommended for AI agents: set includeContent=true to get non-image file content as base64 inline (max 256KB). Otherwise returns metadata only (including contentUrl)."},
{"name": "get_links", "description": "Get all hyperlinks on page with URLs and text. Useful for navigation discovery and site mapping."},
{"name": "get_stats", "description": "Get session statistics: request counts, active tabs, uptime, performance metrics."},
{"name": "go_back", "description": "Navigate backward in browser history (Back button). Returns new page URL."},
{"name": "go_forward", "description": "Navigate forward in browser history (Forward button). Returns new page URL."},
{"name": "import_cookies", "description": "Import cookies for authenticated sessions. Provide cookies as JSON string array. Restores login sessions without re-auth. Requires userId."},
{"name": "list_presets", "description": "List all available geo presets supported by the CamoFox server. Presets include locale, timezone, and optional geolocation."},
{"name": "list_downloads", "description": "List downloaded files with optional filtering by tab, status, extension, MIME type, and size range. Each download includes contentUrl for direct file retrieval."},
{"name": "save_profile", "description": "Export cookies from an active tab and save them to a named session profile on disk."},
{"name": "load_profile", "description": "Load a named session profile from disk and import its cookies into a tab's browser session."},
{"name": "list_profiles", "description": "List saved session profiles with basic metadata."},
{"name": "delete_profile", "description": "Delete a saved session profile from disk."},
{"name": "list_tabs", "description": "List all open browser tabs with URLs and titles. Use to discover available tabs or verify tab state."},
{"name": "navigate", "description": "Navigate a tab to a URL. Waits for page load. Use create_tab first, then navigate. Returns final URL (may differ due to redirects)."},
{"name": "navigate_and_snapshot", "description": "Navigate to a URL and return the page snapshot. Combines navigate + wait + snapshot into one call."},
{"name": "refresh", "description": "Reload the current page. Useful when page state is stale or after changes."},
{"name": "screenshot", "description": "Take a viewport or full-page visual screenshot as base64 PNG. Set fullPage=true to capture the entire scrollable page. Use ONLY for visual verification (CSS, layout, proof). Prefer snapshot for most tasks — much more token-efficient."},
{"name": "scroll", "description": "Scroll page up or down by pixel amount. Use to reveal content below the fold or navigate long pages."},
{"name": "scroll_and_snapshot", "description": "Scroll the page and take a snapshot. Useful for revealing content below the fold."},
{"name": "server_status", "description": "Check CamoFox server health and browser connection. Call first to verify server is running. Returns version, browser status, and active tab count."},
{"name": "snapshot", "description": "Get accessibility tree snapshot — the PRIMARY way to read page content. Returns element refs, roles, names and values. Token-efficient. Always prefer over screenshot. Element refs are used with click and type_text."},
{"name": "resolve_blobs", "description": "Resolve blob: URLs to downloadable base64 data. Blob URLs are temporary browser objects (common in Telegram, WhatsApp, Discord) that cannot be downloaded directly. This tool converts them to base64 data URIs."},
{"name": "toggle_display", "description": "Switch a user session between headless, headed, and virtual display modes and return a VNC URL when available. On Windows x64 with camofox-browser 2.4.7, only headless=true is supported."},
{"name": "type_and_submit", "description": "Type text into a field and press a key (default: Enter). Useful for search boxes and single-field forms."},
{"name": "type_text", "description": "Type text into an input field. Provide either a ref (from snapshot) or a CSS selector. Use ref when available; use selector as fallback when snapshot doesn't assign refs (common with combobox/autocomplete inputs). Call snapshot first to find target element."},
{"name": "web_search", "description": "Search via the 14 macros supported by camofox-browser 2.4.7: google, youtube, amazon, reddit, reddit_subreddit, wikipedia, twitter, yelp, spotify, netflix, linkedin, instagram, tiktok, twitch. Call snapshot after to read results."},
{"name": "youtube_transcript", "description": "Fetch a YouTube transcript without opening a browser tab."}
],
"categories": ["browser-automation", "web-scraping"],
"tags": ["anti-detection", "stealth", "fingerprint", "camoufox", "playwright-alternative"]
}