BrowserTools MCP
The BrowserTools MCP server enables AI-powered browser monitoring, interaction, and comprehensive auditing through Anthropic's Model Context Protocol.
Core Capabilities:
Browser Monitoring: Retrieve console logs, console errors, network logs, and network error logs
Visual Capture: Take screenshots of the current browser tab
DOM Interaction: Get details about the currently selected DOM element
Data Management: Wipe all stored browser logs from memory
Comprehensive Auditing (leveraging Lighthouse/Puppeteer):
Accessibility audit (WCAG compliance)
Performance audit (identify bottlenecks and loading issues)
SEO audit (evaluate on-page SEO factors)
Best practices audit (web development standards)
NextJS-specific audit (specialized for NextJS applications)
Automated Modes:
Debugger Mode: Execute all debugging tools sequentially
Audit Mode: Run comprehensive audits for SEO, accessibility, and performance optimization
Enables integration with Lighthouse to perform website audits for accessibility, performance, SEO, and best practices directly through the MCP server.
Uses Puppeteer to automate headless browser instances for running audits and collecting page data for analysis.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@BrowserTools MCPrun an accessibility audit on the current page"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
BrowserTools MCP
Make your AI tools 10x more aware and capable of interacting with your browser
This application is a powerful browser monitoring and interaction tool that enables AI-powered applications via Anthropic's Model Context Protocol (MCP) to capture and analyze browser data through a Chrome extension.
Read our docs for the full installation, quickstart and contribution guides.
Roadmap
Check out our project roadmap here: Github Roadmap / Project Board
Related MCP server: browser-tools-mcp
Updates
v1.2.0 is out! Here's a quick breakdown of the update:
You can now enable "Allow Auto-Paste into Cursor" within the DevTools panel. Screenshots will be automatically pasted into Cursor (just make sure to focus/click into the Agent input field in Cursor, otherwise it won't work!)
Integrated a suite of SEO, performance, accessibility, and best practice analysis tools via Lighthouse
Implemented a NextJS specific prompt used to improve SEO for a NextJS application
Added Debugger Mode as a tool which executes all debugging tools in a particular sequence, along with a prompt to improve reasoning
Added Audit Mode as a tool to execute all auditing tools in a particular sequence
Resolved Windows connectivity issues
Improved networking between BrowserTools server, extension and MCP server with host/port auto-discovery, auto-reconnect, and graceful shutdown mechanisms
Added ability to more easily exit out of the Browser Tools server with Ctrl+C
Please make sure to update the version in your IDE / MCP client as so:
npx @agentdeskai/browser-tools-mcp@1.2.0
Also make sure to download the latest version of the chrome extension here: v1.2.0 BrowserToolsMCP Chrome Extension
From there you can run the local node server like so:
npx @agentdeskai/browser-tools-server@1.2.0
Make sure to specify version 1.2.0 since NPX caching may prevent you from getting the latest version! You should only have to do this once for every update. After you do it once, you should be on the latest version.
And once you've opened your chrome dev tools, logs should be getting sent to your server š¦¾
If you have any questions or issues, feel free to open an issue ticket! And if you have any ideas to make this better, feel free to reach out or open an issue ticket with an enhancement tag or reach out to me at @tedx_ai on x
Full Update Notes:
Coding agents like Cursor can run these audits against the current page seamlessly. By leveraging Puppeteer and the Lighthouse npm library, BrowserTools MCP can now:
Evaluate pages for WCAG compliance
Identify performance bottlenecks
Flag on-page SEO issues
Check adherence to web development best practices
Review NextJS specific issues with SEO
...all without leaving your IDE š
š Key Additions
Audit Type | Description |
Accessibility | WCAG-compliant checks for color contrast, missing alt text, keyboard navigation traps, ARIA attributes, and more. |
Performance | Lighthouse-driven analysis of render-blocking resources, excessive DOM size, unoptimized images, and other factors affecting page speed. |
SEO | Evaluates on-page SEO factors (like metadata, headings, and link structure) and suggests improvements for better search visibility. |
Best Practices | Checks for general best practices in web development. |
NextJS Audit | Injects a prompt used to perform a NextJS audit. |
Audit Mode | Runs all auditing tools in a sequence. |
Debugger Mode | Runs all debugging tools in a sequence. |
š ļø Using Audit Tools
ā Before You Start
Ensure you have:
An active tab in your browser
The BrowserTools extension enabled
ā¶ļø Running Audits
Headless Browser Automation:
Puppeteer automates a headless Chrome instance to load the page and collect audit data, ensuring accurate results even for SPAs or content loaded via JavaScript.
The headless browser instance remains active for 60 seconds after the last audit call to efficiently handle consecutive audit requests.
Structured Results:
Each audit returns results in a structured JSON format, including overall scores and detailed issue lists. This makes it easy for MCP-compatible clients to interpret the findings and present actionable insights.
The MCP server provides tools to run audits on the current page. Here are example queries you can use to trigger them:
Accessibility Audit (runAccessibilityAudit)
Ensures the page meets accessibility standards like WCAG.
Example Queries:
"Are there any accessibility issues on this page?"
"Run an accessibility audit."
"Check if this page meets WCAG standards."
Performance Audit (runPerformanceAudit)
Identifies performance bottlenecks and loading issues.
Example Queries:
"Why is this page loading so slowly?"
"Check the performance of this page."
"Run a performance audit."
SEO Audit (runSEOAudit)
Evaluates how well the page is optimized for search engines.
Example Queries:
"How can I improve SEO for this page?"
"Run an SEO audit."
"Check SEO on this page."
Best Practices Audit (runBestPracticesAudit)
Checks for general best practices in web development.
Example Queries:
"Run a best practices audit."
"Check best practices on this page."
"Are there any best practices issues on this page?"
Audit Mode (runAuditMode)
Runs all audits in a particular sequence. Will run a NextJS audit if the framework is detected.
Example Queries:
"Run audit mode."
"Enter audit mode."
NextJS Audits (runNextJSAudit)
Checks for best practices and SEO improvements for NextJS applications.
Example Queries:
"Run a NextJS audit."
"Run a NextJS audit, I'm using app router."
"Run a NextJS audit, I'm using page router."
Debugger Mode (runDebuggerMode)
Runs all debugging tools in a particular sequence.
Example Queries:
"Enter debugger mode."
Architecture
There are three core components all used to capture and analyze browser data:
Chrome Extension: A browser extension that captures screenshots, console logs, network activity and DOM elements.
Node Server: An intermediary server that facilitates communication between the Chrome extension and any instance of an MCP server.
MCP Server: A Model Context Protocol server that provides standardized tools for AI clients to interact with the browser.
āāāāāāāāāāāāāāā āāāāāāāāāāāāāāāā āāāāāāāāāāāāāāāāā āāāāāāāāāāāāāāā
ā MCP Client ā āāāŗ ā MCP Server ā āāāŗ ā Node Server ā āāāŗ ā Chrome ā
ā (e.g. ā āāā ā (Protocol ā āāā ā (Middleware) ā āāā ā Extension ā
ā Cursor) ā ā Handler) ā ā ā ā ā
āāāāāāāāāāāāāāā āāāāāāāāāāāāāāāā āāāāāāāāāāāāāāāāā āāāāāāāāāāāāāāāModel Context Protocol (MCP) is a capability supported by Anthropic AI models that allow you to create custom tools for any compatible client. MCP clients like Claude Desktop, Cursor, Cline or Zed can run an MCP server which "teaches" these clients about a new tool that they can use.
These tools can call out to external APIs but in our case, all logs are stored locally on your machine and NEVER sent out to any third-party service or API. BrowserTools MCP runs a local instance of a NodeJS API server which communicates with the BrowserTools Chrome Extension.
All consumers of the BrowserTools MCP Server interface with the same NodeJS API and Chrome extension.
Chrome Extension
Monitors XHR requests/responses and console logs
Tracks selected DOM elements
Sends all logs and current element to the BrowserTools Connector
Connects to Websocket server to capture/send screenshots
Allows user toconfigure token/truncation limits + screenshot folder path
Node Server
Acts as middleware between the Chrome extension and MCP server
Receives logs and currently selected element from Chrome extension
Processes requests from MCP server to capture logs, screenshot or current element
Sends Websocket command to the Chrome extension for capturing a screenshot
Intelligently truncates strings and # of duplicate objects in logs to avoid token limits
Removes cookies and sensitive headers to avoid sending to LLMs in MCP clients
MCP Server
Implements the Model Context Protocol
Provides standardized tools for AI clients
Compatible with various MCP clients (Cursor, Cline, Zed, Claude Desktop, etc.)
Installation
Installation steps can be found in our documentation:
Usage
Once installed and configured, the system allows any compatible MCP client to:
Monitor browser console output
Capture network traffic
Take screenshots
Analyze selected elements
Wipe logs stored in our MCP server
Run accessibility, performance, SEO, and best practices audits
Compatibility
Works with any MCP-compatible client
Primarily designed for Cursor IDE integration
Supports other AI editors and MCP clients
Available Tools
14 toolsgetConsoleErrorsB
Check our browsers console errors
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. It implies a read operation ('Check') but doesn't disclose whether it requires specific permissions, how errors are retrieved (e.g., real-time vs. stored), or what the output format might be. More context on behavior is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It is front-loaded and directly states the tool's purpose without unnecessary elaboration, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete for effective use. It doesn't explain what 'Check' entails operationally (e.g., returns a list, triggers a scan), the scope (e.g., current page, all tabs), or error format, leaving gaps for an AI agent to infer behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so the schema fully documents the absence of inputs. The description doesn't need to add parameter details, and it correctly implies no inputs are required, aligning with the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Check') and target resource ('browsers console errors'), making the purpose understandable. It distinguishes from some siblings like 'getNetworkErrors' by specifying console errors, but doesn't explicitly differentiate from 'getConsoleLogs' which might overlap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'getConsoleLogs' or 'getNetworkErrors'. The description only states what it does without context about appropriate use cases or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getConsoleLogsC
Check our browser logs
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states the action without behavioral details. It doesn't disclose whether this is read-only, if it requires specific permissions, how logs are returned (e.g., format, pagination), or any side effects like clearing logs. 'Check' suggests a read operation, but this isn't explicitly confirmed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's front-loaded with the core action, though it could be more specific (e.g., 'Retrieve all browser console logs'). The brevity is appropriate but borders on under-specification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and multiple sibling tools, the description is incomplete. It doesn't explain what 'browser logs' include (e.g., console, network, errors), how results are structured, or how this differs from similar tools. For a tool in a set with specialized alternatives, more context is needed to guide proper selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so the schema fully documents the absence of inputs. The description doesn't need to add parameter semantics, and it correctly implies no inputs are required, aligning with the schema. Baseline 4 is appropriate for zero-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Check our browser logs' states a clear action ('Check') and resource ('browser logs'), but it's vague about scope and format. It doesn't distinguish from siblings like 'getConsoleErrors' or 'getNetworkLogs' that might retrieve specific log subsets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'getConsoleErrors' or 'getNetworkLogs'. The description implies a general log check but doesn't specify contexts, prerequisites, or exclusions, leaving the agent to guess based on tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getNetworkErrorsB
Check our network ERROR logs
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states 'Check' which implies a read operation, but doesn't specify whether this requires authentication, has rate limits, returns real-time vs historical data, or affects system state. The description is too minimal for a tool that presumably accesses logs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just four words, with zero wasted language. It's front-loaded with the core purpose and uses all words effectively to convey the essential function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a log-checking tool with no annotations and no output schema, the description is insufficient. It doesn't explain what format the errors are returned in, whether they're filtered or comprehensive, time ranges covered, or how this differs from sibling logging tools. The agent lacks necessary context for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters with 100% schema description coverage, so the schema already fully documents the parameter situation. The description doesn't need to compensate for any parameter gaps, and it correctly implies no required inputs for checking logs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Check') and resource ('network ERROR logs'), making the tool's purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'getNetworkLogs' or 'getConsoleErrors', which would require more specific scope definition.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'getNetworkLogs' or 'getConsoleErrors'. There's no mention of specific use cases, prerequisites, or exclusions, leaving the agent without contextual direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getNetworkLogsC
Check ALL our network logs
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. 'Check' suggests a read operation, but it doesn't disclose behavioral traits such as permissions needed, rate limits, whether it returns real-time or historical data, or potential side effects. The description adds minimal value beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's front-loaded with the core action and resource, making it easy to scan and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and 0 parameters, the description is incomplete. It lacks details on what 'check' returns (e.g., log format, time range, filtering), behavioral context, and usage guidelines, making it inadequate for a tool that likely interacts with system logs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate here, earning a baseline score of 4 for adequately handling the lack of parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Check ALL our network logs' states the action (check) and resource (network logs), but is vague about scope and format. It distinguishes from siblings like 'getConsoleLogs' by specifying 'network' logs, but lacks specificity about what 'check' entails (e.g., list, retrieve, monitor).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like 'getNetworkErrors' or 'wipeLogs'. The description implies it's for network logs, but doesn't clarify use cases, prerequisites, or exclusions, leaving the agent to infer usage from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getSelectedElementC
Get the selected element from the browser
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the action ('Get') but does not disclose behavioral traits such as whether it requires specific permissions, how it handles errors (e.g., if no element is selected), or what the return format might be. This leaves significant gaps for a tool interacting with browser elements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It is front-loaded and appropriately sized for a simple tool, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of browser interaction and lack of annotations or output schema, the description is incomplete. It does not explain what 'selected element' entails (e.g., DOM element, properties returned) or potential side effects, leaving the agent with insufficient context for reliable use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so no parameter information is needed. The description does not add parameter details, which is appropriate here, but it could have clarified context (e.g., implicit parameters like browser session), though not required for a baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool's purpose ('Get the selected element from the browser') with a clear verb ('Get') and resource ('selected element'), but it does not distinguish it from sibling tools like 'takeScreenshot' or 'runAccessibilityAudit' that might also interact with browser elements. It's vague about what 'selected element' means in context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not mention prerequisites (e.g., needing a browser context or selection), exclusions, or comparisons to sibling tools like 'runAuditMode' that might involve element inspection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runAccessibilityAuditB
Run an accessibility audit on the current page
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. While 'Run an accessibility audit' implies analysis/read operations, it doesn't disclose what the audit actually does - whether it modifies the page, requires specific page states, has side effects, or what kind of output to expect. The description is too minimal to understand the tool's behavior beyond its basic purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise - a single sentence that directly states what the tool does. There's zero waste or unnecessary elaboration. It's front-loaded with the core action and target, making it immediately understandable at minimal cognitive cost.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations, no output schema, and multiple sibling audit tools, the description is insufficiently complete. It doesn't explain what an 'accessibility audit' entails, what results to expect, how it differs from other audit tools, or any behavioral characteristics. The agent would need to guess about the tool's output format and appropriate usage context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0 parameters and 100% schema description coverage, the baseline is 4. The description appropriately doesn't discuss parameters since there are none, and the schema already fully documents the empty parameter set. No additional parameter information is needed or provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Run an accessibility audit') and target ('on the current page'), providing a specific verb+resource combination. However, it doesn't distinguish this tool from sibling audit tools like 'runBestPracticesAudit' or 'runSEOAudit' - it only specifies the audit type but not how it differs from other audit tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance about when to use this tool versus alternatives. With multiple audit tools available (accessibility, best practices, SEO, performance, NextJS), there's no indication of what makes accessibility audits distinct or when they're appropriate versus other audit types. No prerequisites, exclusions, or alternative recommendations are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runAuditModeC
Run audit mode to optimize our application for SEO, accessibility and performance
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'optimize our application', which implies a mutation or action, but doesn't specify what the tool actually does (e.g., runs audits, generates reports, makes changes). It also omits details like execution time, side effects, or output format, leaving significant gaps in understanding the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is concise but under-specified. It front-loads the purpose but lacks detail, making it efficient but potentially incomplete. While it avoids waste, it could benefit from additional context to be more helpful, balancing brevity with informativeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity implied by optimizing multiple aspects (SEO, accessibility, performance) and the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'run audit mode' entails, what the output might be, or how it differs from sibling tools, leaving the agent with insufficient information to use the tool effectively in context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and the schema description coverage is 100%, so there are no parameters to document. The description doesn't need to add parameter semantics, but it could have mentioned if any implicit inputs are required (e.g., context from the application). Since there are no parameters, a baseline of 4 is appropriate, as the description doesn't have to compensate for any gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('run audit mode') and resource ('our application'), and it lists three optimization targets (SEO, accessibility, performance). However, it doesn't explicitly distinguish this tool from its siblings like 'runAccessibilityAudit', 'runSEOAudit', or 'runPerformanceAudit', which appear to handle individual aspects of what this tool claims to do comprehensively.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus its siblings, such as whether it's a combined audit or should be used instead of the individual audit tools. It also lacks context on prerequisites, timing, or exclusions, leaving the agent with no clear usage instructions beyond the general purpose stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runBestPracticesAuditB
Run a best practices audit on the current page
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. While 'run a best practices audit' implies a read-only analysis operation, the description doesn't specify what happens during execution (does it block the page? how long does it take?), what permissions are needed, what kind of output to expect, or whether it has any side effects on the page state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly concise - a single sentence that communicates the essential action and scope without any wasted words. It's front-loaded with the core functionality and doesn't include unnecessary elaboration or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an audit tool with no annotations and no output schema, the description is insufficient. It doesn't explain what 'best practices' means in this context, what standards or criteria are used, what format the results will be in, or how comprehensive the audit is. Given the complexity implied by 'best practices audit' and the lack of structured documentation, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so the baseline is 4. The description appropriately doesn't discuss parameters since none exist, and it correctly focuses on the tool's purpose rather than attempting to describe non-existent inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('run a best practices audit') and target ('on the current page'), providing a specific verb+resource combination. However, it doesn't differentiate this tool from sibling audit tools like 'runAccessibilityAudit', 'runPerformanceAudit', or 'runSEOAudit', which would require specifying what type of best practices it covers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides minimal guidance - it only indicates the tool should be used on 'the current page'. There's no explicit guidance about when to use this tool versus other audit tools (like accessibility or performance audits), no prerequisites mentioned, and no exclusions or alternatives provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runDebuggerModeC
Run debugger mode to debug an issue in our application
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool runs debugger mode but fails to describe what that entailsāwhether it's interactive, what permissions are required, if it modifies state, its output format, or any side effects. This leaves critical behavioral traits unspecified for a tool that likely involves system interaction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is concise but under-specifiedāit lacks detail that would help an agent understand the tool's function. While not verbose, it fails to provide necessary context, making it inefficient in conveying value. It could be more front-loaded with specific actions or outcomes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity implied by 'debugger mode' (likely involving system state or diagnostics), the description is incomplete. With no annotations, no output schema, and a vague purpose, it does not provide enough information for an agent to use the tool effectively. It should explain what the debugger does, what it returns, or how it interacts with the application.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description does not add parameter information, which is appropriate here. A baseline of 4 is applied since the schema fully covers the absence of parameters, and the description doesn't need to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Run debugger mode to debug an issue in our application' is tautologicalāit essentially restates the tool name 'runDebuggerMode' with minimal elaboration. While it specifies the action ('run') and target ('debugger mode'), it lacks specificity about what the debugger mode actually does or what resources it operates on, unlike clearer sibling tools like 'takeScreenshot' or 'getConsoleErrors'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, context (e.g., when debugging is needed), or exclusions (e.g., not for production). With siblings like 'runAuditMode' and 'runPerformanceAudit', there is no differentiation to help an agent choose appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runNextJSAuditD
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runPerformanceAuditB
Run a performance audit on the current page
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states what the tool does but provides no information about what the audit entails, what metrics are measured, whether it requires specific page conditions, what the output format might be, or any side effects. The description is minimal and lacks behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that states the core functionality without any wasted words. It's appropriately sized for a zero-parameter tool and gets straight to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of performance auditing, the lack of annotations, and no output schema, the description is insufficient. It doesn't explain what a 'performance audit' means in this context, what gets measured, what the expected output might be, or how it differs from other audit tools. For a specialized tool with rich siblings, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters with 100% schema description coverage, so the baseline is 4. The description doesn't need to compensate for missing parameter documentation since there are no parameters to document. The description appropriately doesn't mention parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('run a performance audit') and target ('on the current page'), providing a specific verb+resource combination. However, it doesn't differentiate from sibling audit tools like runAccessibilityAudit, runBestPracticesAudit, runSEOAudit, or runNextJSAudit, which all follow the same 'run X audit on current page' pattern.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. The description doesn't mention what constitutes a performance audit, when it's appropriate, or how it differs from other audit tools in the sibling list. There's no context about prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
runSEOAuditB
Run an SEO audit on the current page
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states what the tool does but doesn't describe what an SEO audit entails, what kind of output to expect, whether it's resource-intensive, or any side effects. The description is functional but lacks behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that communicates the core functionality without any unnecessary words. It's perfectly front-loaded and wastes no space on redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that this is an audit tool with no annotations and no output schema, the description is insufficient. It doesn't explain what an SEO audit measures, what format results come in, or how this differs from other audit tools. For a tool that presumably produces diagnostic information, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters with 100% schema description coverage, so the baseline is 4. The description appropriately doesn't discuss parameters since none exist, which is correct for this parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('run') and target ('SEO audit on the current page'), making the purpose immediately understandable. However, it doesn't distinguish this tool from sibling audit tools like 'runAccessibilityAudit' or 'runPerformanceAudit' beyond specifying the audit type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like other audit tools or debugging tools. It mentions 'current page' but doesn't specify prerequisites, timing considerations, or when other tools might be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
takeScreenshotB
Take a screenshot of the current browser tab
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'take a screenshot' implies a read-only operation that captures visual data, it lacks details on permissions needed, output format (e.g., image type, size), side effects, or error conditions, which are critical for a tool with no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It is front-loaded with the core action and resource, making it easy to parse and understand immediately, which is ideal for a tool with no parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is minimal but incomplete. It lacks behavioral details like output format or error handling, which are essential for the agent to use it effectively, especially without annotations to fill gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and schema description coverage is 100%, so there are no parameters to document. The description appropriately doesn't mention parameters, aligning with the schema. A baseline of 4 is applied as it correctly handles the absence of parameters without adding unnecessary information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('take a screenshot') and the target resource ('current browser tab'), using precise verb+resource language. It effectively distinguishes this tool from its sibling tools, which are focused on logging, debugging, auditing, and element selection rather than visual capture.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., browser context), exclusions, or comparisons to sibling tools like those for audits or logs, leaving the agent to infer usage context independently.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wipeLogsB
Wipe all browser logs from memory
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool wipes logs from memory, implying a destructive action, but does not specify whether this is irreversible, requires permissions, affects performance, or provides confirmation. This leaves significant gaps in understanding the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's action without unnecessary words. It is front-loaded and wastes no space, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's destructive nature and lack of annotations or output schema, the description is incomplete. It fails to address critical aspects like confirmation of action, error handling, or impact on system state, which are essential for safe and effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description does not add parameter details, but this is appropriate, resulting in a baseline score of 4 for tools with no parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('wipe') and resource ('all browser logs from memory'), making the purpose specific and understandable. However, it does not explicitly distinguish this destructive operation from its read-only sibling tools like getConsoleLogs or getNetworkLogs, which would require a score of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description lacks context about prerequisites, timing (e.g., after diagnostics), or exclusions, leaving the agent without clear usage instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
5 tool updates
v1.0.0- Changed
runAccessibilityAudit1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
runBestPracticesAudit1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
runNextJSAudit1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
runPerformanceAudit1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
runSEOAudit1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
14 tool updates
- First observed
getConsoleErrors - First observed
getConsoleLogs - First observed
getNetworkErrors - First observed
getNetworkLogs - First observed
getSelectedElement - First observed
runAccessibilityAudit - First observed
runAuditMode - First observed
runBestPracticesAudit - First observed
runDebuggerMode - First observed
runNextJSAudit - First observed
runPerformanceAudit - First observed
runSEOAudit - First observed
takeScreenshot - First observed
wipeLogs
TDQS
There is significant overlap between tools, particularly in the audit category where runAuditMode appears to encompass SEO, accessibility, and performance audits that have separate dedicated tools, creating confusion. However, the console and network tools are more distinct in their focus areas, and descriptions help clarify some boundaries.
Most tools follow a consistent verb_noun pattern (e.g., getConsoleErrors, runAccessibilityAudit, takeScreenshot), with clear action-oriented names. The main deviation is runAuditMode, which uses a more generic 'Mode' suffix, but overall the naming is predictable and readable.
With 14 tools, the count is reasonable for a browser testing and debugging domain, covering areas like logs, audits, debugging, and screenshots. It's slightly on the higher side but well-scoped for the purpose, with each tool having a defined role in browser interaction.
The toolset covers key browser operations like logging, auditing, and screenshots, but has notable gaps. For example, there are no tools for navigation (e.g., navigate_to_url, refresh_page) or element interaction (e.g., click_element, input_text), which are essential for comprehensive browser automation, limiting agent workflows.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
AI-powered browser automation ā navigate, click, fill forms, and extract data from any website.
Live browser debugging for AI assistants ā DOM, console, network via MCP.
Hosted browser for AI agents: screenshots, post-JS DOM, console, WCAG. No install, no API key.
61AI visibility & recommendation monitoring for ChatGPT, Claude, Gemini & Perplexity.
Related MCP Servers
- AlicenseCqualityDmaintenanceA browser monitoring and interaction tool that enables AI applications to capture and analyze browser data through a Chrome extension, supporting functions like console monitoring, screenshots, DOM analysis, and website auditing.14482MIT
- AlicenseNot gradedqualityAmaintenanceThis application is a powerful browser monitoring and interaction tool that enables AI-powered applications via Anthropic's Model Context Protocol (MCP) to capture and analyze browser data through a Chrome extension.7,304MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to automate web tasks such as browsing, clicking, typing, and taking screenshots via the Model Context Protocol.1MIT
- AlicenseBqualityAmaintenanceEnables browser automation through the Model Context Protocol, allowing AI agents to control Chrome, Firefox, or Edge for tasks like navigation, clicking, typing, and screenshots.3986MIT
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Sugatraj/Cursor-Browser-Tools-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server