{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"github_mcp-epiral-bb-browser","slug":"mcp-epiral-bb-browser","name":"bb-browser","type":"mcp","url":"https://github.com/epiral/bb-browser","page_url":"https://unfragile.ai/mcp-epiral-bb-browser","categories":["mcp-servers"],"tags":[],"pricing":{"model":"open_source","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"github_mcp-epiral-bb-browser__cap_0","uri":"capability://tool.use.integration.authenticated.browser.control.via.cdp","name":"authenticated-browser-control-via-cdp","description":"Direct Chrome DevTools Protocol (CDP) connection to a managed Chrome profile that preserves user authentication state (cookies, localStorage, sessionStorage, tokens). Unlike headless automation tools, bb-browser operates on a real browser instance with the user's actual login credentials, enabling interaction with authenticated web applications without credential re-entry or session simulation. The daemon layer (bb-browserd) maintains persistent CDP connections and translates CLI/MCP commands into low-level CDP protocol messages.","intents":["Control a real Chrome browser with existing login state from CLI or AI agent","Automate interactions with authenticated web applications without re-authenticating","Preserve session state across multiple automation runs","Enable AI agents to access authenticated APIs through the browser's session"],"best_for":["AI coding assistants (Claude Code, Cursor) needing authenticated web access","Developers automating workflows on authenticated SaaS platforms","Teams building AI agents that need to interact with user-specific web data"],"limitations":["Requires a running Chrome instance with a managed profile — cannot work with headless Chrome","CDP connection is local-only by default — no built-in remote execution without additional networking setup","Session state is tied to the specific Chrome profile — switching profiles requires restarting the daemon"],"requires":["Chrome/Chromium browser installed locally","Node.js 18+ for running bb-browserd daemon","User must be logged into target websites in the managed Chrome profile"],"input_types":["CLI commands (navigate, click, type, extract)","MCP tool invocations with parameters","JavaScript code for eval-based actions"],"output_types":["structured JSON from DOM extraction","screenshot data (PNG/base64)","text content from page elements","boolean success/failure indicators"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-epiral-bb-browser__cap_1","uri":"capability://tool.use.integration.site.adapter.ecosystem.for.domain.specific.automation","name":"site-adapter-ecosystem-for-domain-specific-automation","description":"A plugin architecture where JavaScript adapters (loaded from ~/.bb-browser/sites/ for local/private adapters and ~/.bb-browser/bb-sites/ for community adapters) define domain-specific commands that run within the browser's authenticated context. Each adapter includes @meta JSON metadata declaring the target domain, available commands, and argument schemas. The system uses domain-based discovery to suggest relevant adapters when users navigate to specific websites, and executes adapter code via eval() within the page context to access internal APIs, DOM, or localStorage without external API calls.","intents":["Convert any authenticated website into a structured CLI tool without the site providing an API","Create reusable automation scripts for specific web platforms (Gmail, Twitter, stock portfolios, etc.)","Share community-maintained adapters for popular websites across users","Extract data from websites using the browser's existing session and internal JavaScript context"],"best_for":["Community developers building adapters for popular SaaS platforms","Teams automating workflows on internal or third-party web applications","Non-technical users who want to turn websites into CLI tools without coding"],"limitations":["Adapters are JavaScript-only — no support for other languages without transpilation","Execution is synchronous within the browser context — long-running operations may block the page","No built-in error recovery or retry logic — adapters must handle failures explicitly","Community adapters are not sandboxed — malicious adapters could access sensitive page data or localStorage"],"requires":["JavaScript knowledge to write custom adapters","Understanding of target website's DOM structure or internal APIs","Access to the website with authenticated session already established"],"input_types":["adapter metadata (JSON @meta block)","JavaScript function definitions","CLI arguments matching adapter schema"],"output_types":["structured JSON from adapter return values","text/CSV data extracted from DOM","boolean success indicators"],"categories":["tool-use-integration","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-epiral-bb-browser__cap_10","uri":"capability://search.retrieval.domain.based.adapter.discovery.and.recommendation","name":"domain-based-adapter-discovery-and-recommendation","description":"Analyzes the current page's domain and suggests relevant site adapters using the getSiteHintForDomain function. When a user navigates to a website, bb-browser can recommend available adapters for that domain, helping users discover automation capabilities without manual search. The system maintains a mapping of domains to available adapters, enabling quick lookup and suggestion.","intents":["Discover available adapters for the current website","Get recommendations for automation capabilities on a specific domain","Learn what actions are available without reading documentation"],"best_for":["Users exploring what automation is possible on a website","AI agents discovering available tools for a specific domain","Building intelligent assistant features that suggest automation"],"limitations":["Recommendations are only available for domains with registered adapters","Domain matching is exact — subdomains may not be recognized","No personalization — recommendations are the same for all users"],"requires":["Current page domain","Adapter registry with domain mappings"],"input_types":["domain name (extracted from current page)"],"output_types":["list of available adapters for domain","adapter metadata (name, description, arguments)"],"categories":["search-retrieval","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-epiral-bb-browser__cap_11","uri":"capability://tool.use.integration.local.and.community.adapter.registry.management","name":"local-and-community-adapter-registry-management","description":"Manages two adapter directories: local (~/.bb-browser/sites/ for private/custom adapters) and community (~/.bb-browser/bb-sites/ synced from public GitHub repository). The system loads adapters from both locations, with local adapters taking precedence. Community adapters are automatically synced from a GitHub repository, enabling users to benefit from community-maintained adapters without manual installation. Adapter discovery and execution use this unified registry.","intents":["Use community-maintained adapters for popular websites","Create and manage private adapters for internal or sensitive workflows","Share adapters with the community via GitHub","Keep community adapters up-to-date with automatic syncing"],"best_for":["Community developers contributing adapters for popular platforms","Teams managing private adapters for internal applications","Users who want to benefit from community adapters without maintaining them"],"limitations":["Community adapters are not vetted — malicious adapters could access sensitive data","Syncing is manual or scheduled — updates may lag behind GitHub","No version management — only latest version of each adapter is available","Conflicts between local and community adapters are not resolved automatically"],"requires":["Git installed for syncing community adapters","Write access to ~/.bb-browser/ directory","Internet connection for syncing community adapters"],"input_types":["adapter file (JavaScript with @meta block)","GitHub repository URL for community adapters"],"output_types":["loaded adapter list","adapter metadata","sync status"],"categories":["tool-use-integration","memory-knowledge"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-epiral-bb-browser__cap_12","uri":"capability://automation.workflow.browser.event.monitoring.and.debugging.tools","name":"browser-event-monitoring-and-debugging-tools","description":"Provides monitoring and debugging commands (monitor, logs, debug) that expose browser events, console logs, network activity, and performance metrics via CDP protocol. These tools help developers understand what's happening in the browser during automation, diagnose failures, and optimize performance. Monitoring can be streamed in real-time or retrieved after execution.","intents":["Debug automation failures by examining browser console logs and errors","Monitor network requests to understand API calls and data loading","Track performance metrics to identify slow operations","Understand page state changes during automation"],"best_for":["Developers debugging complex automation workflows","Troubleshooting adapter failures","Performance optimization of automation scripts"],"limitations":["Monitoring adds overhead — may slow down automation","Large log volumes may consume significant memory","Network monitoring is limited to requests visible to CDP — some requests may be hidden","Performance metrics are CDP-specific — may not reflect real user experience"],"requires":["Browser must be running with CDP enabled","Sufficient memory for log buffering"],"input_types":["monitoring filter (e.g., log level, request type)","time range for log retrieval"],"output_types":["console logs (text)","network requests (JSON)","performance metrics (JSON)","error stack traces"],"categories":["automation-workflow","safety-moderation"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-epiral-bb-browser__cap_2","uri":"capability://tool.use.integration.mcp.protocol.translation.for.ai.agent.integration","name":"mcp-protocol-translation-for-ai-agent-integration","description":"Wraps bb-browser's CLI capabilities in a Model Context Protocol (MCP) stdio server, translating MCP tool invocations into daemon commands. The MCP layer (packages/mcp/src/index.ts) acts as a protocol adapter that converts AI agent tool calls into bb-browser CLI commands, executes them against the bb-browserd daemon, and returns structured results back to the agent. This enables AI coding assistants (Claude Code, Cursor) to control the browser as a native tool without CLI invocation overhead.","intents":["Enable AI coding assistants to control Chrome browser as a native MCP tool","Allow AI agents to interact with authenticated web applications programmatically","Provide structured tool definitions for AI models to discover and invoke browser actions","Integrate browser automation into AI agent workflows without subprocess calls"],"best_for":["AI coding assistants (Claude Code, Cursor, other MCP-compatible tools)","Teams building AI agents that need web interaction capabilities","Developers integrating browser automation into LLM-powered workflows"],"limitations":["MCP protocol is stdio-based — requires process management and IPC overhead","Tool definitions must be manually maintained in sync with CLI capabilities","No built-in request/response streaming — large data transfers may be inefficient","AI agent context window is consumed by tool definitions and execution results"],"requires":["MCP-compatible AI tool (Claude Code, Cursor, or custom MCP client)","bb-browserd daemon running and accessible","Node.js 18+ for running MCP server process"],"input_types":["MCP tool invocation with parameters (JSON)","tool discovery requests"],"output_types":["MCP tool result (JSON with success/error)","structured data from browser actions","tool definition schema (for discovery)"],"categories":["tool-use-integration","planning-reasoning"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-epiral-bb-browser__cap_3","uri":"capability://automation.workflow.dom.element.interaction.with.selector.based.targeting","name":"dom-element-interaction-with-selector-based-targeting","description":"Provides CLI commands (click, type, hover, focus, scroll) that target DOM elements using CSS selectors or XPath expressions. Commands are translated to CDP protocol messages that interact with the page's DOM in real-time. The system supports multi-element operations (e.g., clicking all elements matching a selector) and includes built-in waits for element visibility/stability before interaction, reducing flakiness in dynamic web applications.","intents":["Click buttons, links, or form elements identified by CSS selectors","Type text into input fields with automatic focus and clearing","Scroll to specific elements or page positions","Hover over elements to trigger tooltips or dropdowns","Wait for elements to become visible before interacting"],"best_for":["Automating form submissions and user workflows","Testing web applications with dynamic content","Extracting data from pages that require interaction to load content"],"limitations":["Selector-based targeting is brittle if page DOM changes frequently","No built-in handling for shadow DOM or iframes — requires manual frame navigation","Timing-sensitive interactions may fail if page is slow to respond","No visual element recognition — cannot identify buttons by appearance alone"],"requires":["Valid CSS selector or XPath expression for target element","Element must be in the DOM and eventually visible (with configurable timeout)"],"input_types":["CSS selector string","XPath expression","text content to type","scroll coordinates"],"output_types":["boolean success indicator","error message if element not found or interaction failed"],"categories":["automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-epiral-bb-browser__cap_4","uri":"capability://data.processing.analysis.structured.data.extraction.from.dom.and.javascript.context","name":"structured-data-extraction-from-dom-and-javascript-context","description":"Provides data extraction capabilities via two mechanisms: (1) DOM-based extraction using CSS selectors to query elements and return text/attributes/HTML, and (2) JavaScript eval-based extraction that executes arbitrary code within the page context to access internal state, localStorage, sessionStorage, or page-specific APIs. Results are returned as structured JSON, enabling AI agents and scripts to parse and process extracted data programmatically.","intents":["Extract structured data (tables, lists, cards) from web pages using CSS selectors","Access page-specific JavaScript objects or internal APIs (e.g., Redux store, Vue state)","Retrieve authentication tokens or API keys from localStorage/sessionStorage","Parse complex nested data structures from pages without external APIs"],"best_for":["Data extraction and web scraping workflows","Building adapters for SaaS platforms with internal APIs","Extracting user-specific data from authenticated web applications"],"limitations":["DOM-based extraction requires knowledge of page structure — brittle to layout changes","JavaScript eval has no sandboxing — can access any page data but also exposes sensitive information","Large data extraction may timeout if page is slow or data is voluminous","No built-in data transformation — returned data must be processed by caller"],"requires":["Valid CSS selector or JavaScript code for extraction","Target page must be loaded and stable"],"input_types":["CSS selector string","JavaScript code string","extraction parameters (e.g., attribute names)"],"output_types":["structured JSON object","array of extracted elements","text content or HTML"],"categories":["data-processing-analysis","search-retrieval"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-epiral-bb-browser__cap_5","uri":"capability://automation.workflow.tab.and.frame.management.with.multi.context.navigation","name":"tab-and-frame-management-with-multi-context-navigation","description":"Manages multiple browser tabs and frames through CDP protocol, enabling navigation to different URLs, switching between tabs, and executing commands within specific frame contexts. The system tracks tab state and provides commands to create new tabs, close tabs, and target commands to specific tabs or frames. This enables complex workflows that require interaction across multiple pages or frames within a single browser session.","intents":["Navigate to different URLs in separate tabs while maintaining session state","Switch between tabs to interact with different web applications","Execute commands within specific iframe contexts","Manage multiple parallel workflows in a single browser session"],"best_for":["Complex workflows requiring interaction across multiple pages","Testing multi-page user flows","Parallel data extraction from multiple sources in a single session"],"limitations":["Frame targeting requires knowledge of frame hierarchy — complex nested frames are difficult to navigate","Tab switching adds latency — rapid tab switching may cause race conditions","No built-in tab synchronization — must manually manage state across tabs","Cross-origin iframes are restricted by browser security — cannot access content in sandboxed frames"],"requires":["Tab or frame identifier (URL, title, or frame name)","Valid navigation URL for new tabs"],"input_types":["URL string for navigation","tab/frame identifier","command to execute in specific context"],"output_types":["tab/frame list with metadata","navigation success indicator","command results from specific context"],"categories":["automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-epiral-bb-browser__cap_6","uri":"capability://image.visual.screenshot.capture.and.visual.debugging","name":"screenshot-capture-and-visual-debugging","description":"Captures full-page or viewport screenshots via CDP protocol and returns them as PNG data (base64-encoded or file-based). Supports capturing specific regions or elements and includes options for viewport sizing and device emulation. Screenshots are useful for visual verification, debugging automation failures, and providing visual context to AI agents for understanding page state.","intents":["Capture visual state of page for debugging automation failures","Provide visual context to AI agents for understanding page layout","Verify visual changes after interactions (e.g., form submission, page load)","Generate visual reports of automated workflows"],"best_for":["Debugging browser automation scripts","Providing visual feedback to AI agents","Creating visual test reports"],"limitations":["Screenshots are large (typically 100KB-1MB) — consume significant context in AI agent workflows","Viewport-dependent — screenshots vary based on window size and device emulation","No built-in image analysis — AI agent must interpret visual content","Dynamic content may not be fully rendered at screenshot time"],"requires":["Page must be loaded and stable","Sufficient memory for screenshot buffer"],"input_types":["viewport dimensions (optional)","device emulation settings (optional)","region/element selector (optional)"],"output_types":["PNG image (base64-encoded)","image file path"],"categories":["image-visual","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-epiral-bb-browser__cap_7","uri":"capability://automation.workflow.daemon.based.browser.lifecycle.management","name":"daemon-based-browser-lifecycle-management","description":"The bb-browserd daemon (Daemon Layer Architecture) manages the Chrome browser lifecycle, maintaining persistent CDP connections and translating CLI/MCP commands into protocol messages. The daemon handles browser startup, profile management, connection pooling, and graceful shutdown. This architecture decouples the CLI/MCP interface from the browser control logic, enabling multiple clients (CLI, MCP, custom tools) to share a single browser instance and session state.","intents":["Start and manage a Chrome browser instance with a specific profile","Maintain persistent CDP connections across multiple commands","Share browser session state across multiple CLI/MCP clients","Handle browser crashes and reconnection automatically"],"best_for":["Long-running automation workflows that require persistent session state","Multi-client scenarios where CLI and MCP tools share the same browser","Production deployments requiring reliable browser lifecycle management"],"limitations":["Daemon must be running separately — adds operational complexity","No built-in clustering or failover — single daemon instance is a single point of failure","Profile management is manual — switching profiles requires daemon restart","No built-in monitoring or health checks — requires external monitoring tools"],"requires":["Node.js 18+ for running daemon","Chrome/Chromium browser installed","Sufficient disk space for browser profile"],"input_types":["browser profile path","Chrome launch arguments","CDP connection parameters"],"output_types":["daemon status (running/stopped)","CDP connection handle","browser process information"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-epiral-bb-browser__cap_8","uri":"capability://data.processing.analysis.cookie.and.token.based.api.request.execution","name":"cookie-and-token-based-api-request-execution","description":"Tier 1 and Tier 2 adapter execution modes that extract authentication credentials (cookies, Bearer tokens from localStorage/sessionStorage) from the authenticated browser context and use them to make direct HTTP requests to internal APIs. This enables adapters to call backend APIs without navigating the UI, using the user's existing authentication state. Requests are made with the extracted credentials, bypassing the need for credential re-entry or API key management.","intents":["Call internal APIs using cookies extracted from the authenticated browser session","Extract Bearer tokens from localStorage and use them for API requests","Automate API workflows without navigating the web UI","Access backend data without reverse-engineering API endpoints"],"best_for":["Automating API workflows on SaaS platforms with cookie-based or token-based auth","Building adapters for platforms with internal APIs accessible via extracted credentials","Data extraction workflows that can use API calls instead of DOM parsing"],"limitations":["Requires knowledge of internal API endpoints — not always documented","Token extraction is fragile — token location/format may change with site updates","CORS restrictions may prevent direct API calls from browser context","API rate limiting is not handled — adapters must implement their own throttling"],"requires":["Knowledge of target API endpoints and request format","Credentials must be in cookies or localStorage (not in secure httpOnly cookies)","API must accept requests with extracted credentials"],"input_types":["API endpoint URL","request parameters (query, body)","credential extraction logic (JavaScript)"],"output_types":["JSON response from API","structured data from API response"],"categories":["data-processing-analysis","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github_mcp-epiral-bb-browser__cap_9","uri":"capability://tool.use.integration.command.line.interface.with.structured.argument.parsing","name":"command-line-interface-with-structured-argument-parsing","description":"Provides a comprehensive CLI (packages/cli/src/index.ts) with subcommands for browser control (navigate, click, type, extract, screenshot), site adapter management (list, search, info, recommend), and debugging (monitor, logs). Arguments are parsed and validated against adapter metadata schemas, providing help text and error messages. The CLI layer translates user commands into daemon requests, enabling both interactive and scripted automation workflows.","intents":["Control browser interactively from the command line","Script browser automation workflows in shell scripts or CI/CD pipelines","Discover and run site adapters with argument validation","Debug browser automation with monitoring and logging commands"],"best_for":["Developers writing shell scripts for browser automation","CI/CD pipelines that need to automate web workflows","Interactive debugging of browser automation issues"],"limitations":["CLI is synchronous — long-running operations block the terminal","No built-in scripting language — complex workflows require external shell scripting","Argument parsing is strict — typos or missing arguments cause failures","No interactive REPL — each command requires a new CLI invocation"],"requires":["Node.js 18+ for running CLI","bb-browserd daemon running","Knowledge of available commands and arguments"],"input_types":["subcommand name","command arguments (flags, positional args)","adapter name and arguments"],"output_types":["command result (JSON or text)","help text","error messages"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":44,"verified":false,"data_access_risk":"high","permissions":["Chrome/Chromium browser installed locally","Node.js 18+ for running bb-browserd daemon","User must be logged into target websites in the managed Chrome profile","JavaScript knowledge to write custom adapters","Understanding of target website's DOM structure or internal APIs","Access to the website with authenticated session already established","Current page domain","Adapter registry with domain mappings","Git installed for syncing community adapters","Write access to ~/.bb-browser/ directory"],"failure_modes":["Requires a running Chrome instance with a managed profile — cannot work with headless Chrome","CDP connection is local-only by default — no built-in remote execution without additional networking setup","Session state is tied to the specific Chrome profile — switching profiles requires restarting the daemon","Adapters are JavaScript-only — no support for other languages without transpilation","Execution is synchronous within the browser context — long-running operations may block the page","No built-in error recovery or retry logic — adapters must handle failures explicitly","Community adapters are not sandboxed — malicious adapters could access sensitive page data or localStorage","Recommendations are only available for domains with registered adapters","Domain matching is exact — subdomains may not be recognized","No personalization — recommendations are the same for all users","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.587200143593163,"quality":0.35,"ecosystem":0.39999999999999997,"match_graph":0.25,"freshness":0.75,"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-05-24T12:16:22.065Z","last_scraped_at":"2026-05-03T14:23:31.492Z","last_commit":"2026-04-19T03:06:51Z"},"community":{"stars":4939,"forks":482,"weekly_downloads":null,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=mcp-epiral-bb-browser","compare_url":"https://unfragile.ai/compare?artifact=mcp-epiral-bb-browser"}},"signature":"M6T2aAsru6A/6VmpRDB+/vpqw1r8XWr/JA+nhd7b6FhvbSVMNFtPBs7pGL1b4pSCnGegB8NOBXsTbG8rIQrkAw==","signedAt":"2026-06-22T02:56:51.830Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/mcp-epiral-bb-browser","artifact":"https://unfragile.ai/mcp-epiral-bb-browser","verify":"https://unfragile.ai/api/v1/verify?slug=mcp-epiral-bb-browser","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"}}