{"name":"io.github.baixianger/camoufox-mcp","slug":"baixianger-camoufox-mcp","title":null,"description":"Anti-detection browser automation with Camoufox - stealth Firefox for web scraping","url":"https://mcp.market/server/baixianger-camoufox-mcp","rating":null,"grade":"C","score":68,"certified":false,"status":"active","category":"scraping","tags":["scraping"],"presence":{"score":20,"stars":7,"forks":1,"downloads_week":52,"last_push_at":"2026-02-20T15:08:17.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/baixianger/camoufox-mcp","website":null,"version":"1.0.0","remotes":[],"packages":[{"registryType":"npm","identifier":"camoufox-mcp","version":"1.0.0","transport":{"type":"stdio"}}],"tools":[{"name":"clear_console_logs","description":"Clear captured console logs","write_action":false,"price_micros":0,"input_schema":null},{"name":"clear_network_logs","description":"Clear captured network logs","write_action":false,"price_micros":0,"input_schema":null},{"name":"click","description":"Click an element by its UID from snapshot","write_action":false,"price_micros":0,"input_schema":null},{"name":"close_page","description":"Close a browser page/tab","write_action":false,"price_micros":0,"input_schema":null},{"name":"close_session","description":"Close a browser session and all its pages","write_action":false,"price_micros":0,"input_schema":null},{"name":"create_session","description":"Create a new isolated browser session with its own cookies and localStorage. Optionally pre-load context from a JSON file.","write_action":true,"price_micros":0,"input_schema":null},{"name":"dismiss_popups","description":"Dismiss cookie consent popups and overlays","write_action":false,"price_micros":0,"input_schema":null},{"name":"drag","description":"Drag an element to another element","write_action":false,"price_micros":0,"input_schema":null},{"name":"evaluate_isolated","description":"Execute JavaScript in an ISOLATED context (sandboxed, separate from page scripts). USE THIS TOOL WHEN YOU NEED TO: - Make async operations (fetch, setTimeout, Promises) - Query/manipulate the DOM without affecting page state - Run code that shouldn't interfere with page scripts - Perform async data extraction or waiting LIMITATIONS: - CANNOT access window globals (window.__NUXT__, etc. will be und","write_action":true,"price_micros":0,"input_schema":null},{"name":"evaluate_mainworld","description":"Execute JavaScript in the page's MAIN execution context (same as browser DevTools console). USE THIS TOOL WHEN YOU NEED TO: - Access window globals like window.__NUXT__, window.__NEXT_DATA__, window.__APP_STATE__ - Read framework hydration state (Next.js, Nuxt.js, Vue, React, etc.) - Access variables/functions defined by the page's own scripts - Interact with third-party libraries loaded by the pa","write_action":true,"price_micros":0,"input_schema":null},{"name":"fill","description":"Fill a form field (input, textarea, select) by its UID","write_action":false,"price_micros":0,"input_schema":null},{"name":"fill_form","description":"Fill multiple form fields at once","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_config_paths","description":"Get all config file paths (user config, package default, active)","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_console_logs","description":"Get captured console messages","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_framework_state","description":"Extract Next.js/Nuxt.js hydration state from the page","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_network_logs","description":"Get captured network request logs","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_page_text","description":"Extract text content from the page","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_recording_status","description":"Get current recording status","write_action":false,"price_micros":0,"input_schema":null},{"name":"hover","description":"Hover over an element by its UID","write_action":false,"price_micros":0,"input_schema":null},{"name":"init_user_config","description":"Initialize user config directory (~/.config/camoufox-mcp) with default settings","write_action":false,"price_micros":0,"input_schema":null},{"name":"inject_context","description":"Inject browser context (cookies + localStorage) from a JSON file into a session or page's context. The file should follow Playwright's storageState format with cookies[] and origins[].localStorage[].","write_action":false,"price_micros":0,"input_schema":null},{"name":"intercept_network","description":"Intercept and block/modify network requests","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_context_files","description":"List available context files registered in settings. Use create_session with a contextPath to load one on demand.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_pages","description":"List all open browser pages/tabs","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_sessions","description":"List all browser sessions with their page counts and metadata","write_action":false,"price_micros":0,"input_schema":null},{"name":"navigate_page","description":"Navigate to a URL or go back/forward/reload","write_action":false,"price_micros":0,"input_schema":null},{"name":"new_page","description":"Create a new browser page/tab, optionally navigating to a URL. Specify sessionId to create in a specific session.","write_action":true,"price_micros":0,"input_schema":null},{"name":"press_key","description":"Press a keyboard key or combination","write_action":false,"price_micros":0,"input_schema":null},{"name":"reload_settings","description":"Reload settings from config file","write_action":false,"price_micros":0,"input_schema":null},{"name":"remove_intercept","description":"Remove network intercept rules","write_action":true,"price_micros":0,"input_schema":null},{"name":"save_session","description":"Export a session's cookies and localStorage to a JSON file (Playwright storageState format)","write_action":false,"price_micros":0,"input_schema":null},{"name":"select_page","description":"Set a page as the active page for subsequent operations","write_action":false,"price_micros":0,"input_schema":null},{"name":"start_console_capture","description":"Start capturing browser console messages","write_action":false,"price_micros":0,"input_schema":null},{"name":"start_network_capture","description":"Start capturing network requests","write_action":false,"price_micros":0,"input_schema":null},{"name":"start_recording","description":"Start recording user interactions (clicks, scrolls, inputs)","write_action":false,"price_micros":0,"input_schema":null},{"name":"stop_console_capture","description":"Stop capturing console messages","write_action":false,"price_micros":0,"input_schema":null},{"name":"stop_network_capture","description":"Stop capturing network requests","write_action":false,"price_micros":0,"input_schema":null},{"name":"stop_recording","description":"Stop recording and return captured actions","write_action":false,"price_micros":0,"input_schema":null},{"name":"take_screenshot","description":"Take a screenshot of the page or a specific element","write_action":false,"price_micros":0,"input_schema":null},{"name":"take_snapshot","description":"Take a text snapshot of the page with interactive element UIDs for targeting","write_action":false,"price_micros":0,"input_schema":null},{"name":"wait_for","description":"Wait for text or selector to appear on the page","write_action":false,"price_micros":0,"input_schema":null},{"name":"wait_for_navigation","description":"Wait for page navigation to complete","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":68,"grade":"C","scanned_at":"2026-09-28T14:26:56.414Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-09-28T14:26:56.393Z","components":{"code":{"score":20,"max":25,"notes":["43 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":4,"max":15,"notes":["last push 220 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[{"id":"exec.eval","severity":"medium","component":"code","title":"eval / new Function used","evidence":"dist/tools/utility.js: … try { const text = await page.$eval(selector, (el) => { // Remov…"}],"inputs":{"packages":[{"registryType":"npm","identifier":"camoufox-mcp","version":"1.0.0","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":4,"publishedAt":"2026-02-20T15:08:58.754Z","repositoryUrl":"git+https://github.com/baixianger/camoufox-mcp.git","weeklyDownloads":52}],"repo":{"found":true,"owner":"baixianger","repo":"camoufox-mcp","archived":false,"pushedAt":"2026-02-20T15:08:17Z","stars":7,"forks":1,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/58243749?v=4","ownerCreatedAt":"2019-11-27T04:14:33Z"},"icon":{"url":"https://avatars.githubusercontent.com/u/58243749?v=4&s=128","source":"github"},"presence":{"stars":7,"forks":1,"downloadsWeek":52,"license":"MIT","lastPushAt":"2026-02-20T15:08:17.000Z","score":20}}}},"grade_history":[],"reviews":[]}