Skip to main content
Glama

Browserless MCP Server

A Model Context Protocol (MCP) server for Browserless.io browser automation. This server provides a comprehensive interface to Browserless's powerful browser automation capabilities through MCP tools.

Features

  • PDF Generation: Convert web pages or HTML content to PDF with custom styling

  • Screenshots: Capture full-page or element-specific screenshots

  • Content Extraction: Get rendered HTML content after JavaScript execution

  • Custom Functions: Execute JavaScript code in browser context

  • File Downloads: Handle file downloads and programmatic file creation

  • Page Export: Export web pages with all resources

  • Performance Audits: Run Lighthouse performance audits

  • Anti-Detection: Bypass bot detection and anti-scraping measures

  • BrowserQL: Execute GraphQL queries for advanced automation

  • WebSocket Connections: Create connections for Puppeteer/Playwright

  • Health Monitoring: Check instance health and get metrics

  • Session Management: Monitor active browser sessions

Related MCP server: Playwright MCP Server

Installation

  1. Clone the repository:

git clone https://github.com/Lizzard-Solutions/browserless-mcp.git
cd browserless-mcp
  1. Install dependencies:

npm install
  1. Build the project:

npm run build
  1. Copy the example environment file:

cp env.example .env
  1. Edit .env with your Browserless configuration:

BROWSERLESS_HOST=localhost
BROWSERLESS_PORT=3000
BROWSERLESS_TOKEN=your-secure-token-here
BROWSERLESS_PROTOCOL=http
BROWSERLESS_TIMEOUT=30000
BROWSERLESS_CONCURRENT=5

Usage

Starting the MCP Server

npm start

Or for development:

npm run dev

Using with MCP Clients

The server provides the following tools:

1. Initialize Browserless Connection

{
  "name": "initialize_browserless",
  "arguments": {
    "host": "localhost",
    "port": 3000,
    "token": "your-token",
    "protocol": "http",
    "timeout": 30000,
    "concurrent": 5
  }
}

2. Generate PDF

{
  "name": "generate_pdf",
  "arguments": {
    "url": "https://example.com",
    "options": {
      "format": "A4",
      "printBackground": true,
      "displayHeaderFooter": true,
      "margin": {
        "top": "20mm",
        "bottom": "10mm",
        "left": "10mm",
        "right": "10mm"
      }
    }
  }
}

3. Take Screenshot

{
  "name": "take_screenshot",
  "arguments": {
    "url": "https://example.com",
    "options": {
      "type": "png",
      "fullPage": true,
      "quality": 90
    }
  }
}

4. Extract Content

{
  "name": "get_content",
  "arguments": {
    "url": "https://example.com",
    "waitForSelector": {
      "selector": "#content-loaded",
      "timeout": 5000
    }
  }
}

5. Execute Custom Function

{
  "name": "execute_function",
  "arguments": {
    "code": "export default async function ({ page }) { await page.goto('https://example.com'); const title = await page.title(); return { data: { title }, type: 'application/json' }; }",
    "context": {
      "customData": "value"
    }
  }
}

6. Run Performance Audit

{
  "name": "run_performance_audit",
  "arguments": {
    "url": "https://example.com",
    "config": {
      "extends": "lighthouse:default",
      "settings": {
        "onlyCategories": ["performance", "accessibility"]
      }
    }
  }
}

7. Bypass Bot Detection

{
  "name": "unblock",
  "arguments": {
    "url": "https://protected-site.com",
    "content": true,
    "screenshot": true,
    "stealth": true,
    "blockAds": true
  }
}

8. Execute BrowserQL Query

{
  "name": "execute_browserql",
  "arguments": {
    "query": "mutation { goto(url: \"https://example.com\") { status } click(selector: \"#button\") { success } screenshot { base64 } }",
    "variables": {}
  }
}

9. Create WebSocket Connection

{
  "name": "create_websocket_connection",
  "arguments": {
    "browser": "chromium",
    "library": "puppeteer",
    "stealth": true,
    "viewport": {
      "width": 1920,
      "height": 1080
    }
  }
}

10. Health and Monitoring

{
  "name": "get_health",
  "arguments": {}
}
{
  "name": "get_sessions",
  "arguments": {}
}
{
  "name": "get_metrics",
  "arguments": {}
}

Browserless Setup

Docker Setup

# Basic setup
docker run -p 3000:3000 ghcr.io/browserless/chromium

# With configuration
docker run \
  --rm \
  -p 3000:3000 \
  -e "CONCURRENT=10" \
  -e "TOKEN=your-secure-token" \
  ghcr.io/browserless/chromium

Docker Compose

version: '3.8'

services:
  browserless:
    image: ghcr.io/browserless/chromium:latest
    container_name: browserless
    restart: unless-stopped
    ports:
      - "3000:3000"
    environment:
      - TOKEN=your-secure-token-here
      - CONCURRENT=10
      - TIMEOUT=120000
      - HEALTH=true
      - CORS=true
    volumes:
      - ./data:/app/data
      - ./downloads:/app/downloads

Advanced Examples

Complex Web Scraping

{
  "name": "execute_function",
  "arguments": {
    "code": "export default async function ({ page }) { await page.goto('https://example.com'); await page.waitForSelector('.item'); const items = await page.evaluate(() => Array.from(document.querySelectorAll('.item')).map(el => ({ text: el.textContent, href: el.href }))); return { data: { items }, type: 'application/json' }; }"
  }
}

Multi-step Form Automation

{
  "name": "execute_function",
  "arguments": {
    "code": "export default async function ({ page }) { await page.goto('https://example.com/form'); await page.type('#username', 'user@example.com'); await page.type('#password', 'password123'); await page.click('#submit'); await page.waitForNavigation(); const result = await page.evaluate(() => document.querySelector('.success-message').textContent); return { data: { result }, type: 'application/json' }; }"
  }
}

PDF Report Generation

{
  "name": "generate_pdf",
  "arguments": {
    "html": "<!DOCTYPE html><html><head><style>body{font-family:Arial;margin:20px;} .header{background:#333;color:white;padding:20px;} .content{margin:20px 0;}</style></head><body><div class='header'><h1>Monthly Report</h1></div><div class='content'><h2>Summary</h2><p>This is a generated report with custom styling.</p></div></body></html>",
    "options": {
      "format": "A4",
      "printBackground": true,
      "displayHeaderFooter": true,
      "headerTemplate": "<div style='font-size:12px;'>Confidential Report</div>",
      "footerTemplate": "<div style='font-size:10px;'>Page <span class='pageNumber'></span></div>"
    }
  }
}

Configuration Options

Environment Variables

Variable

Default

Description

BROWSERLESS_HOST

localhost

Browserless host

BROWSERLESS_PORT

3000

Browserless port

BROWSERLESS_TOKEN

Required

Authentication token

BROWSERLESS_PROTOCOL

http

Protocol (http/https/ws/wss)

BROWSERLESS_TIMEOUT

30000

Request timeout in ms

BROWSERLESS_CONCURRENT

5

Max concurrent sessions

Browserless Configuration

For complete Browserless configuration options, see the Browserless API Reference.

Error Handling

The MCP server provides detailed error messages for common issues:

  • Connection Errors: Check host, port, and token configuration

  • Timeout Errors: Increase timeout values for slow-loading pages

  • Authentication Errors: Verify token is correct and has proper permissions

  • Resource Errors: Check concurrent session limits and memory usage

Development

Building

npm run build

Testing

npm test

Linting

npm run lint

Formatting

npm run format

Troubleshooting

Common Issues

  1. Connection Refused

    • Ensure Browserless is running

    • Check host and port configuration

    • Verify firewall settings

  2. Authentication Failed

    • Verify token is correct

    • Check token permissions

    • Ensure token is not expired

  3. Timeout Errors

    • Increase timeout values

    • Check network connectivity

    • Monitor Browserless resource usage

  4. Memory Issues

    • Reduce concurrent session limit

    • Monitor system memory usage

    • Restart Browserless instance

Debug Mode

Enable debug logging:

DEBUG=browserless:* npm start

Contributing

  1. Fork the repository

  2. Create a feature branch

  3. Make your changes

  4. Add tests

  5. Submit a pull request

License

MIT License - see LICENSE file for details.

Support

For issues and questions:

  1. Check the Browserless API Reference

  2. Review the Browserless Documentation

  3. Open an issue on GitHub

Repository

Available Tools

15 tools
create_websocket_connectionC

Create WebSocket connection for Puppeteer/Playwright

ParametersJSON Schema
NameRequiredDescriptionDefault
browserNo
libraryNo
stealthNo
blockAdsNo
viewportNo
userAgentNo
extraHTTPHeadersNo

TDQS

C2.8/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 tool creates a WebSocket connection but doesn't describe what this entails—whether it launches a browser instance, establishes a persistent connection, requires authentication, has rate limits, or what happens on failure. For a tool with 7 parameters and no annotation coverage, this is a significant gap in transparency.

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 waste. It's front-loaded with the core action and resource, making it easy to scan. Every word earns its place by specifying the target frameworks.

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 (7 parameters, nested objects, no output schema, and no annotations), the description is incomplete. It doesn't explain what the tool returns, how to use the WebSocket connection, error handling, or the significance of parameters like 'stealth' and 'blockAds'. For a tool that likely involves browser automation and network connections, more context is needed.

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?

Schema description coverage is 0%, so the description must compensate for undocumented parameters. It mentions 'for Puppeteer/Playwright', which hints at the 'library' parameter, but doesn't explain the purpose of any parameters like 'browser', 'stealth', 'blockAds', or complex nested objects like 'viewport'. With 7 parameters and no schema descriptions, the description adds minimal semantic value beyond the tool name.

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 ('Create') and resource ('WebSocket connection'), specifying it's for Puppeteer/Playwright. It distinguishes from siblings like 'initialize_browserless' by focusing on WebSocket creation rather than general browser initialization. However, it doesn't explicitly differentiate from all siblings like 'execute_browserql' which might also involve browser connections.

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 prerequisites, when to choose this over 'initialize_browserless' or other browser-related tools, or any context for WebSocket connections versus other methods. Usage is implied only by the tool name and description.

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

download_filesD

Handle file downloads

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes
contextNo

TDQS

D1.5/5.0
Behavior1/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. 'Handle file downloads' is extremely vague—it doesn't specify if this is a read-only operation, requires authentication, has rate limits, affects system state, or what the output entails. This leaves critical behavioral traits unknown.

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

Conciseness3/5

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

The description is concise with a single phrase, but it's under-specified rather than efficiently informative. While it avoids unnecessary words, it lacks the structure needed to convey meaningful information, making it more of a placeholder than a helpful description.

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 complexity implied by 2 parameters (including a nested object), no annotations, no output schema, and 0% schema coverage, the description is completely inadequate. It doesn't address what the tool does, how to use it, what parameters mean, or what to expect, leaving the agent with insufficient context.

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

Parameters1/5

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

Schema description coverage is 0%, so the schema provides no parameter details. The description adds no information about the parameters 'code' (a required string) or 'context' (an object), failing to explain their purpose, format, or how they relate to file downloads. This is inadequate for a tool with 2 parameters.

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

Purpose2/5

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

The description 'Handle file downloads' is tautological with the tool name 'download_files', essentially restating the name without adding specificity. It doesn't clarify what types of files, from what source, or with what constraints, making it vague about the actual purpose beyond the obvious.

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. With sibling tools like 'export_page', 'generate_pdf', and 'take_screenshot' that might involve file outputs, there's no indication of how 'download_files' differs or when it's the appropriate choice, leaving the agent without usage context.

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

execute_browserqlC

Execute BrowserQL GraphQL queries

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
variablesNo

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 tool executes queries but doesn't describe what happens during execution (e.g., network calls, browser interactions, error handling), what permissions or resources are required, or what the output looks like. For a tool with potential side effects and no structured safety hints, 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 with zero wasted words. It's front-loaded with the core action ('Execute') and resource ('BrowserQL GraphQL queries'), making it easy to parse. Every word earns its place by conveying the essential purpose without redundancy.

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 (GraphQL execution likely involves network/browser operations), lack of annotations, no output schema, and low schema coverage, the description is incomplete. It doesn't cover execution behavior, error cases, return values, or how it integrates with sibling tools like 'initialize_browserless'. For a tool with such potential depth, more context is needed.

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 schema has 2 parameters with 0% description coverage, so the description must compensate. It mentions 'GraphQL queries' but doesn't explain the 'query' parameter's format (e.g., GraphQL syntax) or the 'variables' parameter's role (e.g., for query placeholders). The description adds minimal value beyond what's inferred from the tool name, failing to address the undocumented parameters adequately.

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 states the tool executes BrowserQL GraphQL queries, which provides a basic purpose (verb+resource). However, it doesn't specify what BrowserQL is or how it differs from standard GraphQL, nor does it distinguish this tool from siblings like 'execute_function' or 'run_performance_audit' that might also execute code/queries. The purpose is clear at a surface level but lacks specificity and differentiation.

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 prerequisites (e.g., needing an initialized browser session), exclusions (e.g., not for simple HTTP requests), or comparisons to siblings like 'execute_function' for non-GraphQL execution. Without such context, an agent must infer usage from the tool name alone.

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

execute_functionC

Execute custom JavaScript function in browser context

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes
contextNo

TDQS

C2.8/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 doesn't cover critical aspects like security implications, execution timeouts, error handling, or whether it modifies browser state. This is a significant gap for a tool that executes arbitrary code.

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 with zero wasted words. It's appropriately sized and front-loaded, efficiently conveying the core purpose 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?

Given the complexity of executing arbitrary JavaScript in a browser, lack of annotations, 0% schema coverage, and no output schema, the description is incomplete. It doesn't address safety, performance, or result handling, making it inadequate for informed tool selection.

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?

Schema description coverage is 0%, so the description must compensate but fails to do so. It doesn't explain what 'code' or 'context' parameters represent, their expected formats, or examples. For a tool with 2 parameters (one required) and nested objects, this leaves the agent guessing about proper usage.

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') and target ('custom JavaScript function in browser context'), providing a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'execute_browserql' or 'run_performance_audit' which might also involve browser execution, leaving room for 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?

No guidance is provided about when to use this tool versus alternatives like 'execute_browserql' or other browser-related siblings. The description implies a general-purpose execution context but doesn't specify prerequisites, limitations, or typical use cases, leaving the agent with minimal direction.

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

export_pageC

Export webpage with resources

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
headersNo
bestAttemptNo

TDQS

C2.4/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 mentions exporting 'with resources', which hints at including assets like images or scripts, but doesn't specify output format, whether it's a file or data, error handling, or performance implications. This leaves significant gaps for a tool that likely performs network operations.

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 very concise with just one phrase, which is appropriately sized for a simple concept. However, it's too brief to be fully informative, bordering on under-specification rather than efficient communication.

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 no annotations, 3 parameters with 0% schema coverage, no output schema, and complexity from network operations, the description is incomplete. It doesn't cover what gets exported, in what format, error conditions, or how parameters interact, making it insufficient for reliable tool invocation.

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?

Schema description coverage is 0%, so the description must compensate but adds no parameter information. It doesn't explain what 'url', 'headers', or 'bestAttempt' mean, their formats, or how they affect the export. For 3 parameters with no schema descriptions, this is inadequate.

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 'Export webpage with resources' states a general purpose (exporting webpages) but lacks specificity about what 'with resources' means or how it differs from sibling tools like 'take_screenshot' or 'generate_pdf'. It uses a clear verb ('Export') and resource ('webpage'), but doesn't distinguish from alternatives.

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 like 'take_screenshot', 'generate_pdf', or 'get_content'. The description doesn't mention any prerequisites, constraints, or typical use cases, leaving the agent with no contextual usage information.

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

generate_pdfC

Generate PDF from URL or HTML content

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
htmlNo
optionsNo

TDQS

C2.8/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 what the tool does but doesn't describe any behavioral traits such as performance characteristics, error handling, authentication requirements, rate limits, or what happens when both 'url' and 'html' parameters are provided. For a tool with 3 parameters and 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.

Conciseness5/5

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

The description is extremely concise at just 6 words, front-loading the core functionality with zero wasted words. Every word earns its place by specifying the action, output format, and input sources.

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 (3 parameters with nested objects, no output schema, and no annotations), the description is incomplete. It doesn't explain the relationship between 'url' and 'html' parameters, the purpose of the 'options' object, expected output format, or error conditions. The agent lacks sufficient context to use this tool effectively.

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?

Schema description coverage is 0%, so the description must compensate by explaining parameters. It mentions 'URL or HTML content', which hints at the 'url' and 'html' parameters, but doesn't explain the 'options' parameter or its nested properties. With 3 parameters (one complex nested object) and no schema descriptions, the description adds minimal value beyond what the bare schema 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 clearly states the tool's purpose: 'Generate PDF from URL or HTML content'. It specifies the verb ('Generate') and resource ('PDF'), and indicates the input sources ('URL or HTML content'). However, it doesn't distinguish this from sibling tools like 'export_page' or 'take_screenshot' which might have similar functionality, preventing 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 any prerequisites, constraints, or comparison with sibling tools like 'export_page' or 'take_screenshot'. The agent must infer usage from the tool name and parameters alone.

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

get_configD

Get configuration

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

D1.8/5.0
Behavior1/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 but fails to do so. It doesn't indicate whether this is a read-only operation, if it requires authentication, what the return format might be, or any potential side effects, making it inadequate for a 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.

Conciseness2/5

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

While concise with only two words, the description is under-specified rather than efficiently structured. It lacks essential details about what configuration is retrieved, making it too brief to be helpful, which is a flaw in content rather than a virtue of brevity.

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 lack of annotations, no output schema, and a vague description, this is completely inadequate. The tool's purpose and behavior are unclear, and the description fails to compensate for the missing structured data, leaving significant gaps in understanding.

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 0 parameters with 100% schema description coverage, so the schema fully documents the absence of inputs. The description doesn't need to add parameter details, and it appropriately avoids unnecessary complexity, meeting the baseline for a parameterless tool.

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

Purpose2/5

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

The description 'Get configuration' is a tautology that merely restates the tool name 'get_config' without adding specificity. It doesn't clarify what configuration is being retrieved, from where, or for what purpose, making it vague and minimally informative.

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 like 'get_content' or 'get_health'. The description lacks any context about prerequisites, timing, or comparisons with sibling tools, leaving the agent with no usage direction.

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

get_contentC

Extract rendered HTML content from a webpage

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
waitForSelectorNo
waitForFunctionNo

TDQS

C2.8/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 tool extracts rendered HTML, implying it performs a read operation, but lacks details on permissions, rate limits, error handling, or output format. This is inadequate for a tool with complex parameters and no output schema.

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

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 without unnecessary words. It's front-loaded and easy to parse, making it highly concise and well-structured for quick understanding.

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 (3 parameters with nested objects, no output schema, and no annotations), the description is insufficient. It doesn't cover parameter meanings, behavioral traits like execution constraints, or output details, leaving significant gaps for an AI agent to use the tool effectively.

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?

Schema description coverage is 0%, so the description must compensate for undocumented parameters. It mentions 'rendered HTML content from a webpage,' which hints at the 'url' parameter but doesn't explain 'waitForSelector' or 'waitForFunction' or their purposes. This leaves key parameters semantically unclear, failing to add meaningful value beyond the bare schema.

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 ('Extract') and the resource ('rendered HTML content from a webpage'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'export_page' or 'take_screenshot', which might also involve webpage content extraction, so it falls short of 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 prerequisites, such as needing a valid URL or browser context, or compare it to siblings like 'execute_browserql' or 'export_page' for different extraction needs, leaving usage context ambiguous.

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

get_healthB

Get health status of Browserless instance

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 provided, the description carries full burden for behavioral disclosure. It states it 'gets' health status, implying a read operation, but doesn't specify what 'health status' includes (e.g., uptime, errors, metrics), whether it requires authentication, or any rate limits. This leaves significant gaps for agent understanding.

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 purpose without any fluff or unnecessary elaboration. It's perfectly front-loaded and wastes no words.

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 simple health-check tool with 0 parameters and no output schema, the description is minimally adequate. However, without annotations or output schema, it lacks details on what 'health status' returns (e.g., JSON structure, key indicators), which could hinder agent usage in complex scenarios.

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 0 parameters, and schema description coverage is 100%, so there's no need for parameter explanation in the description. The baseline for this scenario is 4, as the description appropriately avoids redundant 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 verb ('Get') and resource ('health status of Browserless instance'), making the purpose unambiguous. However, it doesn't differentiate from sibling tools like 'get_config' or 'get_metrics' that also retrieve status information, preventing 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 like 'get_config' or 'get_metrics', nor does it mention any prerequisites or context for usage. It's a basic statement of function without operational guidance.

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

get_metricsD

Get metrics

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

D1.8/5.0
Behavior1/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 but offers no information about what the tool does, its safety profile, rate limits, authentication needs, or return format. It fails to describe any behavioral traits beyond the vague 'Get metrics' statement.

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

Conciseness2/5

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

While 'Get metrics' is brief, this is under-specification rather than effective conciseness. The description fails to provide any meaningful information about the tool's purpose or behavior, making it inefficient despite its short length.

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 (unknown but likely involves data retrieval), no annotations, no output schema, and a completely inadequate description, this is insufficient for an agent to understand what the tool does or how to use it effectively. The description provides no contextual 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 0 parameters with 100% schema description coverage, so the schema fully documents the absence of inputs. The description doesn't need to compensate for any parameter gaps, and the baseline for this situation is 4 since no parameter information is required.

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

Purpose2/5

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

The description 'Get metrics' is a tautology that merely restates the tool name without specifying what metrics are retrieved, from what resource, or for what purpose. It lacks a specific verb+resource combination and doesn't differentiate from sibling tools like get_config, get_content, or get_health.

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?

The description provides no guidance on when to use this tool versus alternatives. There's no mention of context, prerequisites, or exclusions, leaving the agent with no information about appropriate usage scenarios.

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

get_sessionsC

Get active sessions

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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. It states 'Get active sessions', implying a read-only operation, but does not disclose behavioral traits such as permissions needed, rate limits, whether it returns all sessions or a subset, or any side effects. This leaves significant gaps in understanding how the tool behaves.

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 extremely concise at three words, front-loaded with the core action and resource. There is no wasted language, and it efficiently communicates the basic purpose 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?

Given the tool has no annotations, no output schema, and a simple purpose, the description is incomplete. It lacks details on what 'active sessions' entails, the return format, or any behavioral context. For a tool with zero structured data, this minimal description does not provide enough information for effective use.

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 input schema has 0 parameters with 100% coverage, meaning no parameters are documented in the schema. The description does not mention any parameters, which is appropriate here since there are none. It adds no semantic details beyond the schema, but with zero parameters, a baseline of 4 is justified as no compensation is needed.

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 'Get active sessions' clearly states the verb ('Get') and resource ('active sessions'), making the purpose understandable. However, it lacks specificity about what 'sessions' refers to (e.g., user sessions, web sessions) and does not distinguish from siblings like 'get_config' or 'get_content', leaving room for 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?

No guidance is provided on when to use this tool versus alternatives. It does not mention prerequisites, context (e.g., after initialization), or exclusions, and with siblings like 'get_config' or 'get_health', there is no indication of how this tool differs in usage scenarios.

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

initialize_browserlessC

Initialize connection to Browserless instance

ParametersJSON Schema
NameRequiredDescriptionDefault
hostNolocalhost
portNo
tokenYes
protocolNohttp
timeoutNo
concurrentNo

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 mentions 'Initialize connection' but fails to explain what this entails—e.g., whether it establishes a persistent session, requires authentication, has side effects like resource allocation, or handles errors. For a tool with multiple parameters and no annotations, this leaves critical behavioral traits unclear.

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 action without unnecessary words. It's front-loaded and appropriately sized for its purpose, with no wasted verbiage, making it highly concise and well-structured.

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

Completeness2/5

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

Given the complexity (6 parameters, 1 required, no output schema, and no annotations), the description is incomplete. It doesn't explain the connection's purpose, parameter roles, behavioral implications, or output expectations. For a tool that likely initializes a critical resource, this leaves too much undefined for effective agent use.

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?

Schema description coverage is 0%, meaning parameters are undocumented in the schema. The description adds no information about any parameters, such as explaining what 'token' is for authentication or how 'concurrent' affects performance. With 6 parameters and no compensation in the description, this is a significant gap beyond the baseline.

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 states the action ('Initialize connection') and target ('to Browserless instance'), which clarifies the basic purpose. However, it doesn't specify what this connection enables or how it differs from sibling tools like 'create_websocket_connection', leaving the scope vague. It avoids tautology by not merely restating the 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 whether it's a prerequisite for other browser operations or how it relates to siblings like 'create_websocket_connection'. There's no mention of prerequisites, exclusions, or contextual triggers, offering minimal usage direction.

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

run_performance_auditC

Run Lighthouse performance audit

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
configNo

TDQS

C2.8/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. 'Run Lighthouse performance audit' implies a potentially resource-intensive operation that might have side effects (e.g., network requests, browser execution), but the description doesn't mention permissions, rate limits, execution time, or what the output looks like. This leaves significant gaps for a tool with no 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.

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 name and gets straight to the point 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?

Given the complexity (2 parameters with nested objects, no annotations, no output schema), the description is incomplete. It doesn't explain what a Lighthouse audit entails, what metrics it returns, how long it takes, or any error conditions. For a performance testing tool, this leaves too many operational questions unanswered.

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?

With 0% schema description coverage and 2 parameters (including a nested object), the description adds no information about what 'url' or 'config' mean, their expected formats, or how they affect the audit. The description fails to compensate for the complete lack of schema documentation, leaving parameters semantically undefined.

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 ('Run') and the resource ('Lighthouse performance audit'), providing a specific verb+resource combination. However, it doesn't differentiate this tool from potential siblings like 'execute_browserql' or 'take_screenshot' that might also involve browser-based operations, 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. With siblings like 'execute_browserql' and 'take_screenshot' that might overlap in browser functionality, there's no indication of when this audit tool is preferred or what prerequisites might be needed.

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

take_screenshotC

Take screenshot of a webpage

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
optionsNo

TDQS

C2.8/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 ('Take screenshot') but doesn't describe what happens during execution—such as whether it opens a browser, requires network access, has timeouts, returns binary data, or handles errors. For a tool with potential complexity (browser interaction, image generation), this lack of behavioral context 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 ('Take screenshot of a webpage') with zero wasted words. It's front-loaded with the core action, making it easy to parse quickly. Every word earns its place by conveying the essential purpose without redundancy or fluff.

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 (browser-based screenshot capture with multiple parameters), no annotations, no output schema, and 0% schema description coverage, the description is incomplete. It doesn't address how the tool behaves, what it returns (e.g., image data, file path), or parameter usage, leaving critical gaps for the agent to operate effectively.

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?

Schema description coverage is 0%, so the description must compensate but fails to do so. It mentions no parameters, while the schema has 2 parameters ('url' and 'options') with nested properties like 'type', 'quality', and 'clip'. The description adds no meaning beyond the schema, leaving parameters undocumented in both places. With low coverage and no compensation, this scores below the baseline.

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 'Take screenshot of a webpage' clearly states the verb ('Take') and resource ('screenshot of a webpage'), making the purpose immediately understandable. It distinguishes from siblings like 'generate_pdf' or 'export_page' by specifying screenshot capture rather than PDF generation or general export. However, it doesn't explicitly differentiate from all possible screenshot-related tools (though none exist in the sibling list), keeping it at 4 rather than 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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., webpage must be accessible), compare to siblings like 'generate_pdf' for document output or 'export_page' for other export types, or specify scenarios where screenshots are preferred. The agent must infer usage from the tool name alone.

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

unblockC

Bypass bot detection and anti-scraping measures

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
contentNo
screenshotNo
stealthNo
blockAdsNo
headersNo

TDQS

C2.6/5.0
Behavior1/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 mentions bypassing security measures but fails to describe critical behaviors: whether this is a read-only or mutating operation, what permissions or risks are involved, what the output looks like, or any rate limits. This is inadequate for a tool with potentially sensitive functionality.

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 states the core purpose without any fluff. It's appropriately sized and front-loaded, making it easy to parse quickly. Every word earns its place in conveying the tool's intent.

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 (bypassing security measures), lack of annotations, no output schema, and 6 parameters with 0% schema coverage, the description is incomplete. It doesn't address what the tool returns, how it behaves, or the semantics of its parameters, leaving significant gaps for the agent to operate effectively.

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?

With 0% schema description coverage for 6 parameters, the description adds no meaning beyond what the bare schema provides. It doesn't explain what 'content', 'screenshot', 'stealth', 'blockAds', or 'headers' do, or how they relate to bypassing detection. The description fails to compensate for the schema's lack of documentation.

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 purpose with a specific verb ('bypass') and target ('bot detection and anti-scraping measures'), making it immediately understandable. However, it doesn't differentiate this tool from its siblings like 'get_content' or 'execute_browserql' that might also involve web access, 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.

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. With siblings like 'get_content' (which might fetch web content) and 'execute_browserql' (which might run browser queries), there's no indication of when 'unblock' is preferred or necessary, leaving the agent to guess based on context alone.

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. 15 tool updates
    • First observedcreate_websocket_connection
    • First observeddownload_files
    • First observedexecute_browserql
    • First observedexecute_function
    • First observedexport_page
    • First observedgenerate_pdf
    • First observedget_config
    • First observedget_content
    • First observedget_health
    • First observedget_metrics
    • First observedget_sessions
    • First observedinitialize_browserless
    • First observedrun_performance_audit
    • First observedtake_screenshot
    • First observedunblock

TDQS

C2.8/5.0
Disambiguation4/5

Most tools have distinct purposes targeting different browser automation tasks like PDF generation, screenshots, content extraction, and performance audits. However, 'execute_browserql' and 'execute_function' both involve executing code in the browser context and could potentially be confused for similar use cases, though their descriptions differentiate GraphQL queries from custom JavaScript.

Naming Consistency4/5

The naming follows a consistent verb_noun pattern throughout, such as 'create_websocket_connection', 'generate_pdf', and 'take_screenshot'. There are minor deviations like 'unblock' (a single verb without a noun) and 'get_config' (which could be more descriptive), but overall the pattern is clear and readable.

Tool Count5/5

With 15 tools, this is well-scoped for a browser automation server, covering essential operations like connection management, content extraction, file handling, and performance analysis. Each tool appears to serve a specific purpose without obvious redundancy, making the count appropriate for the domain.

Completeness5/5

The tool set provides comprehensive coverage for browser automation, including initialization, session management, content retrieval (HTML, PDF, screenshots), performance auditing, anti-scraping bypass, and configuration/health checks. There are no apparent gaps; agents can handle full workflows from setup to data extraction and cleanup.

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/Lizzard-Solutions/browserless-mcp'

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