{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"awesome-browser-mcp","slug":"browser-mcp","name":"Browser MCP","type":"mcp","url":"https://github.com/bytedance/UI-TARS-desktop/tree/main/packages/agent-infra/mcp-servers/browser","page_url":"https://unfragile.ai/browser-mcp","categories":["mcp-servers"],"tags":[],"pricing":{"model":"open_source","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"awesome-browser-mcp__cap_0","uri":"capability://tool.use.integration.accessibility.tree.based.browser.element.targeting","name":"accessibility tree-based browser element targeting","description":"Extracts and structures DOM elements via Puppeteer's accessibility tree API, converting browser UI into a machine-readable format that LLMs can reason about without pixel-level analysis. This approach parses semantic HTML structure, ARIA attributes, and computed accessibility properties into a hierarchical JSON representation, enabling precise element identification and interaction planning without vision processing overhead.","intents":["I need my LLM agent to identify and interact with specific UI elements without sending screenshots","I want to reduce latency by using structured accessibility data instead of vision models for basic navigation","I need to extract form fields, buttons, and interactive elements with their labels and states"],"best_for":["LLM agent builders automating web applications with deterministic UI structures","Teams building accessibility-first automation where semantic HTML is reliable","Developers optimizing for speed over visual complexity handling"],"limitations":["Cannot handle visual-only UI elements (canvas, SVG graphics, custom-drawn components) without vision fallback","Accessibility tree may be incomplete or malformed on poorly-structured websites","Dynamic content loaded after initial page render may not be captured without explicit wait strategies","Requires well-formed HTML with proper ARIA labels for optimal element identification"],"requires":["Puppeteer 10.0+","Node.js 14+","Browser with accessibility tree support (Chrome/Chromium)"],"input_types":["URL string","HTML page content"],"output_types":["JSON accessibility tree","structured element metadata with selectors"],"categories":["tool-use-integration","browser-automation"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-browser-mcp__cap_1","uri":"capability://image.visual.optional.vision.augmented.element.understanding","name":"optional vision-augmented element understanding","description":"Integrates optional vision model processing (VLM) for scenarios where accessibility tree data is insufficient, allowing the MCP server to fall back to screenshot analysis for complex visual layouts, custom components, or visual-only interactions. The architecture supports pluggable VLM providers (OpenAI Vision, local models) that receive cropped element screenshots and accessibility context together, enabling hybrid reasoning that combines structural and visual understanding.","intents":["I need to handle complex visual UIs that don't have proper semantic HTML or ARIA labels","I want to understand visual styling, positioning, or appearance-based interactions","I need fallback vision processing when accessibility tree data is incomplete or ambiguous"],"best_for":["Teams automating legacy web applications with minimal semantic markup","Builders handling visual design-heavy interfaces (design tools, image editors, custom dashboards)","Projects where accuracy on complex UIs justifies the latency/cost of vision processing"],"limitations":["Vision processing adds 500ms-2s latency per element analysis depending on VLM provider","Requires API credentials for external VLM providers or local model infrastructure","Vision fallback increases token consumption and operational costs significantly","Screenshot-based analysis may fail on dynamic animations or time-sensitive UI states"],"requires":["OpenAI API key (for GPT-4V) OR local VLM setup (LLaVA, etc.)","Puppeteer 10.0+","Configuration to enable vision mode in MCP server"],"input_types":["screenshot buffer","element bounding box coordinates","accessibility tree context"],"output_types":["visual description text","interaction recommendations","element classification and state"],"categories":["image-visual","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-browser-mcp__cap_10","uri":"capability://memory.knowledge.cookie.and.storage.management.across.sessions","name":"cookie and storage management across sessions","description":"Manages browser cookies, localStorage, sessionStorage, and IndexedDB across automation sessions, enabling state persistence across page navigations and session resumption. The implementation provides APIs to read, write, and clear storage, supporting cookie serialization for session export/import, enabling multi-step workflows that require maintaining authentication state or user preferences across multiple pages.","intents":["I need to maintain login state across multiple page navigations","I want to persist user preferences or session data between automation steps","I need to export and import session state for resuming interrupted workflows"],"best_for":["LLM agents automating multi-step workflows requiring authentication","Teams testing applications with complex session management","Developers building resilient automation that can resume from checkpoints"],"limitations":["Storage access is limited to same-origin policy; cross-domain storage is not accessible","IndexedDB and localStorage are not directly queryable; requires JavaScript evaluation","Cookies with HttpOnly flag cannot be accessed or modified programmatically","Storage size limits vary by browser; large data may be silently truncated"],"requires":["Puppeteer 10.0+","Node.js 14+","Valid page context"],"input_types":["cookie object (name, value, domain, path, etc.)","storage key-value pairs"],"output_types":["cookie array","storage contents (JSON)","serialized session state"],"categories":["memory-knowledge","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-browser-mcp__cap_11","uri":"capability://automation.workflow.configurable.mcp.server.deployment.and.transport","name":"configurable mcp server deployment and transport","description":"Deploys the Browser MCP server with flexible transport options (stdio, HTTP, SSE) and configuration management, supporting both local and remote deployment scenarios. The architecture uses environment variables and configuration files for flexible setup, enabling deployment as a standalone service, embedded in larger agent systems, or as a Docker container, with support for multiple concurrent client connections and graceful shutdown.","intents":["I need to deploy browser automation as a standalone MCP service","I want to integrate browser MCP into my existing agent infrastructure","I need to configure browser automation for different environments (local, cloud, Docker)"],"best_for":["Teams building production agent systems with browser automation","DevOps engineers deploying MCP services in containerized environments","Developers integrating browser automation into larger agent frameworks"],"limitations":["Stdio transport is single-client only; HTTP/SSE required for multi-client scenarios","Configuration via environment variables may be inflexible for complex setups","Docker deployment requires Chromium installation, increasing image size (~500MB+)","Remote deployment adds network latency (~100-500ms per operation)"],"requires":["Node.js 16+","MCP client library compatible with chosen transport","Docker (for containerized deployment)","Environment variables or config file for server settings"],"input_types":["configuration object (JSON)","environment variables","transport type selection"],"output_types":["server instance","transport connection handle","health status"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-browser-mcp__cap_2","uri":"capability://tool.use.integration.mcp.compliant.tool.schema.registration.and.function.calling","name":"mcp-compliant tool schema registration and function calling","description":"Implements the Model Context Protocol (MCP) server specification, exposing browser automation capabilities as standardized MCP tools with JSON schema definitions. The server registers tools like 'click', 'type', 'navigate', 'extract_text' with formal input/output schemas, allowing any MCP-compatible LLM client to discover, validate, and invoke browser actions through the standard MCP tool-calling interface without custom integration code.","intents":["I want to connect my LLM agent to browser automation using standard MCP protocol","I need to expose browser tools to multiple LLM clients (Claude, GPT, local models) without rewriting integrations","I want schema validation and type safety for browser tool invocations"],"best_for":["Teams building multi-LLM agent systems that need protocol standardization","Developers integrating browser automation into MCP-aware frameworks (Claude SDK, Anthropic tools)","Organizations standardizing on MCP for tool orchestration across agents"],"limitations":["MCP protocol overhead adds ~50-100ms per tool invocation compared to direct function calls","Requires MCP-compatible LLM client; older APIs (REST-only) need adapter layer","Schema validation may reject valid but non-conformant tool calls from non-standard clients","Limited to MCP's transport layer capabilities (stdio, HTTP, SSE)"],"requires":["MCP specification 1.0+","Node.js 16+","MCP-compatible LLM client library"],"input_types":["JSON schema definitions","tool invocation requests (JSON)"],"output_types":["tool execution results (JSON)","MCP protocol responses"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-browser-mcp__cap_3","uri":"capability://automation.workflow.cross.platform.browser.session.management.via.puppeteer","name":"cross-platform browser session management via puppeteer","description":"Manages browser lifecycle and session state through Puppeteer's high-level API, handling browser launch, page creation, context isolation, and graceful shutdown across Windows, macOS, and Linux. The architecture maintains a pool of browser contexts with independent cookies, storage, and network interception, allowing multiple concurrent automation sessions with isolated state while reusing a single browser process for efficiency.","intents":["I need to automate multiple browser sessions concurrently without interference","I want to manage browser state (cookies, local storage) across multiple pages","I need reliable browser lifecycle management with proper cleanup and error recovery"],"best_for":["Teams running multi-session automation workflows (parallel testing, batch processing)","Developers needing cross-platform browser automation without platform-specific code","Projects requiring isolated browser contexts for security or state management"],"limitations":["Puppeteer requires Chromium/Chrome installation (~200MB disk space per browser version)","Context isolation adds memory overhead (~50-100MB per context)","Browser process management can be unstable under high concurrency (>10 concurrent contexts)","No built-in support for Firefox or Safari; Chromium-only"],"requires":["Puppeteer 10.0+","Node.js 14+","Chrome/Chromium browser or downloadable version","200MB+ free disk space"],"input_types":["browser launch options (JSON)","page navigation URLs"],"output_types":["browser instance handle","page content and state"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-browser-mcp__cap_4","uri":"capability://data.processing.analysis.structured.dom.extraction.and.content.parsing","name":"structured dom extraction and content parsing","description":"Extracts and parses page content into structured formats (JSON, markdown, plain text) by traversing the DOM and accessibility tree, capturing text content, form fields, links, and metadata while preserving semantic relationships. The parser handles nested structures, tables, lists, and form hierarchies, outputting clean structured data suitable for LLM analysis without requiring vision processing or manual HTML parsing.","intents":["I need to extract all text content and structure from a webpage for analysis","I want to parse form fields and their labels into structured data","I need to convert webpage content to markdown or JSON for downstream processing"],"best_for":["LLM agents performing content extraction and analysis tasks","Teams building web scraping pipelines that need semantic structure","Developers automating data entry by parsing form structures"],"limitations":["Extraction quality depends on HTML semantic markup; poorly-structured pages may lose context","JavaScript-rendered content requires explicit wait strategies; initial DOM may be incomplete","Large pages (>10MB DOM) may cause memory issues or slow extraction","Cannot extract content from iframes without explicit frame navigation"],"requires":["Puppeteer 10.0+","Node.js 14+","Valid HTML/DOM structure"],"input_types":["DOM node references","page content"],"output_types":["JSON structured data","markdown text","plain text","form field metadata"],"categories":["data-processing-analysis","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-browser-mcp__cap_5","uri":"capability://automation.workflow.interactive.element.action.execution.click.type.scroll.submit","name":"interactive element action execution (click, type, scroll, submit)","description":"Executes user-like interactions on page elements through Puppeteer's high-level action APIs, including clicking, typing text, scrolling, form submission, and keyboard navigation. The implementation handles element visibility verification, scroll-into-view automation, focus management, and retry logic for flaky interactions, ensuring reliable action execution even on dynamically-rendered or partially-visible elements.","intents":["I need to click buttons and links reliably, even if they're partially off-screen","I want to fill forms by typing into fields with proper focus and keyboard handling","I need to scroll pages and handle dynamic content loading triggered by scroll events"],"best_for":["LLM agents automating user workflows (form filling, navigation, interaction)","Teams building web testing automation with human-like interaction patterns","Developers handling complex multi-step workflows requiring precise element interaction"],"limitations":["Actions may fail on elements with custom event handlers or non-standard interaction patterns","Scroll-triggered content loading requires explicit wait strategies; timing is non-deterministic","Keyboard input doesn't support all special characters or IME input methods","Click actions may be intercepted by overlays or modal dialogs requiring explicit dismissal"],"requires":["Puppeteer 10.0+","Node.js 14+","Valid page context with loaded DOM"],"input_types":["element selector or reference","text input string","scroll coordinates","keyboard key names"],"output_types":["action success/failure status","updated page state","error messages"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-browser-mcp__cap_6","uri":"capability://automation.workflow.page.navigation.and.wait.strategy.orchestration","name":"page navigation and wait strategy orchestration","description":"Manages page navigation with configurable wait strategies (waitForNavigation, waitForSelector, waitForFunction, waitForTimeout) to handle dynamic content loading, SPA routing, and asynchronous rendering. The implementation chains wait conditions intelligently, detecting when navigation is complete vs when content is still loading, and provides timeout management to prevent indefinite hangs on slow or broken pages.","intents":["I need to navigate to URLs and wait for pages to fully load before interacting","I want to handle single-page applications that don't do traditional navigation","I need to wait for specific content to appear before proceeding with automation"],"best_for":["LLM agents automating modern web applications with async rendering","Teams handling SPAs, progressive web apps, and dynamic content sites","Developers building robust automation that handles slow networks and lazy loading"],"limitations":["Wait strategies are heuristic-based; no guarantee of detecting all content loads","Timeout values must be tuned per-site; no universal defaults work for all scenarios","SPA routing detection may fail on non-standard routing libraries or custom navigation","Infinite scroll or continuously-loading content may never reach a 'complete' state"],"requires":["Puppeteer 10.0+","Node.js 14+","Valid page context"],"input_types":["URL string","wait condition (selector, function, timeout)","navigation options (referer, waitUntil)"],"output_types":["page content after load","navigation success/timeout status","loaded resource metadata"],"categories":["automation-workflow","planning-reasoning"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-browser-mcp__cap_7","uri":"capability://automation.workflow.network.request.interception.and.response.mocking","name":"network request interception and response mocking","description":"Intercepts and modifies HTTP requests/responses at the network layer using Puppeteer's request interception API, enabling request blocking, response mocking, header injection, and request modification. This capability allows automation to bypass external dependencies, mock API responses, inject authentication headers, or block tracking scripts without modifying page code, useful for testing, performance optimization, and handling external service failures.","intents":["I need to mock API responses to test workflows without hitting real backends","I want to block tracking scripts or ads to speed up page loads","I need to inject authentication headers or modify requests for testing"],"best_for":["QA teams testing web applications with mocked backends","Developers automating workflows that depend on external APIs","Teams optimizing automation performance by blocking unnecessary resources"],"limitations":["Request interception adds ~100-200ms overhead per request due to context switching","Cannot intercept HTTPS requests without certificate manipulation (requires OS-level setup)","WebSocket and Server-Sent Events are not interceptable through standard request API","Complex request patterns (streaming, chunked responses) may not mock correctly"],"requires":["Puppeteer 10.0+","Node.js 14+","Valid page context with interception enabled"],"input_types":["URL pattern (string or regex)","mock response object (status, headers, body)","request modification function"],"output_types":["intercepted request metadata","mock response","request modification confirmation"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-browser-mcp__cap_8","uri":"capability://image.visual.screenshot.capture.and.visual.state.recording","name":"screenshot capture and visual state recording","description":"Captures full-page or element-specific screenshots in multiple formats (PNG, JPEG) with configurable quality, scaling, and viewport settings. The implementation supports full-page scrolling screenshots, element bounding box capture, and viewport-relative screenshots, enabling visual state recording for debugging, verification, or vision model input without requiring external screenshot tools.","intents":["I need to capture visual evidence of page state for debugging or verification","I want to take screenshots of specific elements for vision model analysis","I need full-page screenshots that capture content beyond the viewport"],"best_for":["LLM agents using vision models for complex UI understanding","QA teams documenting test results with visual evidence","Developers debugging automation failures with visual context"],"limitations":["Full-page screenshots of very tall pages (>10000px) may cause memory issues","Screenshot quality depends on browser rendering; some CSS effects may not render correctly","Animated or time-dependent visual states cannot be captured reliably","Screenshots don't capture dynamic content loaded after capture (e.g., hover states)"],"requires":["Puppeteer 10.0+","Node.js 14+","Valid page context"],"input_types":["screenshot options (format, quality, fullPage, clip)","element selector or bounding box"],"output_types":["screenshot buffer (PNG/JPEG)","image file path","base64-encoded image"],"categories":["image-visual","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-browser-mcp__cap_9","uri":"capability://code.generation.editing.javascript.execution.and.page.state.evaluation","name":"javascript execution and page state evaluation","description":"Executes arbitrary JavaScript in the page context using Puppeteer's evaluateOnNewDocument and evaluate APIs, enabling custom logic execution, state inspection, and DOM manipulation. The implementation handles serialization of return values, error propagation, and context isolation, allowing automation to run custom scripts for complex state queries, form validation, or page-specific logic without relying on accessibility tree or DOM selectors.","intents":["I need to run custom JavaScript to extract complex page state or computed values","I want to execute page-specific logic that's not available through standard DOM APIs","I need to inject scripts before page load to intercept or modify behavior"],"best_for":["Developers automating complex web applications with custom logic","Teams handling pages with non-standard state management or data structures","QA engineers testing JavaScript-heavy applications"],"limitations":["JavaScript execution is synchronous; async operations require Promise handling","Return values must be JSON-serializable; complex objects or functions cannot be returned","Injected scripts run in page context; access to Node.js APIs is not available","Script execution timeout is limited; long-running scripts may be terminated"],"requires":["Puppeteer 10.0+","Node.js 14+","Valid page context","JavaScript knowledge for custom scripts"],"input_types":["JavaScript code string","function arguments (JSON-serializable)"],"output_types":["script return value (JSON)","execution error messages"],"categories":["code-generation-editing","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":31,"verified":false,"data_access_risk":"high","permissions":["Puppeteer 10.0+","Node.js 14+","Browser with accessibility tree support (Chrome/Chromium)","OpenAI API key (for GPT-4V) OR local VLM setup (LLaVA, etc.)","Configuration to enable vision mode in MCP server","Valid page context","Node.js 16+","MCP client library compatible with chosen transport","Docker (for containerized deployment)","Environment variables or config file for server settings"],"failure_modes":["Cannot handle visual-only UI elements (canvas, SVG graphics, custom-drawn components) without vision fallback","Accessibility tree may be incomplete or malformed on poorly-structured websites","Dynamic content loaded after initial page render may not be captured without explicit wait strategies","Requires well-formed HTML with proper ARIA labels for optimal element identification","Vision processing adds 500ms-2s latency per element analysis depending on VLM provider","Requires API credentials for external VLM providers or local model infrastructure","Vision fallback increases token consumption and operational costs significantly","Screenshot-based analysis may fail on dynamic animations or time-sensitive UI states","Storage access is limited to same-origin policy; cross-domain storage is not accessible","IndexedDB and localStorage are not directly queryable; requires JavaScript evaluation","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.05,"quality":0.49,"ecosystem":0.39999999999999997,"match_graph":0.25,"freshness":0.52,"weights":{"adoption":0.25,"quality":0.25,"ecosystem":0.15,"match_graph":0.23,"freshness":0.12}},"observed_outcomes":{"matches":0,"success_rate":0,"avg_confidence":0,"top_intents":[],"last_matched_at":null},"maintenance":{"status":"active","updated_at":"2026-06-17T09:51:02.371Z","last_scraped_at":"2026-05-03T14:00:15.503Z","last_commit":null},"community":{"stars":null,"forks":null,"weekly_downloads":null,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=browser-mcp","compare_url":"https://unfragile.ai/compare?artifact=browser-mcp"}},"signature":"yN4vqJKwhFduSE24x0T+nbs63K4QbyBHZwnENME7G96c8DNkRZYP+/cvYdcHAtFjdneLr5sj92Z1LUirLoLOBw==","signedAt":"2026-06-20T14:41:10.788Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/browser-mcp","artifact":"https://unfragile.ai/browser-mcp","verify":"https://unfragile.ai/api/v1/verify?slug=browser-mcp","publicKey":"https://unfragile.ai/api/v1/trust-passport-public-key","spec":"https://unfragile.ai/trust","schema":"https://unfragile.ai/schema.json","docs":"https://unfragile.ai/docs"}}