{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"npm_npm-browser-devtools-mcp","slug":"npm-browser-devtools-mcp","name":"browser-devtools-mcp","type":"mcp","url":"https://www.npmjs.com/package/browser-devtools-mcp","page_url":"https://unfragile.ai/npm-browser-devtools-mcp","categories":["mcp-servers"],"tags":["ai","mcp","mcp-server","browser","dev-tools","debug"],"pricing":{"model":"open_source","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"npm_npm-browser-devtools-mcp__cap_0","uri":"capability://tool.use.integration.browser.devtools.protocol.bridging","name":"browser-devtools-protocol-bridging","description":"Exposes Chrome DevTools Protocol (CDP) as MCP resources and tools, allowing LLM agents to interact with browser automation and inspection through a standardized message-passing interface. Implements bidirectional communication between MCP clients and CDP endpoints, translating MCP tool calls into CDP commands and streaming CDP events back as resource updates.","intents":["I need my AI agent to control a browser and inspect page state without writing Puppeteer/Playwright code","I want to expose browser debugging capabilities to Claude or other LLM clients via MCP","I need to automate browser interactions (navigation, clicking, form filling) through an LLM interface"],"best_for":["AI agent developers building browser automation workflows","Teams integrating LLMs with web testing and debugging pipelines","Developers prototyping AI-driven web scraping and interaction systems"],"limitations":["Requires active Chrome/Chromium instance with DevTools Protocol enabled (--remote-debugging-port flag)","No built-in session persistence — each MCP connection maps to a single CDP session","Limited to Chrome/Edge/Chromium browsers; Safari and Firefox require separate protocol implementations","Network latency between MCP server and CDP endpoint can add 50-200ms per command"],"requires":["Node.js 16+","Chrome/Chromium/Edge browser with --remote-debugging-port=9222 (or custom port)","MCP client implementation (Claude Desktop, custom agent framework, etc.)","Network connectivity between MCP server and browser DevTools endpoint"],"input_types":["MCP tool call with CDP command parameters (JSON)","CDP method names and arguments (e.g., 'Page.navigate', 'DOM.getDocument')"],"output_types":["CDP command responses (JSON)","Page state snapshots (DOM tree, computed styles, network logs)","Event streams (navigation, console messages, network activity)"],"categories":["tool-use-integration","browser-automation"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm_npm-browser-devtools-mcp__cap_1","uri":"capability://tool.use.integration.page.navigation.and.context.management","name":"page-navigation-and-context-management","description":"Manages browser page lifecycle (navigation, reload, back/forward) and maintains context about the current page state (URL, title, DOM structure). Implements CDP Page domain methods wrapped as MCP tools, allowing agents to navigate to URLs, wait for page load events, and retrieve structured snapshots of page content for decision-making.","intents":["I need my agent to navigate to different URLs and wait for pages to fully load before taking action","I want to capture the current page structure and content so the agent can decide what to do next","I need to implement browser back/forward/reload actions as part of an agent workflow"],"best_for":["Web scraping agents that need to traverse multi-page workflows","Testing automation where page state verification is critical","Research agents that need to navigate and analyze multiple web pages"],"limitations":["No built-in handling of JavaScript-heavy SPAs — may require explicit wait conditions for dynamic content","Page load detection relies on CDP Page.frameStoppedLoading event, which may fire before all async resources load","DOM snapshots are point-in-time and don't reflect subsequent JavaScript mutations without re-querying","No automatic cookie/session management — requires explicit handling via CDP Network domain"],"requires":["Active Chrome DevTools Protocol connection","Target page must be accessible from the MCP server's network context"],"input_types":["URL string (for navigation)","Wait condition parameters (timeout in milliseconds)","Reload options (hard reload, ignore cache)"],"output_types":["Page metadata (URL, title, document ready state)","DOM tree representation (JSON or HTML string)","Page load timing metrics (domContentLoaded, loadEventFired)"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm_npm-browser-devtools-mcp__cap_10","uri":"capability://memory.knowledge.mcp.resource.streaming.for.page.state","name":"mcp-resource-streaming-for-page-state","description":"Exposes current page state (DOM, metadata, network activity, console logs) as MCP resources that agents can subscribe to and monitor in real-time. Implements resource URIs for different page aspects (e.g., 'browser://page/dom', 'browser://page/console'), with automatic updates as page state changes, enabling agents to maintain contextual awareness without polling.","intents":["I need to subscribe to page state changes and react to them in my agent workflow","I want to maintain a current snapshot of the page DOM and metadata for decision-making","I need to monitor console output and network activity in real-time during automation"],"best_for":["Long-running agents that need to react to page state changes","Multi-step workflows where page state is critical context for decisions","Monitoring agents tracking page health and activity over time"],"limitations":["Resource updates are asynchronous — agents must handle eventual consistency","Large page DOMs can generate high-volume resource updates, impacting performance","No built-in filtering or sampling — all state changes are streamed","Resource subscriptions are per-connection — no cross-client state sharing"],"requires":["MCP client that supports resource subscriptions","Active Chrome DevTools Protocol connection"],"input_types":["Resource URI (e.g., 'browser://page/dom', 'browser://page/console')","Optional filter criteria (log level, network type, etc.)"],"output_types":["Structured page state (DOM tree, metadata, network events, console logs)","Incremental updates (delta from previous state)","Timestamp and change type (added, modified, removed)"],"categories":["memory-knowledge","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm_npm-browser-devtools-mcp__cap_2","uri":"capability://tool.use.integration.dom.query.and.element.inspection","name":"dom-query-and-element-inspection","description":"Provides MCP tools for querying the DOM using CSS selectors or XPath, retrieving element properties (text content, attributes, computed styles, bounding box), and inspecting element hierarchy. Implements CDP DOM domain methods with selector-based lookup, enabling agents to locate and analyze page elements without JavaScript execution.","intents":["I need to find elements on a page by CSS selector or XPath and extract their text/attributes","I want to check if a specific element exists and get its computed styles or position","I need to inspect the DOM tree structure to understand page layout before interacting with it"],"best_for":["Web scraping agents extracting structured data from HTML","Testing agents that need to verify element presence and properties","Accessibility auditing agents analyzing page structure and ARIA attributes"],"limitations":["Selector queries are synchronous snapshots — don't wait for elements to appear in the DOM","Computed styles reflect only CSS, not JavaScript-applied styles (e.g., inline style mutations)","XPath queries may be slower than CSS selectors on large DOMs (no built-in optimization)","Bounding box coordinates are relative to viewport, not document — require scroll position context for absolute positioning"],"requires":["Active Chrome DevTools Protocol connection","Page must be loaded and DOM accessible via CDP"],"input_types":["CSS selector string (e.g., '.button-primary')","XPath expression (e.g., '//button[contains(text(), \"Submit\")]')","Element node ID (from previous query results)"],"output_types":["Element metadata (tag name, text content, attributes)","Computed style properties (color, display, position, etc.)","Bounding box (x, y, width, height in viewport coordinates)","Element hierarchy (parent, children, siblings)"],"categories":["tool-use-integration","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm_npm-browser-devtools-mcp__cap_3","uri":"capability://tool.use.integration.user.interaction.simulation","name":"user-interaction-simulation","description":"Simulates user interactions (click, type, scroll, hover, key press) by translating MCP tool calls into CDP Input domain commands. Implements element targeting via CSS selector or coordinates, with automatic scroll-into-view and focus management, enabling agents to interact with page elements without JavaScript injection.","intents":["I need my agent to click buttons, fill forms, and submit pages as if a human were using the browser","I want to type text into input fields and trigger keyboard events (Enter, Tab, etc.)","I need to scroll the page and hover over elements to reveal hidden content or tooltips"],"best_for":["Web automation agents performing end-to-end workflows (login, form submission, navigation)","Testing agents simulating user interactions for functional testing","Accessibility testing agents verifying keyboard navigation and focus management"],"limitations":["Click coordinates must be calculated from element bounding box — may fail if element is off-screen or obscured","No built-in retry logic for stale element references — requires explicit re-query if DOM changes between lookup and interaction","Typing speed is instantaneous (no human-like delays) — may trigger different validation behavior than real user input","Hover events don't trigger CSS :hover styles reliably on all elements (depends on page implementation)","No support for drag-and-drop or multi-touch gestures"],"requires":["Active Chrome DevTools Protocol connection","Page must be visible and interactive (not minimized or backgrounded)","Target element must be in the DOM and have a valid bounding box"],"input_types":["CSS selector or element coordinates (x, y)","Text string to type","Key name (e.g., 'Enter', 'Tab', 'Escape')","Scroll direction and amount (pixels or viewport height)"],"output_types":["Confirmation of interaction (success/failure)","Updated page state after interaction (if page changes)","Error details if interaction fails (element not found, out of bounds, etc.)"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm_npm-browser-devtools-mcp__cap_4","uri":"capability://code.generation.editing.javascript.execution.and.evaluation","name":"javascript-execution-and-evaluation","description":"Executes arbitrary JavaScript in the page context via CDP Runtime domain, allowing agents to evaluate expressions, call page functions, and access JavaScript objects. Implements serialization of return values to JSON, with support for primitive types, objects, and arrays, enabling agents to extract computed data or trigger page-specific logic.","intents":["I need to execute custom JavaScript to extract data that's not accessible via DOM queries","I want to call page functions or access window object properties from my agent","I need to evaluate complex expressions (e.g., computed properties, React state) to make decisions"],"best_for":["Agents scraping data from JavaScript-heavy SPAs (React, Vue, Angular)","Testing agents that need to verify application state or trigger internal functions","Debugging agents that need to inspect runtime state and object properties"],"limitations":["Return values must be JSON-serializable — complex objects (DOM nodes, functions, circular references) cause serialization errors","Execution context is isolated per call — no persistent variables across multiple evaluations (unless stored on window object)","Long-running scripts may timeout (CDP default ~30s) — no built-in support for async operations or promises","Errors in JavaScript execution are reported as CDP exceptions, not structured error objects","No access to Node.js modules or external libraries — only browser APIs available"],"requires":["Active Chrome DevTools Protocol connection","Page must be loaded and JavaScript execution must be enabled","Return value must be JSON-serializable (primitives, objects, arrays only)"],"input_types":["JavaScript code string (expression or statement)","Function name and arguments (for calling page functions)","Object path string (e.g., 'window.myApp.state')"],"output_types":["Serialized return value (JSON)","Error message if execution fails","Execution timing (duration in milliseconds)"],"categories":["code-generation-editing","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm_npm-browser-devtools-mcp__cap_5","uri":"capability://tool.use.integration.network.activity.monitoring.and.interception","name":"network-activity-monitoring-and-interception","description":"Monitors network requests and responses via CDP Network domain, providing agents with visibility into HTTP traffic, response bodies, and request headers. Implements request/response logging with optional filtering by URL pattern or resource type, enabling agents to verify API calls, extract data from network responses, or detect failed requests.","intents":["I need to see what API calls the page is making and extract data from the responses","I want to verify that specific network requests were made with correct parameters","I need to detect failed network requests and decide how to handle them in my workflow"],"best_for":["Agents scraping data from API-driven applications (need to intercept API responses)","Testing agents verifying network behavior and API contract compliance","Debugging agents analyzing network traffic to understand application behavior"],"limitations":["Response body capture requires explicit enablement and may increase memory usage for large responses","Network events are streamed in real-time — no built-in buffering or replay mechanism","Request/response filtering is pattern-based — no support for complex conditional logic","HTTPS traffic is visible but encrypted at the TLS layer — no ability to decrypt or modify encrypted payloads","Service Worker and cached responses may not generate network events"],"requires":["Active Chrome DevTools Protocol connection","Network domain must be enabled via CDP (automatic in most cases)"],"input_types":["URL pattern string (for filtering requests)","Resource type filter (e.g., 'xhr', 'fetch', 'document', 'image')","Request ID (from previous network event)"],"output_types":["Network request metadata (URL, method, headers, status code)","Response body (text, JSON, or binary)","Timing information (duration, latency)","Error details if request failed"],"categories":["tool-use-integration","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm_npm-browser-devtools-mcp__cap_6","uri":"capability://tool.use.integration.console.and.error.logging","name":"console-and-error-logging","description":"Captures console output (log, warn, error, info) and JavaScript errors via CDP Runtime domain, streaming them as MCP resources or tool responses. Implements log level filtering and error stack trace capture, enabling agents to monitor page health and detect runtime errors during automation.","intents":["I need to see console errors and warnings to detect if something went wrong on the page","I want to capture console.log output from the page to extract debugging information","I need to verify that no JavaScript errors occurred during my automation workflow"],"best_for":["Testing agents verifying application stability and error handling","Debugging agents diagnosing page failures and runtime issues","Monitoring agents detecting anomalies or unexpected behavior during automation"],"limitations":["Console capture is asynchronous — early logs may be missed if capture is enabled after page load","Error stack traces may be minified or source-mapped depending on page configuration","No filtering for third-party library errors — all console output is captured indiscriminately","Large volumes of console output can impact performance and memory usage"],"requires":["Active Chrome DevTools Protocol connection","Runtime domain must be enabled via CDP"],"input_types":["Log level filter (e.g., 'error', 'warning', 'all')","Optional pattern matching for log messages"],"output_types":["Console message (text, log level, timestamp)","JavaScript error details (message, stack trace, source location)","Structured error object (if available)"],"categories":["tool-use-integration","safety-moderation"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm_npm-browser-devtools-mcp__cap_7","uri":"capability://image.visual.screenshot.and.visual.capture","name":"screenshot-and-visual-capture","description":"Captures page screenshots and visual state via CDP Page.captureScreenshot, returning base64-encoded PNG images. Implements viewport-aware capture with optional clipping to specific elements or regions, enabling agents to verify visual state, detect layout changes, or provide visual context for decision-making.","intents":["I need to take a screenshot of the current page state to verify it looks correct","I want to capture a specific element or region of the page for visual analysis","I need to compare screenshots before and after an interaction to detect visual changes"],"best_for":["Visual testing agents verifying UI appearance and layout","Accessibility agents analyzing visual hierarchy and contrast","Debugging agents capturing page state for troubleshooting"],"limitations":["Screenshots are static snapshots — don't capture animations or transitions","Base64 encoding adds ~33% overhead to image size","Clipping to elements requires element lookup and coordinate calculation — adds latency","Headless mode may render differently than headed mode (fonts, rendering engine differences)","Large screenshots can consume significant memory and bandwidth"],"requires":["Active Chrome DevTools Protocol connection","Page must be visible and rendered (headless or headed mode)"],"input_types":["Optional viewport dimensions (width, height)","Optional element selector for clipping","Optional region coordinates (x, y, width, height)"],"output_types":["Base64-encoded PNG image","Image dimensions (width, height)","Capture timestamp"],"categories":["image-visual","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm_npm-browser-devtools-mcp__cap_8","uri":"capability://data.processing.analysis.performance.metrics.and.timing.analysis","name":"performance-metrics-and-timing-analysis","description":"Retrieves page performance metrics (navigation timing, resource timing, Core Web Vitals) via CDP Performance domain, providing agents with quantitative data about page load performance and responsiveness. Implements metric aggregation and filtering, enabling agents to detect performance regressions or optimize slow pages.","intents":["I need to measure page load time and identify performance bottlenecks","I want to verify that Core Web Vitals (LCP, FID, CLS) meet performance targets","I need to compare performance metrics before and after changes to detect regressions"],"best_for":["Performance testing agents monitoring page load times and responsiveness","Optimization agents identifying slow resources or rendering bottlenecks","Monitoring agents tracking performance trends over time"],"limitations":["Metrics are only available after page load — no real-time performance monitoring during load","Core Web Vitals require user interaction (FID) or specific page behavior (CLS) — may not be measurable in automated scenarios","Resource timing data is limited by CORS — cross-origin resources may not have detailed timing","Metrics are relative to page load start — require baseline for meaningful comparison"],"requires":["Active Chrome DevTools Protocol connection","Page must be fully loaded","Performance domain must be enabled via CDP"],"input_types":["Optional metric filter (e.g., 'navigationTiming', 'resourceTiming')"],"output_types":["Navigation timing metrics (domContentLoaded, loadEventFired, etc.)","Resource timing (per-resource duration, size, type)","Core Web Vitals (LCP, FID, CLS if available)","Aggregated metrics (total load time, resource count)"],"categories":["data-processing-analysis","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm_npm-browser-devtools-mcp__cap_9","uri":"capability://tool.use.integration.cookie.and.storage.management","name":"cookie-and-storage-management","description":"Manages browser cookies and storage (localStorage, sessionStorage, IndexedDB) via CDP Storage domain, enabling agents to set/get/delete cookies, inspect storage contents, and maintain session state across page navigations. Implements storage type detection and serialization, allowing agents to persist and retrieve data without JavaScript execution.","intents":["I need to set cookies to maintain authentication state across page navigations","I want to inspect localStorage or sessionStorage to verify application state","I need to clear cookies and storage to reset the browser state between test runs"],"best_for":["Testing agents managing authentication and session state","Automation agents persisting state across multi-page workflows","Debugging agents inspecting application storage for troubleshooting"],"limitations":["Cookie operations are domain-specific — cannot set cookies for other domains","IndexedDB access is limited to inspection — no direct read/write of database contents","Storage quota limits apply — large data storage may fail silently","Secure cookies (HttpOnly, Secure flag) cannot be modified via CDP","Storage is cleared on browser close unless persistence is explicitly enabled"],"requires":["Active Chrome DevTools Protocol connection","Page must be loaded for domain-specific storage operations"],"input_types":["Cookie name, value, domain, path, expiration","Storage type (localStorage, sessionStorage, IndexedDB)","Storage key (for key-value stores)"],"output_types":["Cookie list (name, value, domain, expiration, flags)","Storage contents (key-value pairs or IndexedDB object stores)","Confirmation of storage operation (success/failure)"],"categories":["tool-use-integration","memory-knowledge"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":29,"verified":false,"data_access_risk":"high","permissions":["Node.js 16+","Chrome/Chromium/Edge browser with --remote-debugging-port=9222 (or custom port)","MCP client implementation (Claude Desktop, custom agent framework, etc.)","Network connectivity between MCP server and browser DevTools endpoint","Active Chrome DevTools Protocol connection","Target page must be accessible from the MCP server's network context","MCP client that supports resource subscriptions","Page must be loaded and DOM accessible via CDP","Page must be visible and interactive (not minimized or backgrounded)","Target element must be in the DOM and have a valid bounding box"],"failure_modes":["Requires active Chrome/Chromium instance with DevTools Protocol enabled (--remote-debugging-port flag)","No built-in session persistence — each MCP connection maps to a single CDP session","Limited to Chrome/Edge/Chromium browsers; Safari and Firefox require separate protocol implementations","Network latency between MCP server and CDP endpoint can add 50-200ms per command","No built-in handling of JavaScript-heavy SPAs — may require explicit wait conditions for dynamic content","Page load detection relies on CDP Page.frameStoppedLoading event, which may fire before all async resources load","DOM snapshots are point-in-time and don't reflect subsequent JavaScript mutations without re-querying","No automatic cookie/session management — requires explicit handling via CDP Network domain","Resource updates are asynchronous — agents must handle eventual consistency","Large page DOMs can generate high-volume resource updates, impacting performance","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.05,"quality":0.32,"ecosystem":0.48000000000000004,"match_graph":0.25,"freshness":0.6,"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:23.903Z","last_scraped_at":"2026-05-03T14:23:37.615Z","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=npm-browser-devtools-mcp","compare_url":"https://unfragile.ai/compare?artifact=npm-browser-devtools-mcp"}},"signature":"1EVJyMMZUoL7SnBJO1PBnn8dCS3ktSnTRm+Hnnvhnu5CvxfuVw9uTc9No68074+HJkMbCXh75g4Izpw90fkrDw==","signedAt":"2026-06-21T07:11:59.651Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/npm-browser-devtools-mcp","artifact":"https://unfragile.ai/npm-browser-devtools-mcp","verify":"https://unfragile.ai/api/v1/verify?slug=npm-browser-devtools-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"}}