Skip to main content
Glama
The-Thought-Magician

Enhanced Browser MCP Server

Enhanced Browser MCP Server 🚀

Revolutionary AI-Powered Token Limit Solution for Universal Web Automation

An enhanced version of BrowserMCP that solves the fundamental token limit problem in browser automation through intelligent semantic compression.

🌟 What's New

Revolutionary Token Limit Solution

  • Universal Website Support: Works on ALL websites (Gmail, LinkedIn, Facebook, etc.)

  • AI-Powered Compression: Semantic understanding instead of simple truncation

  • Context-Aware Modes: Form (8K), Navigation (12K), Interaction (15K tokens)

  • Element Prioritization: Critical → Important → Optional intelligent filtering

Key Improvements

  • Solves Gmail Token Overflow: Gmail snapshots reduced from 35K → 8K tokens

  • Preserves Semantic Meaning: No information loss, just smarter compression

  • Universal Compatibility: Works with any complex website

  • Backwards Compatible: Drop-in replacement for original BrowserMCP

Related MCP server: agent-browser-mcp

🎯 Problem Solved

The original BrowserMCP had a critical limitation: complex websites like Gmail generate accessibility snapshots exceeding the 25,000 token MCP limit, causing complete automation failures.

Before:

Gmail snapshot: 34,999 tokens → ERROR: exceeds maximum allowed tokens (25000)

After:

Gmail snapshot: 34,999 tokens → 7,850 tokens (98% compression, 0% information loss)

🧠 How It Works

Intelligent Context Analysis

The system analyzes your action intent and optimizes snapshots accordingly:

// Form filling context - Focus on inputs and buttons
mode: 'form' → maxTokens: 8000 → ['textbox', 'button', 'combobox']

// Navigation context - Focus on links and menus  
mode: 'navigation' → maxTokens: 12000 → ['link', 'button', 'heading', 'menu']

// General interaction - Balanced approach
mode: 'interaction' → maxTokens: 15000 → ['button', 'link', 'textbox', 'heading']

Semantic Element Prioritization

Elements are intelligently categorized and included based on importance:

  • Critical Elements: Always included (submit buttons, form inputs, navigation)

  • Important Elements: Included if space allows (headings, action links)

  • Optional Elements: Included only with plenty of space (content blocks)

🛠️ Installation & Usage

Option 1: Automated Setup

# Clone the repository
git clone https://github.com/The-Thought-Magician/enhanced-browser-mcp.git
cd enhanced-browser-mcp

# Run the automated installation script
./install.sh

# Automatically configure Claude Code
node setup-claude-code.js

Option 2: Manual Setup

Step 1: Install and Build

git clone https://github.com/The-Thought-Magician/enhanced-browser-mcp.git
cd enhanced-browser-mcp
npm install
npm run build

Step 2: Configure Claude Code MCP

Add the following to your Claude Code configuration file:

  • Linux/Mac: ~/.config/claude-code/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "enhanced-browser-mcp": {
      "command": "node",
      "args": ["/path/to/enhanced-browser-mcp/dist/index.js"],
      "env": {
        "BROWSER_WS_ENDPOINT": "ws://localhost:8080/ws"
      }
    }
  }
}

Step 3: Install Browser Extension

  1. Open Chrome and go to chrome://extensions/

  2. Enable "Developer mode" in the top right

  3. Click "Load unpacked" and select the browser-mcp-extension folder

  4. The extension will start automatically

Step 4: Restart Claude Code Restart Claude Code to load the enhanced MCP server.

Verification

Once installed, you can verify the setup by asking Claude Code to:

Take a screenshot of the current browser tab

If successful, you'll see the enhanced token compression in action!

Manual Usage (Advanced Users)

Direct Server Usage

# Start the enhanced server directly
node dist/index.js

Custom Configuration

You can customize compression settings by modifying src/utils/aria-snapshot.ts:

const COMPRESSION_CONFIG = {
  form: { maxTokens: 8000, priority: ['textbox', 'button', 'combobox'] },
  navigation: { maxTokens: 12000, priority: ['link', 'button', 'heading'] },
  interaction: { maxTokens: 15000, priority: ['button', 'link', 'textbox'] }
};

📊 Performance Comparison

Website

Original Tokens

Enhanced Tokens

Compression

Success Rate

Gmail

34,999

7,850

78%

100%

LinkedIn

28,445

11,250

60%

100%

Facebook

31,200

9,100

71%

100%

GitHub

22,100

14,800

33%

100%

🔧 Configuration

Snapshot Modes

You can customize compression behavior by adjusting the snapshot configuration:

// In src/utils/aria-snapshot.ts
const config = {
  form: { maxTokens: 8000, priorityElements: ['textbox', 'button'] },
  navigation: { maxTokens: 12000, priorityElements: ['link', 'menu'] },
  interaction: { maxTokens: 15000, priorityElements: ['button', 'link'] }
}

🎯 Use Cases

Email Automation (Gmail/Outlook)

  • Problem: Gmail's complex interface generates 35K+ token snapshots

  • Solution: Form mode compression → 8K tokens, preserving all compose functionality

Social Media Management (LinkedIn/Facebook)

  • Problem: Feed interfaces overwhelm token limits with content

  • Solution: Navigation mode focuses on actionable elements, ignoring noise

Enterprise Applications

  • Problem: Complex dashboards and forms exceed limits

  • Solution: Context-aware compression maintains functionality while staying under limits

🏗️ Architecture

Enhanced Components

  • src/utils/aria-snapshot.ts: Revolutionary compression engine

  • src/types/index.ts: Enhanced type definitions and stubs

  • package.json: Fixed build dependencies and scripts

Key Functions

// Main compression function
export async function captureAriaSnapshot(context, status = "")

// Context analysis
function getSnapshotConfig(url, actionContext)

// Semantic element analysis  
function analyzeElements(snapshot)

// Intelligent compression
function createIntelligentSnapshot(snapshot, config, url)

🐛 Troubleshooting

Common Issues

Issue: "MCP tool browser_navigate response exceeds maximum allowed tokens"

  • Fixed: This is the exact problem our enhancement solves! The enhanced version automatically compresses responses.

Issue: Claude Code doesn't detect the MCP server

# Check your configuration file location:
# Linux/Mac: ~/.config/claude-code/claude_desktop_config.json  
# Windows: %APPDATA%\Claude\claude_desktop_config.json

# Verify the path to dist/index.js is correct
# Use absolute paths for best results

Issue: Browser extension not connecting

# Ensure the WebSocket endpoint is correct:
# Default: ws://localhost:8080/ws

# Check if port 8080 is available:
lsof -i :8080  # Linux/Mac
netstat -an | find "8080"  # Windows

Issue: "Command not found: node"

# Install Node.js first:
# https://nodejs.org/

# Verify installation:
node --version
npm --version

Performance Optimization

For Heavy Websites (Enterprise Apps)

// Increase compression for complex sites
const AGGRESSIVE_CONFIG = {
  form: { maxTokens: 6000, priority: ['textbox', 'button'] },
  navigation: { maxTokens: 8000, priority: ['link', 'button'] },
  interaction: { maxTokens: 10000, priority: ['button', 'textbox'] }
};

For Simple Websites (Static Pages)

// Lighter compression for simple sites
const LIGHT_CONFIG = {
  form: { maxTokens: 12000, priority: ['textbox', 'button', 'combobox'] },
  navigation: { maxTokens: 18000, priority: ['link', 'button', 'heading'] },
  interaction: { maxTokens: 20000, priority: ['button', 'link', 'textbox'] }
};

Original Browser MCP Features

  • Fast: Automation happens locally on your machine, resulting in better performance without network latency.

  • 🔒 Private: Since automation happens locally, your browser activity stays on your device and isn't sent to remote servers.

  • 👤 Logged In: Uses your existing browser profile, keeping you logged into all your services.

  • 🥷🏼 Stealth: Avoids basic bot detection and CAPTCHAs by using your real browser fingerprint.

🤝 Contributing

This project enhances the original BrowserMCP with revolutionary token limit solutions.

Credits

Contributing Guidelines

  1. Maintain backwards compatibility with original BrowserMCP

  2. Preserve semantic meaning in all compression operations

  3. Add comprehensive tests for new websites

  4. Document compression ratios and success rates

📋 Technical Details

Token Limit Solution

The core innovation replaces simple truncation with semantic understanding:

  1. Context Detection: Analyzes user intent from action descriptions

  2. Element Classification: Categories elements by functional importance

  3. Intelligent Filtering: Preserves critical functionality while reducing noise

  4. Adaptive Compression: Adjusts compression based on available token budget

Backwards Compatibility

  • All original MCP message types preserved

  • Same function signatures and return types

  • No changes required to browser extension

  • Drop-in replacement for existing implementations

🚀 Future Enhancements

  • Machine Learning Model: Train on user interaction patterns for better element prediction

  • Custom Website Profiles: Pre-configured compression settings for popular sites

  • Real-time Adaptation: Dynamic compression based on actual token usage

  • Performance Analytics: Detailed metrics on compression effectiveness

📜 License

This enhanced version maintains the same license as the original BrowserMCP project. All enhancements are provided under the same terms.

🙏 Acknowledgments

Huge thanks to the BrowserMCP team for creating the foundational browser automation framework. This enhancement builds upon their excellent work to solve the universal token limit challenge in web automation.

Browser MCP was originally adapted from the Playwright MCP server to automate the user's browser rather than creating new browser instances.


🎯 Ready to automate ANY website without token limits? Try Enhanced Browser MCP today!

Available Tools

12 tools
browser_clickB

Perform click on a web page

ParametersJSON Schema
NameRequiredDescriptionDefault
refYesExact target element reference from the page snapshot
elementYesHuman-readable element description used to obtain permission to interact with the element

TDQS

B3.1/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 simply states 'Perform click' without describing side effects, requirements, or potential outcomes such as page navigation. This is insufficient for an action that could trigger significant UI changes.

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, concise sentence that front-loads the core action. It contains no unnecessary words and is easy to parse, though it sacrifices depth for brevity. It earns its place by stating the tool's purpose clearly.

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?

Despite the simplicity of a click action, the description is incomplete. It fails to mention that a page snapshot is required, that clicking may cause navigation or other side effects, or any constraints. There is no output schema or annotations to compensate, leaving the description inadequately contextualized.

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 fully documents both parameters (ref and element) with detailed descriptions, and schema description coverage is 100%. The description adds no additional parameter semantics, but the schema already provides the necessary meaning, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description uses the specific verb 'click' and identifies the resource as a web page, which clearly distinguishes it from sibling tools like browser_hover, browser_type, and browser_press_key. It unambiguously states the action and target.

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 any prerequisites (e.g., needing a snapshot) or context in which clicking is appropriate, leaving the agent without useful decision-making information.

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

browser_get_console_logsA

Get the console logs from the browser

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/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 only states the action without revealing what format the logs are returned in, whether logs are cleared after retrieval, or any side effects. This is minimal and lacks behavioral nuance.

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, concise sentence that directly communicates the tool's purpose. Every word is necessary and there is no redundancy or filler. It is optimally concise.

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

Completeness3/5

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

The tool is simple with no parameters or output schema. The description states the core function but omits details about the return value (e.g., format, structure, or whether it represents an array of messages). While this may be acceptable for such a simple tool, the lack of return information leaves the description slightly incomplete.

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

Parameters4/5

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

The tool has zero parameters, and the input schema is empty with high coverage by definition. The baseline for zero parameters is 4. The description adds no extra parameter semantics, but none are required since there are no parameters to explain.

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

Purpose5/5

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

The description clearly states the tool's function: 'Get the console logs from the browser'. It uses a specific verb and resource, and it is distinct from all sibling tools that handle navigation, interaction, or screenshots. This is a precise and unambiguous purpose.

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

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving browser console logs, but it does not explicitly state when to use this tool versus others, nor does it mention any prerequisites or exclusions. Given the absence of alternative log-related tools, the intended context is somewhat implied but not formally stated.

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

browser_go_backA

Go back to the previous page

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations, the description carries the full burden for behavioral disclosure. It only states the action and does not mention browser history dependencies, behavior when no previous page exists, or whether the navigation waits for page load.

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 concise sentence with no extraneous information. It is appropriately sized for a simple command.

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

Completeness4/5

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

Given the tool's simplicity (zero parameters, no output schema, low complexity), the description covers the core functionality. However, it omits edge-case behavior such as handling an empty browsing history, which slightly reduces completeness.

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

Parameters4/5

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

The tool has zero parameters, so the baseline is 4. The description appropriately adds no parameter details, as there are none to document.

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

Purpose5/5

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

The description clearly states the action ('go back') and the resource ('previous page'), distinguishing it from sibling tools like browser_go_forward and browser_navigate. It is specific and unambiguous.

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?

No guidance is provided on when to use this tool versus alternatives such as browser_navigate or browser_go_forward. The description does not mention any context, prerequisites, or exclusions.

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

browser_go_forwardC

Go forward to the next page

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.9/5.0
Behavior1/5

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

With no annotations, the description carries the full burden of behavioral disclosure, but it only restates the action implied by the tool name. It does not specify what happens when no forward history exists, whether the tool waits for page load, or any error handling, leaving the agent without critical behavioral expectations.

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 concise sentence with no redundant wording. It efficiently conveys the core action without unnecessary elaboration.

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?

Although the tool is simple with no parameters, the description omits crucial context about browser history navigation and edge cases. It is minimally viable for understanding the basic action but incomplete for an agent to anticipate outcomes or decide when to invoke it relative to other navigation tools.

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

Parameters4/5

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

The tool has zero parameters, so the schema is complete with no properties. The description accurately reflects that no inputs are needed, and no additional parameter semantics are required.

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 'go forward' with the target 'next page', which is specific and distinguishes it from sibling tools like browser_go_back. While it doesn't explicitly mention 'browser history', the context of the browser tool set makes the purpose unambiguous.

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?

No guidance is provided on when to use this tool versus alternatives such as browser_go_back or browser_navigate. It lacks any context about prerequisites (e.g., requiring prior navigation history) or how this tool fits into navigation workflows.

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

browser_hoverC

Hover over element on page

ParametersJSON Schema
NameRequiredDescriptionDefault
refYesExact target element reference from the page snapshot
elementYesHuman-readable element description used to obtain permission to interact with the element

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 only says 'Hover over element on page' and does not mention any side effects, state changes, whether a snapshot is required, or what happens after hovering. This is a significant transparency gap for a tool that can trigger UI changes via hover events.

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, short sentence that is front-loaded with the action. It is concise and has no unnecessary words. However, it is so brief that it sacrifices important behavioral context, but for pure conciseness it earns a high score.

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?

The tool has no output schema and no annotations, so the description must provide complete context. It only states the basic action and lacks information about prerequisites, effects, or edge cases. For a tool that interacts with a live page, this is insufficient for an agent to fully understand its impact.

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 both 'ref' and 'element' well-described in the schema. The description adds no additional parameter meaning beyond what the schema already provides, so the baseline score of 3 is appropriate.

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 tool's function as 'Hover over element on page', which is a specific verb+resource. It distinguishes itself from sibling tools like browser_click and browser_type by the action 'hover'. However, it does not explicitly call out differences from siblings, so it misses the top 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 does not mention typical scenarios (e.g., triggering tooltips, dropdowns) or any exclusions. The usage is only implicitly conveyed by the action itself, which is not enough.

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

browser_navigateC

Navigate to a URL

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL to navigate to

TDQS

C2.4/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 disclose behavioral traits. It only says 'Navigate to a URL' without mentioning whether the tool waits for page load, handles redirects, returns a result, or affects the page state. This is a significant transparency gap for a tool that likely changes the browser context.

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 short sentence with no fluff, making it very concise. However, it is almost too sparse, providing minimal value beyond the name. It is still well-structured and front-loaded, just lacking substance.

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 tool with one parameter, no output schema, and no annotations, the description is expected to explain basic behavioral context. The description alone is insufficient for an agent to understand what happens after navigation (e.g., does it return a snapshot? does it block until loaded?). The low complexity mitigates the issue slightly, but the complete lack of behavioral information makes this incomplete.

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 is simple with one required parameter 'url' that has a description ('The URL to navigate to'), covering 100% of the schema. The tool description adds no further meaning beyond the schema, so the baseline score of 3 is appropriate.

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' states the core action, but it essentially restates the tool name and does not distinguish from sibling navigation tools like browser_go_back or browser_go_forward. It lacks specificity about what 'navigate' entails (e.g., loading a new page vs. history navigation).

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?

There is no guidance on when to use this tool versus alternatives. For instance, it does not clarify that this tool is for navigating to a specific URL rather than using browser_go_back or browser_go_forward for history traversal. No when-to-use or when-not-to-use context is provided.

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

browser_press_keyB

Press a key on the keyboard

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesName of the key to press or a character to generate, such as `ArrowLeft` or `a`

TDQS

B3.1/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 responsibility for behavioral disclosure. It only states the literal action and says nothing about focus requirements, potential side effects (e.g., triggering form submission), or whether key combinations are supported.

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, concise sentence with no redundant words or irrelevant details. It is appropriately sized for a simple one-parameter tool.

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

Completeness3/5

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

While the schema is rich and covers the parameter well, the description lacks usage context and behavioral details. It is adequate for a basic tool but leaves gaps in when to use it and what side effects may occur.

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 fully documents the 'key' parameter with examples such as 'ArrowLeft' or 'a', providing 100% coverage. The description adds no additional semantic meaning beyond what the schema already provides.

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 'Press a key on the keyboard' uses a specific verb and resource, clearly indicating the action. It does not explicitly differentiate from sibling tools like browser_type, but the action is distinct enough by name.

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 browser_type for typing text or browser_click. No 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.

browser_screenshotB

Take a screenshot of the current page

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It only says 'take a screenshot' without detailing what the output looks like, whether it captures the full page or just the viewport, where the image is saved, or any side effects. This is a significant gap for a tool with no structured annotation support.

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, efficiently worded sentence that conveys the core action without any filler. Every word earns its place, and the length is perfectly matched to the tool's trivial parameter surface.

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

Completeness3/5

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

For a zero-parameter, simple tool the description is minimally adequate, but it lacks important context about the output format, whether it waits for network idle, or how it differs from the sibling browser_snapshot tool. This prevents it from being fully complete for an agent deciding between capture methods.

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

Parameters4/5

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

The tool takes no parameters, and the input schema confirms this with 0 properties. Since there are no parameters to document, the baseline of 4 is appropriate; the description correctly avoids inventing unnecessary parameter details.

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'), making its purpose immediately understandable. However, it does not differentiate from sibling tools like browser_snapshot, which could also capture page state, so it stops short of a 5.

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?

No guidance is provided on when to use this tool versus alternatives such as browser_snapshot. The description does not mention any prerequisites (e.g., page must be loaded) or exclusion scenarios, leaving the user to infer usage.

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

browser_select_optionB

Select an option in a dropdown

ParametersJSON Schema
NameRequiredDescriptionDefault
refYesExact target element reference from the page snapshot
valuesYesArray of values to select in the dropdown. This can be a single value or multiple values.
elementYesHuman-readable element description used to obtain permission to interact with the element

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure, but it only states the basic action. It does not disclose prerequisites (e.g., a visible dropdown, a prior snapshot), side effects (e.g., triggering change events), or behavior with multi-select. For a simple interaction, this minimal info leaves gaps about runtime behavior.

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 concise sentence with no fluff. It is appropriately sized for the tool's simplicity, though it could include a brief usage tip without becoming verbose. It is well-structured and immediately comprehensible.

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

Completeness3/5

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

Given the tool's simplicity, 100% schema coverage, and no output schema, the description is minimally adequate. However, it lacks guidance on when to use it versus sibling tools, and it does not mention multi-select behavior or prerequisites such as a snapshot. These are clear gaps, but not severe given the straightforward nature of the operation.

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 all three parameters (ref, values, element). The description adds no additional meaning beyond the schema, so the baseline score of 3 applies. It does not clarify how 'values' interacts with multi-select or how ref is obtained.

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

Purpose5/5

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

The description 'Select an option in a dropdown' uses a specific verb ('select') + resource ('option in a dropdown'), clearly distinguishing it from sibling tools like browser_click, browser_type, and browser_press_key. There is no ambiguity about what operation it performs.

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 that it should be used specifically for dropdown elements, nor does it exclude scenarios where browser_click might be more appropriate. There is no explicit comparison or context.

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

browser_snapshotA

Capture accessibility snapshot of the current page. Use this for getting references to elements to interact with.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations, the description carries the transparency burden. 'Capture accessibility snapshot' implies a non-destructive read operation, but it does not explicitly state side effects, return format, or limitations. It adds some context about the purpose (references for interaction) but lacks deeper behavioral disclosure.

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 two sentences, front-loaded with the primary action, and contains no filler. Every word adds value by conveying what the tool does and why to use it.

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

Completeness4/5

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

Given the tool has no parameters and no output schema, the description adequately covers its purpose and usage. It does not detail the snapshot's format or content, but for a simple read-only tool with no inputs, this is acceptable. The context relative to siblings is clear enough for an agent to decide when to call it.

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

Parameters4/5

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

The tool has zero parameters and 100% schema coverage (empty properties object), so the schema fully documents parameters. The description adds meaning by explaining the tool's output is used for interaction references, which is useful beyond the schema. Baseline for 0 params is 4.

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

Purpose5/5

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

The description clearly states the tool captures an accessibility snapshot of the current page, which is a specific verb+resource. This distinguishes it from siblings like browser_screenshot (visual) and browser_navigate (navigation), making the purpose unambiguous.

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

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use this for getting references to elements to interact with,' providing clear context for when to use the tool. It does not mention when not to use it or name specific alternatives, but the usage context is directly stated.

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

browser_typeC

Type text into editable element

ParametersJSON Schema
NameRequiredDescriptionDefault
refYesExact target element reference from the page snapshot
textYesText to type into the element
submitYesWhether to submit entered text (press Enter after)
elementYesHuman-readable element description used to obtain permission to interact with the element

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It only states 'Type text into editable element' without revealing whether text is appended or replaced, how the 'element' permission field works, or any error or side-effect behavior. This is minimal and leaves significant gaps.

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 concise sentence with no wasted words, front-loading the core action. However, it is under-specified, which slightly detracts from its overall value despite being concise.

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?

The tool is part of a browser automation suite, but the description fails to mention that 'ref' comes from a page snapshot, the role of the human-readable 'element' description, or the behavior of the 'submit' flag. With no output schema or annotations, these contextual details are necessary for correct invocation.

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 coverage is 100% (all four parameters have descriptions), so the schema handles parameter semantics. The description adds no additional meaning beyond the schema, which meets the baseline for high coverage.

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

Purpose5/5

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

The description uses a specific verb ('Type') and target ('editable element'), clearly distinguishing it from sibling tools like browser_click or browser_press_key. It states exactly what the tool does without ambiguity.

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

Usage Guidelines1/5

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. There is no mention of prerequisites (e.g., obtaining a ref from a snapshot), nor any exclusions or comparisons with browser_press_key or other sibling tools.

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

browser_waitB

Wait for a specified time in seconds

ParametersJSON Schema
NameRequiredDescriptionDefault
timeYesThe time to wait in seconds

TDQS

B3.2/5.0
Behavior2/5

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

There are no annotations, and the description does not disclose any behavioral traits beyond the bare action. It doesn't specify whether the wait is blocking, whether it can be interrupted, or whether it interacts with page load state. For a wait operation, this lack of detail leaves important behavioral aspects unaddressed.

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 one short, front-loaded sentence that conveys the core function without any fluff. Every word earns its place. It is appropriately sized for a simple, single-parameter tool.

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 simplicity and the complete schema, the description is still minimal. It doesn't explain why one might use this wait (e.g., to allow page loading), whether it blocks further actions, or what the return value is. There is no context to help the agent decide when to apply it.

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% coverage with the parameter description ('The time to wait in seconds'). The description adds no additional meaning beyond the schema, but the baseline for high coverage is 3, and no parameter information is missing.

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

Purpose5/5

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

The description clearly states the tool's function: 'Wait for a specified time in seconds'. It uses a specific verb ('wait') and identifies the resource ('specified time'). It distinguishes itself from sibling browser tools which are navigation, clicking, typing, etc. No ambiguity.

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 that this is a fixed delay, or that it might be preferable to wait for elements or conditions. As a result, the agent receives no context about appropriate use cases or exclusions.

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. 12 tool updatesv1.0.0
    • First observedbrowser_click
    • First observedbrowser_get_console_logs
    • First observedbrowser_go_back
    • First observedbrowser_go_forward
    • First observedbrowser_hover
    • First observedbrowser_navigate
    • First observedbrowser_press_key
    • First observedbrowser_screenshot
    • First observedbrowser_select_option
    • First observedbrowser_snapshot
    • First observedbrowser_type
    • First observedbrowser_wait

TDQS

A3.5/5.0
Disambiguation5/5

Each tool targets a distinct browser action: navigation, history, interaction, state inspection, and waiting. Snapshot and screenshot are clearly separated (accessibility tree vs visual capture), and no two tools overlap in purpose.

Naming Consistency5/5

All tools follow the browser_verb_noun pattern consistently, using lowercase and underscores. The verb clearly indicates the action (navigate, click, type, wait), making the set predictable and easy to navigate.

Tool Count5/5

With 12 tools, the server is well-scoped for browser automation, covering essential actions without unnecessary bloat. This fits comfortably within the ideal range, and each tool earns its place.

Completeness4/5

The set covers core browser workflows: navigation, history, interaction, state reading, and waiting. Minor gaps exist (e.g., explicit scroll or page reload), but agents can work around them, making the surface reasonably complete for basic automation.

Maintenance

ActivityInactive
ResponsivenessNo issues

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

  • A
    license
    B
    quality
    D
    maintenance
    A client-server browser automation solution that reduces HTML token usage by up to 90% through semantic snapshots, enabling complex web interactions without exhausting AI context windows.
    28
    58
    15
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    An MCP server that provides browser automation capabilities, enabling LLMs to control a web browser for navigation, interaction, and data extraction.
    32
    232
    13
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    A token-efficient MCP server for Chrome browser automation that uses direct CDP and accessibility-tree-based references for stable element selection across DOM changes.
    25
    166
    6
    MIT

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/The-Thought-Magician/enhanced-browser-mcp'

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