BrowserCat MCP Server (Browser Automation)
OfficialSupports targeting web page elements using CSS selectors for actions like screenshots, clicks, hover effects, and form interactions.
Enables execution of JavaScript code in a browser environment through the browsercat_evaluate tool, allowing interaction with web pages and manipulation of web content.
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., "@BrowserCat MCP Server (Browser Automation)take a screenshot of the homepage and name it 'homepage_screenshot'"
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.
BrowserCat MCP Server
A Model Context Protocol server that provides browser automation capabilities using BrowserCat's cloud browser service. This server enables LLMs to interact with web pages, take screenshots, and execute JavaScript in a real browser environment without needing to install browsers locally.
Components
Tools
browsercat_navigate
Navigate to any URL in the browser
Input:
url(string)
browsercat_screenshot
Capture screenshots of the entire page or specific elements
Inputs:
name(string, required): Name for the screenshotselector(string, optional): CSS selector for element to screenshotwidth(number, optional, default: 800): Screenshot widthheight(number, optional, default: 600): Screenshot height
browsercat_click
Click elements on the page
Input:
selector(string): CSS selector for element to click
browsercat_hover
Hover elements on the page
Input:
selector(string): CSS selector for element to hover
browsercat_fill
Fill out input fields
Inputs:
selector(string): CSS selector for input fieldvalue(string): Value to fill
browsercat_select
Select an option from a dropdown menu
Inputs:
selector(string): CSS selector for select elementvalue(string): Value to select
browsercat_evaluate
Execute JavaScript in the browser console
Input:
script(string): JavaScript code to execute
Resources
The server provides access to two types of resources:
Console Logs (
console://logs)Browser console output in text format
Includes all console messages from the browser
Screenshots (
screenshot://<name>)PNG images of captured screenshots
Accessible via the screenshot name specified during capture
Related MCP server: Puppeteer MCP Server
Key Features
Cloud-based browser automation
No local browser installation required
Console log monitoring
Screenshot capabilities
JavaScript execution
Basic web interaction (navigation, clicking, form filling)
Configuration to use BrowserCat MCP Server
Environment Variables
The BrowserCat MCP server requires the following environment variable:
BROWSERCAT_API_KEY: Your BrowserCat API key (required). You can get one for free at https://browsercat.xyz/mcp.
NPX Configuration
{
"mcpServers": {
"browsercat": {
"command": "npx",
"args": ["-y", "@browsercatco/mcp-server"],
"env": {
"BROWSERCAT_API_KEY": "your-api-key-here"
}
}
}
}License
This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.
Available Tools
7 toolsbrowsercat_clickC
Click an element on the page
| Name | Required | Description | Default |
|---|---|---|---|
| selector | Yes | CSS selector for element to click |
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 action but doesn't describe what happens after clicking (e.g., page navigation, form submission, errors if element isn't clickable), safety implications, or performance considerations like timeouts.
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, direct sentence with zero wasted words. It's front-loaded with the core action and target, making it highly efficient and easy to parse at a glance.
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 that performs an interactive action like clicking with no annotations and no output schema, the description is incomplete. It lacks details on behavioral outcomes, error conditions, or what constitutes success, leaving gaps in understanding how to use it 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 schema description coverage is 100%, with the 'selector' parameter fully documented in the schema. The description adds no additional meaning beyond implying the selector targets a clickable element, which is already inferred from the tool's purpose. This meets the baseline for high schema coverage.
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 ('click') and target ('an element on the page'), which is specific and unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'browsercat_hover' or 'browsercat_select', which might involve similar element interactions but different actions.
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., needing a page loaded), exclusions, or comparisons to siblings like 'browsercat_hover' for hovering or 'browsercat_select' for selecting options.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browsercat_evaluateC
Execute JavaScript in the browser console
| Name | Required | Description | Default |
|---|---|---|---|
| script | Yes | JavaScript code to execute |
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 'Execute JavaScript' implies a mutation operation (potentially changing page state), the description doesn't specify whether this is safe/reversible, what permissions are needed, how errors are handled, or what the execution context is (e.g., same-origin restrictions). It lacks critical behavioral details for a tool that can arbitrarily modify browser 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 a single, clear sentence with zero wasted words. It's front-loaded with the core action ('Execute JavaScript') and specifies the context ('in the browser console'). Every word contributes directly to understanding the tool's purpose.
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 executing arbitrary JavaScript in a browser (a potentially dangerous operation with no annotations and no output schema), the description is insufficient. It doesn't cover safety considerations, error handling, execution context, or what happens to the script's return value. For a tool with such significant behavioral implications, 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 schema description coverage is 100% (the 'script' parameter is fully documented as 'JavaScript code to execute'), so the baseline is 3. The description doesn't add any parameter semantics beyond what the schema provides—it doesn't explain script format, return value handling, or execution constraints. However, with only one parameter that's well-documented in the schema, this is adequate.
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 'Execute JavaScript in the browser console' clearly states the action (execute) and target (JavaScript in browser console). It distinguishes this tool from its siblings (click, fill, hover, navigate, screenshot, select) by focusing on code execution rather than UI interaction. However, it doesn't specify what kind of JavaScript execution this is (e.g., evaluation, injection, or console command).
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., requires an active browser session), appropriate use cases (e.g., for dynamic content extraction vs. UI automation), or when other tools like browsercat_select might be more suitable. The agent must infer usage from the tool name and sibling context alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browsercat_fillC
Fill out an input field
| Name | Required | Description | Default |
|---|---|---|---|
| selector | Yes | CSS selector for input field | |
| value | Yes | Value to fill |
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 if this requires a loaded page, handles errors (e.g., invalid selector), affects page state, or has side effects. This is inadequate for a mutation tool in browser automation.
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 zero waste. It's front-loaded and appropriately sized for a simple tool, though it could benefit from more detail given the lack of annotations.
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 a mutation tool in a browser automation context, the description is incomplete. It doesn't cover behavioral aspects like error handling, prerequisites, or return values, leaving significant gaps for agent understanding.
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?
Schema description coverage is 100%, so parameters 'selector' and 'value' are fully documented in the schema. The description adds no additional meaning beyond implying these parameters are used for filling, which the schema already covers. Baseline 3 is appropriate as the schema does the heavy lifting.
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 'Fill out an input field' clearly states the action (fill) and target (input field), but it's vague about scope and doesn't differentiate from siblings like 'browsercat_select' which might also interact with input fields. It's a basic functional statement without specificity about browser automation 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. It doesn't mention prerequisites (e.g., needing a page loaded), exclusions, or comparisons to siblings like 'browsercat_click' for other interactions. The agent must infer usage from context alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browsercat_hoverC
Hover over an element on the page
| Name | Required | Description | Default |
|---|---|---|---|
| selector | Yes | CSS selector for element to hover |
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 the action but doesn't explain what happens after hovering (e.g., whether it triggers events, waits for effects, or has side effects like page changes). It also omits details like error handling, timing, or prerequisites (e.g., page must be loaded). This leaves significant gaps for a mutation-like interaction tool.
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 with zero wasted words. It's front-loaded with the core action and target, making it easy to parse. Every word earns its place, achieving maximum efficiency without sacrificing clarity.
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 complexity (interactive browser action) and lack of annotations or output schema, the description is incomplete. It doesn't cover behavioral outcomes, error cases, or integration with sibling tools. For a tool that likely triggers UI changes, more context is needed to guide effective use, making this inadequate.
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 100% description coverage, with the 'selector' parameter fully documented in the schema itself. The description adds no additional meaning beyond what the schema provides (e.g., no examples of valid selectors, no constraints). Since schema coverage is high, the baseline score of 3 is appropriate, as the description doesn't compensate but doesn't need to.
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 ('hover over') and target ('an element on the page'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'browsercat_click' or 'browsercat_select', which also interact with page elements. The purpose is unambiguous but lacks sibling distinction.
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 scenarios where hovering is appropriate (e.g., triggering dropdowns, tooltips) versus when clicking or other interactions might be better. There's no reference to sibling tools or contextual exclusions, leaving usage entirely implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browsercat_screenshotC
Take a screenshot of the current page or a specific element
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name for the screenshot | |
| selector | No | CSS selector for element to screenshot | |
| width | No | Width in pixels (default: 800) | |
| height | No | Height in pixels (default: 600) |
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 what the tool does but lacks critical details: it doesn't specify output format (e.g., image data, file path), whether it requires an active browser session, potential side effects (e.g., page state changes), or error handling. For a tool with no annotation coverage, this is a significant gap.
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 front-loads the core purpose without unnecessary words. Every part of it contributes directly to understanding the tool's 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?
Given the complexity of a screenshot tool with no annotations and no output schema, the description is incomplete. It fails to explain what the tool returns (e.g., image data, file location), how it interacts with the browser context, or any behavioral nuances, leaving significant gaps for an AI agent to infer.
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?
Schema description coverage is 100%, so the schema already documents all parameters (name, selector, width, height) with descriptions. The description adds no additional meaning beyond implying optional element targeting ('or a specific element'), which aligns with the selector parameter but doesn't provide extra syntax or usage details.
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 ('Take a screenshot') and target ('current page or a specific element'), which is a specific verb+resource combination. However, it doesn't explicitly distinguish this from sibling tools like browsercat_click or browsercat_hover, which might also involve page interaction but for different purposes.
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., needing a page loaded first), exclusions, or comparisons to sibling tools like browsercat_navigate for page setup or browsercat_evaluate for other page operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browsercat_selectC
Select an option from a dropdown menu
| Name | Required | Description | Default |
|---|---|---|---|
| selector | Yes | CSS selector for select element | |
| value | Yes | Value to select |
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. It states the action but lacks behavioral details such as whether it waits for the dropdown to appear, handles dynamic content, requires specific page states, or provides error feedback. This is a significant gap for a mutation tool with zero annotation coverage.
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 purpose without unnecessary words. It's appropriately sized and front-loaded, with every part earning its place.
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 a browser automation tool with no annotations and no output schema, the description is incomplete. It doesn't cover behavioral aspects like error handling, dependencies on page state, or what happens after selection, leaving gaps for effective agent 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?
Schema description coverage is 100%, with both parameters (selector and value) clearly documented in the schema. The description doesn't add any meaning beyond what the schema provides, such as examples or constraints, so it meets the baseline score when the schema does the heavy lifting.
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 ('Select an option') and target ('from a dropdown menu'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like browsercat_fill (which might handle form inputs) or browsercat_click (which might handle general clicking), so it doesn't reach the highest score.
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., needing a page loaded), exclusions (e.g., not for non-dropdown elements), or comparisons to siblings like browsercat_fill for text inputs or browsercat_click for general interactions.
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.
7 tool updates
v0.1.0- First observed
browsercat_click - First observed
browsercat_evaluate - First observed
browsercat_fill - First observed
browsercat_hover - First observed
browsercat_navigate - First observed
browsercat_screenshot - First observed
browsercat_select
TDQS
Each tool has a clearly distinct purpose with no overlap: click, evaluate, fill, hover, navigate, screenshot, and select target specific browser automation actions. An agent can easily distinguish between them based on their unique functions.
All tools follow a consistent 'browsercat_verb' pattern with snake_case, using descriptive verbs like click, evaluate, fill, hover, navigate, screenshot, and select. This predictable naming makes the set easy to understand and use.
With 7 tools, this server is well-scoped for browser automation, covering essential actions like navigation, interaction, and capture. Each tool earns its place without feeling too sparse or bloated for the domain.
The toolset covers core browser automation workflows including navigation, element interaction, and screenshot capture. Minor gaps exist, such as missing tools for scrolling, waiting, or handling alerts, but agents can work around these with the provided tools.
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
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Provides cloud browser automation capabilities using Stagehand and Browserbase, enabling LLMs to i…
A Model Context Protocol server for Wix AI tools
Enable secure connectivity between Sentry issues and debugging data, and LLM clients, using a Model Context Protocol (MCP) server.
Related MCP Servers
- AlicenseBqualityDmaintenanceA Model Context Protocol server that provides browser automation capabilities using Playwright. This server enables LLMs to interact with web pages, take screenshots, and execute JavaScript in a real browser environment.3218,1225,637MIT
- AlicenseNot gradedqualityCmaintenanceA Model Context Protocol server that provides browser automation capabilities using Playwright, enabling LLMs to interact with web pages, take screenshots, and execute JavaScript in a real browser environment.18Apache 2.0
- AlicenseBqualityDmaintenanceA Model Context Protocol server that provides browser automation capabilities using Puppeteer, enabling LLMs to interact with web pages, take screenshots, and execute JavaScript in a real browser environment.728,3661MIT
- AlicenseBqualityCmaintenanceA Model Context Protocol server that enables LLMs to interact with web pages, take screenshots, generate test code, scrape web pages, and execute JavaScript in a real browser environment.296222MIT
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/browsercat/browsercat-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server