Skip to main content
Glama
pipethedev
by pipethedev

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 screenshot

      • selector (string, optional): CSS selector for element to screenshot

      • width (number, optional, default: 800): Screenshot width

      • height (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 field

      • value (string): Value to fill

  • browsercat_select

    • Select an option from a dropdown menu

    • Inputs:

      • selector (string): CSS selector for select element

      • value (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:

  1. Console Logs (console://logs)

    • Browser console output in text format

    • Includes all console messages from the browser

  2. 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

Installing via Smithery

To install browsercat-mcp-server for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @pipethedev/browsercat-mcp-server --client claude

Environment Variables

The BrowserCat MCP server requires the following environment variable:

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 tools
browsercat_clickC

Click an element on the page

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesCSS selector for element to click

TDQS

C2.9/5.0
Behavior2/5

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. While 'click' implies an interactive action, the description doesn't mention what happens after clicking (page navigation, form submission, JavaScript execution), error conditions (what if selector doesn't exist), or performance characteristics. This leaves significant behavioral questions unanswered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is maximally concise with a single, clear sentence that communicates the core functionality without any wasted words. It's front-loaded with the essential information and earns its place efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a browser interaction tool with no annotations and no output schema, the description is insufficiently complete. It doesn't address what constitutes successful execution, what errors might occur, or what the tool returns. Given the complexity of browser automation and the lack of structured metadata, more contextual information would be valuable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with the selector parameter fully documented in the schema. The description doesn't add any additional parameter semantics beyond what's already in the schema's description field. This meets the baseline expectation when schema coverage is complete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Click an element on the page' clearly states the action (click) and target (element on page), making the purpose immediately understandable. However, it doesn't distinguish this from sibling tools like 'browsercat_hover' which performs a similar targeting action but with different interaction type.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. There's no mention of prerequisites (like requiring a page to be loaded first), comparison with similar tools (like hover vs click), or typical use cases for clicking versus other interactions available in the sibling toolset.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
scriptYesJavaScript code to execute

TDQS

C2.9/5.0
Behavior2/5

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 what the tool does but lacks critical details: it doesn't specify whether this executes in a specific browser context, if there are security restrictions, what happens on errors, or the format of results. For a tool that executes arbitrary code, 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's function with zero wasted words. It is appropriately sized and front-loaded, making it easy to understand at a glance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of executing JavaScript in a browser (which can have side effects, errors, or security implications), no annotations, and no output schema, the description is incomplete. It doesn't address behavioral aspects like what the tool returns, error handling, or execution context, leaving gaps for an AI agent to use it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, with the 'script' parameter fully documented in the schema. The description adds no additional semantic context beyond implying the parameter is JavaScript code, which is already clear from the schema. This meets the baseline of 3 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Execute JavaScript') and the context ('in the browser console'), which is specific and unambiguous. However, it doesn't explicitly differentiate from sibling tools like browsercat_click or browsercat_fill, which are also browser interaction tools but for different actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 executing JavaScript is preferred over other browser actions (e.g., for complex interactions not covered by click/fill) or any prerequisites (e.g., requiring a page to be loaded).

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

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesCSS selector for input field
valueYesValue to fill

TDQS

C2.6/5.0
Behavior2/5

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 action ('fill out') but doesn't describe what happens after filling (e.g., does it trigger events, is it idempotent, are there side effects like form submission). For a mutation tool with zero annotation coverage, this is a significant gap in transparency about behavior 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence ('Fill out an input field') that directly states the purpose without unnecessary words. It is appropriately sized for a simple tool, though it could be more front-loaded with context if needed. There is no waste, but it might be too brief for optimal clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (a mutation operation with no annotations and no output schema), the description is incomplete. It doesn't cover behavioral aspects like error handling, what the tool returns, or how it interacts with the browser context. For a tool that modifies state, more context is needed to ensure safe and correct usage by an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with clear documentation for both parameters ('selector' as CSS selector and 'value' as value to fill). The description adds no additional meaning beyond what the schema provides, such as examples or constraints. With high schema coverage, the baseline is 3, as the schema does the heavy lifting for parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

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), making the basic purpose understandable. However, it lacks specificity about what type of input fields or context (e.g., web forms, UI automation) and doesn't distinguish from sibling tools like 'browsercat_click' or 'browsercat_select' which might also interact with input fields. The description is functional but vague about scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 sibling tools like 'browsercat_click' (for clicking) or 'browsercat_select' (for selecting options), leaving the agent to infer usage based on the name alone. There are no explicit when/when-not instructions or prerequisites, such as requiring a page to be loaded first.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesCSS selector for element to hover

TDQS

C2.9/5.0
Behavior2/5

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 'hover over' implies a non-destructive interaction, the description doesn't address potential side effects (e.g., triggering JavaScript events), error conditions, or what happens if the selector doesn't match an element. 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, direct sentence with zero wasted words. It front-loads the core action ('hover over') and target ('an element on the page'), making it immediately clear and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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 a tool that interacts with a dynamic environment like a browser page. It doesn't cover behavioral aspects (e.g., what 'hover' means in this context), error handling, or result expectations, 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, with the single parameter 'selector' fully documented in the schema as 'CSS selector for element to hover'. The description adds no additional meaning beyond this, such as selector syntax examples or validation rules, so it meets the baseline for high schema coverage without compensating value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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 distinguish this tool from its sibling tools like 'browsercat_click' or 'browsercat_select', which also interact with page elements.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 or tooltips) or when other tools like 'click' or 'select' might be better suited, leaving usage context implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

browsercat_navigateC

Navigate to a URL

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes

TDQS

C2.3/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behavioral traits. It only states the action 'Navigate to a URL' without any details on what happens during navigation (e.g., page load behavior, error handling, timeouts, or whether it's a read-only or mutative operation). This leaves critical behavioral aspects like permissions, side effects, or response format completely unspecified, making it inadequate for informed tool selection.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description 'Navigate to a URL' is extremely concise and front-loaded, consisting of a single, direct sentence. There is no wasted verbiage or unnecessary elaboration, making it efficient for quick understanding. However, this conciseness comes at the cost of completeness, as noted in other dimensions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (involving browser navigation, which can have side effects), lack of annotations, no output schema, and low schema description coverage, the description is highly incomplete. It does not address what the tool returns, error conditions, dependencies on other tools (e.g., needing a browser session), or how it fits with siblings. This makes it insufficient for safe and effective use by an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 1 parameter (url) with 0% description coverage, meaning the schema provides no semantic details. The description does not add any meaning beyond the parameter name; it does not explain what constitutes a valid URL, format requirements, or examples. Since schema coverage is low, the description fails to compensate, leaving the parameter's semantics unclear.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Navigate to a URL' clearly states the action (navigate) and target (URL), making the purpose understandable. However, it lacks specificity about what 'navigate' entails (e.g., browser navigation, page load) and does not distinguish it from sibling tools like 'browsercat_click' or 'browsercat_select', which might involve similar navigation contexts. It avoids tautology but remains vague in scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 (e.g., needing an active browser session), exclusions, or comparisons to sibling tools like 'browsercat_evaluate' or 'browsercat_fill', which might be used in different interaction contexts. Usage is implied only by the verb 'navigate', but no explicit instructions are given.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName for the screenshot
selectorNoCSS selector for element to screenshot
widthNoWidth in pixels (default: 800)
heightNoHeight in pixels (default: 600)

TDQS

C2.9/5.0
Behavior2/5

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 lacks details on side effects (e.g., does it pause execution, save files locally, or return base64 data?), permissions needed, or error handling (e.g., what happens if the selector is invalid?). This leaves significant gaps for an agent to understand 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence that efficiently conveys the core functionality without unnecessary words. It's front-loaded and wastes no space, making it easy for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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 (which involves visual output and potential side effects), no annotations, and no output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., image data, file path, or success status), error conditions, or dependencies on browser state, 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.

Parameters3/5

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 with descriptions. The description adds no additional meaning beyond implying 'selector' targets elements and 'width'/'height' set dimensions, which is redundant with the schema. Baseline 3 is appropriate as the schema handles parameter documentation adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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 the target ('current page or a specific element'), which is specific and unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'browsercat_click' or 'browsercat_hover', which might also involve page interactions but serve different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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, such as whether it's for debugging, documentation, or visual verification. It also doesn't mention prerequisites like needing an active browser session or context from other tools like 'browsercat_navigate'.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
selectorYesCSS selector for select element
valueYesValue to select

TDQS

C2.9/5.0
Behavior2/5

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 describe what happens after selection (e.g., page changes, validation triggers, error conditions) or any constraints (e.g., dropdown must be visible, requires page load). This leaves significant gaps for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero wasted words. It's appropriately sized for a simple tool and front-loads the core purpose immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain behavioral outcomes, error handling, or prerequisites (e.g., page must be loaded), leaving the agent with incomplete operational context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents both parameters (selector and value). The description adds no additional parameter meaning beyond implying 'dropdown menu' context, which aligns with the schema. Baseline 3 is appropriate when schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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 resource ('from a dropdown menu'), providing a specific verb+resource combination. It doesn't explicitly distinguish from sibling tools like browsercat_click or browsercat_fill, which prevents a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 sibling tools like browsercat_fill (which might handle form inputs) or browsercat_click (which might handle general clicks), leaving the agent without context for tool selection.

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.

  1. 7 tool updates
    • First observedbrowsercat_click
    • First observedbrowsercat_evaluate
    • First observedbrowsercat_fill
    • First observedbrowsercat_hover
    • First observedbrowsercat_navigate
    • First observedbrowsercat_screenshot
    • First observedbrowsercat_select

TDQS

B3.3/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose targeting specific browser interactions: clicking, evaluating JavaScript, filling inputs, hovering, navigating, taking screenshots, and selecting dropdown options. There is no overlap in functionality, making tool selection straightforward for an agent.

Naming Consistency5/5

All tools follow a consistent 'browsercat_verb' pattern with clear, descriptive verbs (click, evaluate, fill, hover, navigate, screenshot, select). This uniformity enhances predictability and readability across the toolset.

Tool Count5/5

With 7 tools, this server is well-scoped for browser automation, covering essential interactions without bloat. Each tool earns its place by addressing a common web automation task, making the count appropriate for the domain.

Completeness4/5

The toolset provides strong coverage for core browser automation tasks like navigation, interaction, and inspection. Minor gaps exist, such as lacking tools for scrolling, handling alerts, or managing cookies, but agents can work around these with existing tools like evaluate for JavaScript.

Maintenance

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

Latest Blog Posts

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/pipethedev/browsercat-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server