Browserless MCP Server
Supports Docker deployment of Browserless instances for scalable browser automation infrastructure
Uses environment configuration files to manage Browserless connection settings and authentication tokens
Hosted on GitHub with issue tracking and community discussions for the MCP server project
Executes BrowserQL GraphQL queries for advanced browser automation workflows and operations
Executes custom JavaScript code in browser contexts for advanced web scraping and automation tasks
Runs Lighthouse performance audits on web pages to analyze performance, accessibility, and other metrics
Built as a Node.js application for browser automation through the Browserless platform
Manages dependencies and provides build scripts for the MCP server installation and development
Creates WebSocket connections for Puppeteer-based browser automation and control
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Browserless MCP Servertake a screenshot of the homepage at example.com"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
Clone the repository:
git clone https://github.com/Lizzard-Solutions/browserless-mcp.git
cd browserless-mcpInstall dependencies:
npm installBuild the project:
npm run buildCopy the example environment file:
cp env.example .envEdit
.envwith your Browserless configuration:
BROWSERLESS_HOST=localhost
BROWSERLESS_PORT=3000
BROWSERLESS_TOKEN=your-secure-token-here
BROWSERLESS_PROTOCOL=http
BROWSERLESS_TIMEOUT=30000
BROWSERLESS_CONCURRENT=5Usage
Starting the MCP Server
npm startOr for development:
npm run devUsing 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/chromiumDocker 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/downloadsAdvanced 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 |
|
| Browserless port |
| Required | Authentication token |
|
| Protocol (http/https/ws/wss) |
|
| Request timeout in ms |
|
| 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 buildTesting
npm testLinting
npm run lintFormatting
npm run formatTroubleshooting
Common Issues
Connection Refused
Ensure Browserless is running
Check host and port configuration
Verify firewall settings
Authentication Failed
Verify token is correct
Check token permissions
Ensure token is not expired
Timeout Errors
Increase timeout values
Check network connectivity
Monitor Browserless resource usage
Memory Issues
Reduce concurrent session limit
Monitor system memory usage
Restart Browserless instance
Debug Mode
Enable debug logging:
DEBUG=browserless:* npm startContributing
Fork the repository
Create a feature branch
Make your changes
Add tests
Submit a pull request
License
MIT License - see LICENSE file for details.
Support
For issues and questions:
Check the Browserless API Reference
Review the Browserless Documentation
Open an issue on GitHub
Related Projects
Browserless.io - Browser automation platform
Puppeteer - Node.js library for browser automation
Playwright - Cross-browser automation library
Model Context Protocol - Protocol for AI model interactions
Repository
Available Tools
15 toolscreate_websocket_connectionC
Create WebSocket connection for Puppeteer/Playwright
| Name | Required | Description | Default |
|---|---|---|---|
| browser | No | ||
| library | No | ||
| stealth | No | ||
| blockAds | No | ||
| viewport | No | ||
| userAgent | No | ||
| extraHTTPHeaders | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ||
| context | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. '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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| variables | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ||
| context | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action but doesn't 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| headers | No | ||
| bestAttempt | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| html | No | ||
| options | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states what the tool does but 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| waitForSelector | No | ||
| waitForFunction | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| host | No | localhost | |
| port | No | ||
| token | Yes | ||
| protocol | No | http | |
| timeout | No | ||
| concurrent | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It 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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| config | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. '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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| options | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| content | No | ||
| screenshot | No | ||
| stealth | No | ||
| blockAds | No | ||
| headers | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It 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.
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.
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.
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.
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.
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.
15 tool updates
- First observed
create_websocket_connection - First observed
download_files - First observed
execute_browserql - First observed
execute_function - First observed
export_page - First observed
generate_pdf - First observed
get_config - First observed
get_content - First observed
get_health - First observed
get_metrics - First observed
get_sessions - First observed
initialize_browserless - First observed
run_performance_audit - First observed
take_screenshot - First observed
unblock
TDQS
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.
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.
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.
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
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
Provides cloud browser automation capabilities using Stagehand and Browserbase, enabling LLMs to i…
AI-powered browser automation — navigate, click, fill forms, and extract data from any website.
Crawl, scrape, search the web, and automate browsers at scale with anti-bot bypass.
Stealth web automation for AI agents. Login, signup, navigate, screenshot.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to control browser automation through natural language prompts using Playwright, supporting visual element interaction, PDF generation, screenshots, and testing assertions.-
- AlicenseNot gradedqualityDmaintenanceProvides browser automation capabilities using Playwright, enabling users to navigate websites, extract content, take screenshots, and interact with web pages through natural language prompts.15MIT
- AlicenseBqualityNot gradedmaintenanceEnables browser automation and web scraping through Playwright, supporting navigation, screenshots, element interaction, form filling, JavaScript execution, and content extraction.8-
- AlicenseNot gradedqualityDmaintenanceEnables LLMs to perform browser automation tasks including web scraping, taking screenshots, and executing JavaScript using Playwright. It facilitates real-time interaction with web pages and the generation of automated test code.58MIT
Appeared in Searches
- How to replicate or copy website functionality
- Screen sharing or remote desktop access software
- Tool for searching and downloading datasets from Canada's Open Data portal
- MCP server for browser automation, form filling, system login, and website navigation
- Information about scraping tools and techniques
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Lizzard-Solutions/browserless-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server