Skip to main content
Glama

Webtools MCP Server

⚠️ IMPORTANT DISCLAIMER: This software has been developed with the assistance of AI technology. It is provided as-is and should NOT be used in production environments without thorough testing and validation. The code may contain errors, security vulnerabilities, or unexpected behavior. Use at your own risk for research, learning, or development purposes only.

A Model Context Protocol server providing comprehensive web analysis tools including HTML extraction, markdown conversion, screenshot capabilities, debug console, advanced performance analysis, and Lighthouse-powered web audits for performance, accessibility, SEO, and more.

Prerequisites

  • Node.js: Version 14 or higher

  • Chrome/Chromium: Automatically provided by Puppeteer

    • The server will use Puppeteer's bundled Chrome

    • No need to install Chrome separately

Related MCP server: Hyperbrowser MCP Server

Features

Core Tools

  • webtool_gethtml: Raw HTML content extraction

    • JavaScript rendering support

    • Proxy support

    • Automatic retries

  • webtool_readpage: Markdown conversion

    • Clean content extraction

    • Link preservation

    • Image handling

    • Custom selector support

  • webtool_screenshot: Screenshot capture

    • Full page screenshots

    • Element-specific capture

    • Device emulation

    • Custom viewport settings

  • webtool_debug: Debug console

    • Console output capture

    • Network request monitoring

    • Error tracking

    • Performance metrics

    • Layout thrashing detection

  • webtool_lighthouse: Comprehensive Web Audit

    • Performance analysis

    • Accessibility testing

    • SEO evaluation

    • Best practices review

    • Progressive Web App assessment

    • Device emulation support

Performance Analysis Tools

  • webtool_performance_trace: Advanced Performance Analysis

    • Layout thrashing detection

    • CSS variables impact analysis

    • JavaScript execution timeline with layout correlation

    • Long task breakdown and attribution

    • Memory and DOM size analysis

    • Resource loading optimization

  • webtool_network_monitor: Network Activity Analysis

    • Detailed request and response analysis

    • Resource timing information

    • Waterfall visualization data

    • Optimization recommendations

    • Third-party request analysis

    • Cache analysis

  • webtool_coverage_analysis: Code Coverage Analysis

    • JavaScript and CSS coverage analysis

    • Unused code identification

    • Code splitting recommendations

    • Third-party code analysis

  • webtool_web_vitals: Core Web Vitals Analysis

    • LCP (Largest Contentful Paint) analysis

    • CLS (Cumulative Layout Shift) analysis

    • FID/INP (First Input Delay/Interaction to Next Paint) analysis

    • TTFB (Time to First Byte) analysis

    • Element-specific analysis

  • webtool_performance_test: Cross-device and Network Testing

    • Multi-device testing

    • Network condition simulation

    • Comparative analysis

    • Baseline comparison

    • Device-specific recommendations

MCP Prompts

  • analyze-website: Comprehensive Website Analysis

    • Performance, accessibility, SEO, and UX analysis

    • Device type selection (mobile/desktop)

    • Detailed recommendations tailored to device type

    • Complete analysis report with actionable insights

  • get-website-content: Content Extraction

    • Main content extraction from any webpage

    • Clean markdown conversion

    • Removal of navigation, ads, and non-essential elements

    • Preservation of important formatting and structure

  • screenshot-website: Screenshot Capture

    • Visual representation of webpage

    • Full page capture

    • Simple URL-based interface

  • technical-performance-analysis: Technical Performance Analysis

    • Detailed technical analysis of performance bottlenecks

    • Code examples and optimization suggestions

    • Focus area selection (JavaScript, rendering, resources, network)

    • Performance metrics with severity assessment

    • Actionable, code-level recommendations

Installation

You can install the package globally:

npm install -g @bschauer/webtools-mcp-server

Or use it directly with npx:

npx @bschauer/webtools-mcp-server

Quick Start

For Claude Desktop Users

{
  "mcpServers": {
    "webtools": {
      "command": "npx",
      "args": ["-y", "@bschauer/webtools-mcp-server@latest"],
      "env": {
        "ENABLED_TOOLS": "BASIC"
      }
    }
  }
}

This configuration uses only basic tools and reduces token usage by 89%.

For Claude Code Users

# Install with token optimization
claude mcp add webtools-basic --env ENABLED_TOOLS=BASIC -- npx -y @bschauer/webtools-mcp-server@latest

Test Your Installation

Once configured, you can ask Claude:

Token Usage Optimization

By default, all tools are loaded (~10.3k tokens). You can reduce token usage by enabling only the tools you need:

Configuration Options

  1. Environment Variable: ENABLED_TOOLS=<preset|tools>

  2. CLI Argument: --tools=<preset|tools>

Available Presets

Preset

Tools Included

Token Usage

Reduction

Use Case

ALL

All 10 tools

~10.3k tokens

0%

Full functionality (default)

BASIC

gethtml, readpage

~1k tokens

89%

Content extraction only

WEB

gethtml, readpage, screenshot

~1.5k tokens

85%

Web content + visuals

DEBUG

gethtml, readpage, screenshot, debug

~2.5k tokens

76%

Content + debugging

PERFORMANCE

All performance analysis tools

~6k tokens

42%

Performance testing only

FULL_ANALYSIS

All tools except performance test framework

~9k tokens

13%

Complete analysis suite

Individual Tools Available:

  • webtool_gethtml - Raw HTML extraction

  • webtool_readpage - Markdown conversion

  • webtool_screenshot - Screenshot capture

  • webtool_debug - Debug console + network monitoring

  • webtool_lighthouse - Lighthouse audits

  • webtool_performance_trace - Performance tracing

  • webtool_coverage_analysis - Code coverage analysis

  • webtool_web_vitals - Core Web Vitals metrics

  • webtool_network_monitor - Network activity analysis

  • webtool_performance_test - Cross-device performance testing

Examples

# Use only basic tools (90% token reduction)
ENABLED_TOOLS=BASIC npx @bschauer/webtools-mcp-server

# Use performance tools only
npx @bschauer/webtools-mcp-server --tools=PERFORMANCE

# Use web + debugging tools
ENABLED_TOOLS=DEBUG npx @bschauer/webtools-mcp-server

# Use specific individual tools
npx @bschauer/webtools-mcp-server --tools=webtool_gethtml,webtool_readpage,webtool_screenshot

# Show all available options
npx @bschauer/webtools-mcp-server --help

# Use environment variable with any command
export ENABLED_TOOLS=WEB
npx @bschauer/webtools-mcp-server

Claude Desktop Integration

Basic Configuration (All Tools)

{
  "mcpServers": {
    "webtools": {
      "command": "npx",
      "args": ["-y", "@bschauer/webtools-mcp-server@latest"]
    }
  }
}

Token-Optimized Configurations

Basic Tools Only (89% Token Reduction)

{
  "mcpServers": {
    "webtools-basic": {
      "command": "npx",
      "args": ["-y", "@bschauer/webtools-mcp-server@latest"],
      "env": {
        "ENABLED_TOOLS": "BASIC"
      }
    }
  }
}

Web Content + Screenshots

{
  "mcpServers": {
    "webtools-web": {
      "command": "npx",
      "args": ["-y", "@bschauer/webtools-mcp-server@latest"],
      "env": {
        "ENABLED_TOOLS": "WEB"
      }
    }
  }
}

Performance Analysis Only

{
  "mcpServers": {
    "webtools-perf": {
      "command": "npx",
      "args": ["-y", "@bschauer/webtools-mcp-server@latest"],
      "env": {
        "ENABLED_TOOLS": "PERFORMANCE"
      }
    }
  }
}

Custom Tool Selection

{
  "mcpServers": {
    "webtools-custom": {
      "command": "npx",
      "args": ["-y", "@bschauer/webtools-mcp-server@latest"],
      "env": {
        "ENABLED_TOOLS": "webtool_gethtml,webtool_readpage,webtool_screenshot,webtool_debug"
      }
    }
  }
}

Using CLI Arguments (Alternative)

{
  "mcpServers": {
    "webtools": {
      "command": "npx",
      "args": ["-y", "@bschauer/webtools-mcp-server@latest", "--tools=BASIC"]
    }
  }
}

Claude Code Integration

Claude Code provides a simplified command-line interface for adding MCP servers:

Basic Installation (All Tools)

# Install with all tools (default)
claude mcp add webtools -- npx -y @bschauer/webtools-mcp-server@latest

Token-Optimized Installations

# Basic tools only (89% token reduction)
claude mcp add webtools-basic --env ENABLED_TOOLS=BASIC -- npx -y @bschauer/webtools-mcp-server@latest

# Web content + screenshots
claude mcp add webtools-web --env ENABLED_TOOLS=WEB -- npx -y @bschauer/webtools-mcp-server@latest

# Performance analysis only
claude mcp add webtools-perf --env ENABLED_TOOLS=PERFORMANCE -- npx -y @bschauer/webtools-mcp-server@latest

# Debug tools
claude mcp add webtools-debug --env ENABLED_TOOLS=DEBUG -- npx -y @bschauer/webtools-mcp-server@latest

# Custom tool selection
claude mcp add webtools-custom --env ENABLED_TOOLS=webtool_gethtml,webtool_readpage,webtool_screenshot -- npx -y @bschauer/webtools-mcp-server@latest

Using CLI Arguments (Alternative Approach)

# Using --tools parameter instead of environment variable
claude mcp add webtools-basic -- npx -y @bschauer/webtools-mcp-server@latest --tools=BASIC
claude mcp add webtools-perf -- npx -y @bschauer/webtools-mcp-server@latest --tools=PERFORMANCE

Managing Your Installation

# List all MCP servers
claude mcp list

# Get details about the webtools server
claude mcp get webtools-basic

# Remove a server
claude mcp remove webtools-basic

# Check server status in Claude Code
/mcp

Project-Wide Installation (Team Sharing)

# Install for the entire project team
claude mcp add webtools-basic --scope project --env ENABLED_TOOLS=BASIC -- npx -y @bschauer/webtools-mcp-server@latest

# This creates a .mcp.json file in your project root that can be committed to version control

Configuration

Create a configuration file at ~/.mcp/webtools-mcp-server.config.json:

{
  "proxy": {
    "enabled": false,
    "url": "http://your-proxy-server:port",
    "timeout": 10000
  },
  "browser": {
    "ignoreSSLErrors": false,
    "defaultViewport": {
      "width": 1920,
      "height": 1080
    }
  },
  "devices": {
    "mobile": {
      "width": 375,
      "height": 812,
      "deviceScaleFactor": 3,
      "isMobile": true,
      "hasTouch": true,
      "isLandscape": false,
      "userAgent": "Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1"
    },
    "tablet": {
      "width": 768,
      "height": 1024,
      "deviceScaleFactor": 2,
      "isMobile": true,
      "hasTouch": true,
      "isLandscape": false,
      "userAgent": "Mozilla/5.0 (iPad; CPU OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1"
    },
    "desktop": {
      "width": 1920,
      "height": 1080,
      "deviceScaleFactor": 1,
      "isMobile": false,
      "hasTouch": false,
      "isLandscape": true,
      "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
    }
  },
  "networkConditions": {
    "Slow 3G": {
      "downloadThroughput": 500000,
      "uploadThroughput": 300000,
      "latency": 400
    },
    "Fast 3G": {
      "downloadThroughput": 1500000,
      "uploadThroughput": 750000,
      "latency": 300
    },
    "4G": {
      "downloadThroughput": 4000000,
      "uploadThroughput": 2000000,
      "latency": 100
    },
    "WiFi": {
      "downloadThroughput": 10000000,
      "uploadThroughput": 5000000,
      "latency": 20
    },
    "Fiber": {
      "downloadThroughput": 100000000,
      "uploadThroughput": 50000000,
      "latency": 5
    }
  }
}

Environment Variables

You can also configure the server using environment variables:

  • USE_PROXY: Enable proxy support (true/false)

  • PROXY_URL: Proxy server URL

  • PROXY_TIMEOUT: Proxy timeout in milliseconds

  • IGNORE_SSL_ERRORS: Ignore SSL certificate errors by default for all tools (true/false) - useful for development environments like DDEV

Tool Usage Examples

HTML Content Extraction

webtool_gethtml({
  url: "https://example.com",
  useJavaScript: true,
  useProxy: false,
  ignoreSSLErrors: false,
});

Page Reading (Markdown Conversion)

webtool_readpage({
  url: "https://example.com",
  useJavaScript: true,
  useProxy: false,
  selector: "main",
  ignoreSSLErrors: false,
});

Screenshot Capture

webtool_screenshot({
  url: "https://example.com",
  selector: ".content",
  useProxy: false,
  deviceConfig: {
    width: 1920,
    height: 1080,
    deviceScaleFactor: 1,
    isMobile: false,
  },
});

Debug Console

webtool_debug({
  url: "https://example.com",
  captureConsole: true,
  captureNetwork: true,
  captureErrors: true,
  captureLayoutThrashing: true, // Enable layout thrashing detection
  timeoutMs: 15000,
});

// Focus on layout thrashing detection

webtool_debug({
  url: "https://example.com",
  captureConsole: false,
  captureNetwork: false,
  captureErrors: true,
  captureLayoutThrashing: true,
  timeoutMs: 15000,
});

Lighthouse Web Audit

webtool_lighthouse({
  url: "https://example.com",
  categories: ["performance", "accessibility", "best-practices", "seo", "pwa"],
  device: "mobile", // or "desktop"
  ignoreSSLErrors: false,
});

// Run specific category audits only

webtool_lighthouse({
  url: "https://example.com",
  categories: ["performance", "seo"], // Only performance and SEO
  device: "desktop",
});

Advanced Performance Analysis

webtool_performance_trace({
  url: "https://example.com",
  timeoutMs: 15000,
  captureCPUProfile: true,
  captureNetworkActivity: true,
  captureJSProfile: true,
  captureRenderingPerformance: true,
  captureMemoryProfile: true,
  deviceConfig: {
    width: 1920,
    height: 1080,
    deviceScaleFactor: 1,
    isMobile: false,
  },
});

// Focus on specific performance aspects

webtool_performance_trace({
  url: "https://example.com",
  captureRenderingPerformance: true, // Focus on layout and rendering
  captureMemoryProfile: true, // Include memory analysis
  deviceConfig: {
    width: 375,
    height: 812,
    deviceScaleFactor: 3,
    isMobile: true,
  },
});

Network Activity Analysis

webtool_network_monitor({
  url: "https://example.com",
  timeoutMs: 15000,
  waitAfterLoadMs: 2000,
  includeThirdParty: true,
  disableCache: true,
  captureHeaders: true,
  captureTimings: true,
  deviceName: "mobile", // Use predefined device
  networkConditionName: "4G", // Use predefined network condition
});

Code Coverage Analysis

webtool_coverage_analysis({
  url: "https://example.com",
  timeoutMs: 15000,
  waitAfterLoadMs: 2000,
  includeThirdParty: true,
  disableCache: true,
  deviceName: "desktop",
});

Core Web Vitals Analysis

webtool_web_vitals({
  url: "https://example.com",
  timeoutMs: 15000,
  waitAfterLoadMs: 3000,
  interactWithPage: true,
  deviceName: "mobile",
  networkConditionName: "4G",
});

Cross-device and Network Testing

webtool_performance_test({
  url: "https://example.com",
  timeoutMs: 30000,
  devices: ["desktop", "mobile", "tablet"],
  networkConditions: ["WiFi", "4G", "3G"],
  tests: ["web_vitals", "network", "coverage"],
  compareResults: true,
  baselineDevice: "desktop",
  baselineNetwork: "WiFi",
  includeScreenshots: true,
});

Response Format

All tools return responses in the following format:

{
  "content": [
    {
      "type": "text",
      "text": "..." // Markdown formatted report
    }
  ]
}

For screenshots:

{
  "content": [
    {
      "type": "image",
      "data": "...", // Base64 encoded PNG
      "mimeType": "image/png"
    }
  ]
}

For Lighthouse audits:

{
  "content": [
    {
      "type": "text",
      "text": "..." // Markdown formatted report with audit results
    }
  ]
}

Best Practices

  1. Start with basic HTML retrieval before using advanced analysis

  2. Use JavaScript rendering only when necessary (slower but more complete)

  3. Set appropriate timeouts for complex pages

  4. Use selectors to target specific page sections when possible

  5. Enable proxy support only when needed for geo-restricted content

  6. For Lighthouse audits, specify only the categories you need to improve performance

  7. Check errors carefully - they often contain helpful troubleshooting tips

  8. When using device emulation, match real device specifications for accurate results

  9. For large websites, focus on specific pages rather than entire sites

  10. Use the debug tool to understand JavaScript errors before applying fixes

  11. For performance testing, start with the baseline device and network condition

  12. Compare results across different devices and network conditions to identify device-specific issues

  13. Use the performance test framework to identify optimization opportunities for specific scenarios

  14. Focus on Core Web Vitals metrics for the best user experience improvements

  15. Use code coverage analysis to identify unused code and optimize bundle size

Troubleshooting

Common issues and solutions:

Chrome Installation

  • Note: Chrome is now automatically installed via Puppeteer - no additional steps required

  • If you encounter any Chrome-related issues, try reinstalling the package with npm install -g @bschauer/webtools-mcp-server

Connection Problems

  • Issue: Cannot connect to website

  • Solution: Check URL format, website availability, or try with proxy enabled

SSL Certificate Issues

  • Issue: SSL certificate errors with DDEV or local development sites

  • Solution: Set IGNORE_SSL_ERRORS=true environment variable or use ignoreSSLErrors=true parameter for individual tools

  • Note: For production sites, ensure proper SSL certificate configuration instead of bypassing SSL checks

JavaScript Rendering Issues

  • Issue: Page content missing when using JavaScript rendering

  • Solution: Increase timeout, check for navigation errors in debug output

Screenshot Problems

  • Issue: Blank or incomplete screenshots

  • Solution: Ensure selectors are correct, increase viewport size, check debug console

Lighthouse Audit Timeouts

  • Issue: Lighthouse audit times out

  • Solution: Increase timeout setting, reduce categories, try with a faster connection

Proxy Connection Failures

  • Issue: Cannot connect through proxy

  • Solution: Verify proxy URL, check proxy connection timeout, ensure proxy is operational

Layout Thrashing Detection Issues

  • Issue: No layout thrashing events detected

  • Solution: Ensure captureLayoutThrashing is set to true, increase timeoutMs, try with different pages

Performance Test Framework Issues

  • Issue: Performance test framework times out

  • Solution: Reduce the number of devices and network conditions, increase timeout, run tests individually

Network Monitor Issues

  • Issue: Network monitor shows incomplete data

  • Solution: Increase waitAfterLoadMs, ensure captureTimings is set to true, check for CORS issues

Code Coverage Analysis Issues

  • Issue: Code coverage analysis shows no results

  • Solution: Ensure the page loads JavaScript, increase waitAfterLoadMs, check for script loading errors

Security Considerations

  • This tool can access arbitrary websites - use responsibly

  • The proxy feature should be used with caution and in compliance with applicable laws

  • SSL certificate checking should remain enabled unless absolutely necessary

  • Website owners may detect and block automated access

  • Some websites prohibit scraping in their Terms of Service

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

MIT

Author

bschauer

Available Tools

10 tools
webtool_coverage_analysisB

Analyze JavaScript and CSS coverage to identify unused code and optimization opportunities. Uses Chrome DevTools Protocol Coverage API to provide detailed insights into code usage.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL of the webpage to analyze
timeoutMsNoTimeout in milliseconds for the analysis
waitAfterLoadMsNoAdditional time to wait after page load to capture more interactions
includeThirdPartyNoWhether to include third-party scripts and stylesheets in the analysis
useProxyNoWhether to use a proxy for this request
ignoreSSLErrorsNoWhether to ignore SSL certificate errors (use with caution)
disableCacheNoWhether to disable browser cache for the analysis
networkConditionNameNoPredefined network condition to emulate (e.g., 'Slow 3G', 'Fast 3G', '4G', 'WiFi', 'Fiber')
networkConditionNoCustom network condition configuration
deviceNameNoPredefined device to emulate (e.g., 'Pixel 7', 'iPhone 14')
deviceConfigNoCustom device configuration for emulation

TDQS

B3.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 responsibility for behavioral disclosure. While it indicates an analysis (likely read-only), it does not state whether any modifications occur, if authentication is needed, or what side effects (e.g., cache clearing) happen. The assertion 'provides detailed insights' is vague about the nature of the output.

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

Conciseness5/5

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

The description is two sentences, front-loading the core purpose and underlying technology. No redundant information; every word serves a purpose.

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

Completeness2/5

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

Despite 11 parameters including nested objects and no output schema, the description is extremely brief. It does not explain what the output looks like, how results are structured, or how to interpret the 'detailed insights.' This is insufficient for a complex tool with many configuration options.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents all parameters. The description adds no additional meaning beyond the schema, which is acceptable for a high-coverage case. No augmentation of parameter understanding is provided.

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

Purpose5/5

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

The description clearly states that the tool analyzes JavaScript and CSS coverage to identify unused code and optimization opportunities, using the Chrome DevTools Protocol Coverage API. This is a specific verb and resource, and it distinguishes this tool from sibling tools (e.g., performance_test, web_vitals) which focus on different aspects.

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

Usage Guidelines3/5

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

The description mentions using the Coverage API but does not explicitly state when to use this tool versus alternatives like performance_test or web_vitals. It lacks guidance on prerequisites or when not to use it, leaving the agent to infer context from the tool name.

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

webtool_debugB

Debug a webpage by capturing console output, network requests, errors, and layout thrashing with custom device emulation. Includes advanced response size management with pagination, output limits, and compact formatting to stay within MCP token limits.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL of the webpage to debug
captureConsoleNoCapture console.log, warn, error output
captureNetworkNoCapture network requests and responses
captureErrorsNoCapture JavaScript errors and exceptions
captureLayoutThrashingNoCapture layout thrashing events (forced layout/reflow)
timeoutMsNoHow long to collect debug information in milliseconds
useProxyNoWhether to use a proxy for this request
deviceConfigNoCustom device configuration for emulation
maxConsoleEventsNoMaximum number of console events to include in the response
maxNetworkEventsNoMaximum number of network events to include in the response
maxErrorEventsNoMaximum number of error events to include in the response
maxResourceEventsNoMaximum number of resource timing events to include in the response
skipStackTracesNoSkip stack traces in layout thrashing events to reduce response size
compactFormatNoUse compact format for all sections to reduce response size
summarizeOnlyNoInclude only summary and counts without detailed event data
pageNoPage number for paginated results (starts at 1)
pageSizeNoNumber of events per page for paginated results
ignoreSSLErrorsNoWhether to ignore SSL certificate errors (default: true for development convenience)

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided, so the description must fully disclose behavior. It mentions capturing output and token limits but does not disclose potential side effects like webpage loading, auth requirements, or rate limits.

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?

Two sentences efficiently front-load the core purpose and key features without redundancy or fluff.

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

Completeness3/5

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

Given 18 parameters, nested objects, and no output schema, the description provides adequate overview but lacks behavioral and usage details needed for complete agent understanding.

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

Parameters3/5

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

Schema coverage is 100% with detailed parameter descriptions, so the description adds limited additional meaning beyond mentioning pagination and compact formatting.

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

Purpose5/5

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

The description clearly states the tool debugs webpages by capturing console output, network requests, errors, and layout thrashing, and distinguishes itself from sibling tools with its comprehensive debugging focus and advanced response management features.

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 on when to use this tool versus siblings like webtool_network_monitor or webtool_performance_test. The description only mentions what it does, not when to choose it.

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

webtool_gethtmlB

Get the HTML content of a webpage. Automatically handles retries and proxy if needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL of the webpage to fetch
useJavaScriptNoWhether to execute JavaScript (requires Puppeteer)
useProxyNoWhether to use a proxy for this request
ignoreSSLErrorsNoWhether to ignore SSL certificate errors (default: true for development convenience)

TDQS

B3.3/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 full burden. It mentions automatic retries and proxy handling, which is helpful, but fails to disclose failure behavior, rate limits, or any other side effects. The behavioral disclosure is minimal.

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 sentence that is concise and front-loaded, containing all relevant information without unnecessary 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?

With four parameters and no output schema or annotations, the description covers basic function and automatic behaviors like retries and proxy. However, it omits details about the return format and does not address the ignoreSSLErrors default behavior mentioned in the schema.

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

Parameters3/5

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

Schema coverage is 100% with each parameter already described. The description adds no additional meaning beyond what the schema provides, earning a baseline score of 3.

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

Purpose5/5

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

The description clearly states 'Get the HTML content of a webpage' using a specific verb and resource. It mentions additional features like automatic retries and proxy handling, which distinguishes it from sibling tools like webtool_screenshot or webtool_readpage.

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 explicit guidance is provided on when to use this tool versus alternatives such as webtool_readpage or webtool_debug. The description only implies it is for fetching HTML with retries and proxy support, but does not clarify contexts where other tools are more suitable.

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

webtool_lighthouseA

Run a Lighthouse audit on a webpage to generate a comprehensive performance report with detailed resource analysis. The report includes specific file paths, resource sizes, and performance metrics similar to Chrome DevTools. Identifies exact files causing performance issues without offering improvement suggestions.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL of the webpage to audit
categoriesNoCategories to include in the audit
deviceNoDevice to emulatemobile
ignoreSSLErrorsNoWhether to ignore SSL certificate errors (default: true for development convenience)

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries full responsibility. It discloses that the tool generates a report and identifies files without offering suggestions, implying a read-only operation. However, it does not mention performance impact, data retention, or cancellation behavior, which would be expected for a full-featured audit tool.

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

Conciseness5/5

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

The description is two sentences with no redundant information. The first sentence accurately states the action and result; the second adds valuable detail about output precision. Every word earns its place.

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

Completeness4/5

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

Given 4 parameters (all documented in schema), no output schema, and no annotations, the description provides a solid understanding of the tool's output and limitations. It lacks only minor details like typical execution time and error handling, but overall it is sufficient for initial use.

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

Parameters3/5

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

Schema description coverage is 100%, so parameters are already well-documented. The description adds general context about the report output but does not deepen understanding of specific parameters (e.g., why choose 'mobile' vs 'desktop' or which categories matter). Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's purpose: running a Lighthouse audit on a webpage to generate a comprehensive performance report. It specifies the exact output (file paths, resource sizes, metrics) and highlights what the tool does not do (offer improvement suggestions), setting it apart from siblings like webtool_performance_test.

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 explicit guidance on when to use this tool versus alternatives. The description does not mention context, prerequisites, or when not to use. Sibling tools exist (e.g., webtool_performance_test, webtool_web_vitals), but no differentiation criteria are provided.

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

webtool_network_monitorC

Analyze network activity and resource loading performance. Provides detailed insights into network requests, timing, and optimization opportunities.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL of the webpage to analyze
timeoutMsNoTimeout in milliseconds for the analysis
waitAfterLoadMsNoAdditional time to wait after page load to capture more requests
useProxyNoWhether to use a proxy for this request
ignoreSSLErrorsNoWhether to ignore SSL certificate errors (use with caution)
includeThirdPartyNoWhether to include third-party requests in the analysis
disableCacheNoWhether to disable browser cache for the analysis
captureHeadersNoWhether to capture request and response headers
captureContentNoWhether to capture request and response content
captureTimingsNoWhether to capture detailed timing information
filterByTypeNoFilter requests by resource type (e.g., 'document', 'stylesheet', 'script', 'image', 'font', 'media', 'json', 'text')
filterByDomainNoFilter requests by domain (e.g., 'example.com')
sortByNoSort requests by a specific propertystartTime
networkConditionNameNoPredefined network condition to emulate (e.g., 'Slow 3G', 'Fast 3G', '4G', 'WiFi', 'Fiber')
networkConditionNoCustom network condition configuration
deviceNameNoPredefined device to emulate (e.g., 'Pixel 7', 'iPhone 14')
deviceConfigNoCustom device configuration for emulation
maxRequestsNoMaximum number of requests to include in the response (to limit response size)
summarizeOnlyNoWhether to include only summary and recommendations without detailed request data (to reduce response size)
pageNoPage number for paginated results (starts at 1)
pageSizeNoNumber of requests per page for paginated results
includeRecommendationsNoWhether to include optimization recommendations in the output

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description should disclose behavioral traits. It only describes it as an analysis tool with no mention of side effects, required permissions, or whether it modifies state. It implies a read-only operation but does not explicitly confirm safety.

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?

Two sentences, concise, and front-loaded with the main action. However, it lacks structure such as bullet points or sectioning, but is still efficient.

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

Completeness2/5

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

Given 22 parameters, nested objects, and no output schema, the description is insufficient. It does not explain how results are returned, pagination, or output format. For a complex tool, more context is needed.

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

Parameters3/5

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

Schema coverage is 100%, and each parameter has a description in the schema. The tool description adds no extra meaning beyond the schema. Baseline of 3 is appropriate.

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

Purpose4/5

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

The description clearly states it analyzes network activity and resource loading performance. It provides insights into network requests, timing, and optimization. However, it does not differentiate itself from sibling tools like webtool_performance_test or webtool_lighthouse, which also involve performance analysis.

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 on when to use this tool versus alternatives. It does not specify prerequisites, contexts where it is appropriate, or when to avoid using it. Sibling tools are not mentioned or contrasted.

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

webtool_performance_testB

Run performance tests across different devices and network conditions. Compare results and identify device-specific or network-specific issues.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL of the webpage to test
timeoutMsNoTimeout in milliseconds for each test
waitAfterLoadMsNoAdditional time to wait after page load for each test
useProxyNoWhether to use a proxy for this request
ignoreSSLErrorsNoWhether to ignore SSL certificate errors (use with caution)
devicesNoDevices to test on
networkConditionsNoNetwork conditions to test with
testsNoTests to run
compareResultsNoWhether to compare results between different scenarios
baselineDeviceNoDevice to use as baseline for comparisondesktop
baselineNetworkNoNetwork condition to use as baseline for comparisonWiFi
includeScreenshotsNoWhether to include screenshots in the results
runMultipleTimesNoWhether to run each test multiple times to get more accurate results
numberOfRunsNoNumber of runs to perform for each test if runMultipleTimes is true

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only states what the tool does, not side effects, resource consumption, or whether it modifies state. It lacks details on rate limits, auth needs, or destructiveness.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the core purpose. Every sentence adds value, with no extraneous text.

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 14 parameters, no output schema, and no annotations, the description is insufficient. It doesn't explain the comparison logic, return format, or how multiple runs work. A more detailed description is needed for such a complex tool.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description adds no additional meaning beyond the schema; it mentions 'devices' and 'network conditions' generically, but doesn't elaborate on allowed values or usage nuances.

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

Purpose5/5

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

The description clearly states the tool's purpose: running performance tests across multiple devices and network conditions and comparing results. It distinguishes itself from siblings like webtool_lighthouse (Lighthouse audit) and webtool_web_vitals (vitals only) by focusing on cross-device/network comparison.

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

Usage Guidelines3/5

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

The description implies usage for performance testing across devices/networks, but does not explicitly state when to use this tool over alternatives (e.g., webtool_lighthouse or webtool_web_vitals). No guidance on exclusions or prerequisites.

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

webtool_performance_traceA

Perform a detailed performance analysis with specialized modules for layout thrashing, CSS variables impact, JavaScript execution timeline, long tasks breakdown, memory and DOM growth analysis, and resource loading optimization. Provides actionable recommendations for performance improvements.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL of the webpage to analyze
timeoutMsNoTimeout in milliseconds for the analysis
captureCPUProfileNoWhether to capture CPU profile to identify JavaScript bottlenecks
captureNetworkActivityNoWhether to capture detailed network requests and timing
captureJSProfileNoWhether to capture JavaScript execution profile
captureRenderingPerformanceNoWhether to capture rendering performance metrics (layout shifts, layer tree)
captureMemoryProfileNoWhether to capture memory usage profile
useProxyNoWhether to use a proxy for this request
ignoreSSLErrorsNoWhether to ignore SSL certificate errors (use with caution)
analyzeLayoutThrashingNoWhether to analyze layout thrashing patterns
analyzeCssVariablesNoWhether to analyze CSS variables impact
analyzeJsExecutionNoWhether to analyze JavaScript execution and its correlation with layout events
analyzeLongTasksNoWhether to analyze long tasks and their attribution
analyzeMemoryAndDomNoWhether to analyze memory usage and DOM growth
analyzeResourceLoadingNoWhether to analyze resource loading waterfall
longTaskThresholdMsNoThreshold in milliseconds for long tasks detection
layoutThrashingThresholdNoThreshold for layout thrashing detection (number of layout operations)
memoryLeakThresholdKbNoThreshold in KB/s for memory leak detection
detailLevelNoLevel of detail in the analysis outputdetailed
includeRecommendationsNoWhether to include optimization recommendations in the output
focusSelectorNoCSS selector to focus the analysis on specific DOM elements
focusTimeRangeMsNoTime range in milliseconds to focus the analysis (format: 'start-end', e.g., '0-5000')
deviceConfigNoDevice configuration for emulation

TDQS

A3.6/5.0
Behavior3/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 mentions analysis modules and actionable recommendations but does not disclose whether the tool modifies the page (likely read-only from 'trace' in name), potential side effects, or required permissions. The behavioral profile is partially inferred but not explicit.

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

Conciseness4/5

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

The description is a single, moderately long sentence that covers the main modules and value proposition. It is not excessively long but lacks structured breakdown like bullet points or sectioning. It could be more front-loaded with the primary purpose.

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

Completeness3/5

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

Given the complexity (23 parameters, nested objects) and no output schema, the description provides a high-level overview but omits details on output format, pagination, or error handling. It mentions 'actionable recommendations' but does not specify the structure or depth of the analysis results.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description adds an overall context but does not explain individual parameters beyond what the schema already provides. The specialization modules listed in the description correspond directly to boolean parameters already present in the schema.

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

Purpose5/5

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

The description clearly states the tool performs detailed performance analysis and lists specific specialized modules (layout thrashing, CSS variables, etc.). It effectively distinguishes from sibling tools like 'webtool_performance_test' or 'webtool_web_vitals' by focusing on trace-level diagnostics.

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

Usage Guidelines3/5

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

The description gives a clear overview of what the tool does but does not explicitly state when to use this tool versus alternatives like 'webtool_lighthouse' or 'webtool_performance_test'. No when-not-to-use guidance is provided, though the modules imply suitability for in-depth performance debugging.

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

webtool_readpageA

Get the webpage content in Markdown format, including links and images. Handles blocked access automatically.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL of the webpage to fetch
useJavaScriptNoWhether to execute JavaScript (requires Puppeteer)
useProxyNoWhether to use a proxy for this request
selectorNoOptional CSS selector to extract specific content (e.g., 'main', 'article')body
ignoreSSLErrorsNoWhether to ignore SSL certificate errors (default: true for development convenience)

TDQS

A3.7/5.0
Behavior3/5

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

The description discloses the behavioral trait of handling blocked access automatically, which adds value, but does not cover other important behaviors like rate limits, robots.txt compliance, or conversion quality, which are left implicit.

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?

Two sentences, each with specific information: one on output format and one on automatic handling. No redundancy or wasted 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?

Despite full schema coverage, the description lacks details about the Markdown conversion process, error handling, and precisely what 'handles blocked access' means. Adequate but not comprehensive.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description does not add extra parameter-level information beyond what the schema already provides.

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

Purpose5/5

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

The description clearly states the tool retrieves webpage content in Markdown format, including links and images, which distinguishes it from siblings like webtool_gethtml (likely raw HTML) and webtool_screenshot (visual).

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

Usage Guidelines3/5

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

The description implies usage for obtaining Markdown content and mentions automatic handling of blocked access, but does not explicitly state when to use this tool versus alternatives, nor provide when-not scenarios.

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

webtool_screenshotB

Take a screenshot of a webpage or specific element on the page with custom device emulation

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL of the webpage to screenshot
selectorNoOptional CSS selector to screenshot a specific element
useProxyNoWhether to use a proxy for this request
deviceConfigNoCustom device configuration for emulation
ignoreSSLErrorsNoWhether to ignore SSL certificate errors (default: true for development convenience)

TDQS

B3.3/5.0
Behavior3/5

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

Description mentions 'screenshot' and 'custom device emulation' which are key behaviors, but lacks disclosure on potential side effects (e.g., page loading, resource consumption) or idempotency. Since no annotations, description carries full burden; it adds some context but not complete.

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?

Single sentence, 16 words, front-loaded with verb and resource. No wasted words, but could include more details without losing conciseness.

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

Completeness2/5

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

Despite having 5 parameters including a nested object, the description is minimal. No mention of output format (e.g., returns an image/binary), proxy usage, SSL handling, or required permissions. Given no output schema, more detail needed for completeness.

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

Parameters3/5

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

Schema descriptions cover all 5 parameters fully (100% coverage). Description adds no additional meaning beyond the high-level purpose; the mention of 'specific element' echoes the selector parameter already described in schema. Baseline 3 is appropriate.

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

Purpose5/5

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

Description clearly states 'Take a screenshot' with specific target ('webpage or specific element') and custom device emulation. Distinguishes from sibling tools like webtool_readpage which reads content, and webtool_gethtml which gets HTML.

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 on when to use this tool vs alternatives like webtool_readpage or webtool_debug. Does not mention when not to use, prerequisites, or preferred scenarios.

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

webtool_web_vitalsB

Analyze Core Web Vitals metrics (LCP, CLS, FID/INP, TTFB) and identify problematic elements affecting these metrics. Uses Performance Observer API to provide detailed insights into real user experience metrics.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL of the webpage to analyze
timeoutMsNoTimeout in milliseconds for the analysis
waitAfterLoadMsNoAdditional time to wait after page load to capture more metrics
interactWithPageNoWhether to automatically interact with the page to trigger more events
useProxyNoWhether to use a proxy for this request
ignoreSSLErrorsNoWhether to ignore SSL certificate errors (use with caution)
networkConditionNameNoPredefined network condition to emulate (e.g., 'Slow 3G', 'Fast 3G', '4G', 'WiFi', 'Fiber')
networkConditionNoCustom network condition configuration
deviceNameNoPredefined device to emulate (e.g., 'Pixel 7', 'iPhone 14')
deviceConfigNoCustom device configuration for emulation
runMultipleTimesNoWhether to run the analysis multiple times to get more accurate results
numberOfRunsNoNumber of runs to perform if runMultipleTimes is true

TDQS

B3.4/5.0
Behavior3/5

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

No annotations exist, so the description must cover behavioral traits. It mentions using Performance Observer API and providing insights, implying a non-destructive read operation. However, it omits critical details like whether the tool actually loads the URL (likely yes), potential impact on the server, or any rate limits. The description is adequate but could be more explicit about safety.

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?

Two concise sentences deliver the core purpose and method with zero redundancy. The first sentence focuses on actionable output (identify problematic elements), and the second adds technical credibility. Every word serves a purpose.

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?

Without an output schema, the description must clarify return values. It vaguely promises 'detailed insights' but doesn't specify structure (e.g., list of elements with metrics, scores, or suggestions). Given the tool's complexity (12 params, nested objects), this omission leaves agents uncertain how to use results.

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

Parameters3/5

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

Schema coverage is 100%, so the description need not elaborate each parameter. The description adds context by naming the underlying API (Performance Observer) and the goal of identifying problematic elements, which aids understanding. However, it doesn't enhance parameter meaning beyond the schema's already comprehensive descriptions, earning a baseline 3.

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

Purpose5/5

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

The description clearly states the tool analyzes Core Web Vitals metrics and lists specific metrics (LCP, CLS, FID/INP, TTFB), making it distinct from sibling performance tools like webtool_lighthouse which focus on broader audits. The verb 'Analyze' and resource 'Core Web Vitals metrics' are specific and unambiguous.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like webtool_lighthouse or webtool_performance_test. The description implies usage for web vitals analysis but lacks explicit context for selection, such as scenarios requiring element-level identification or non-Lighthouse approaches.

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

TDQS

A3.7/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose, covering different aspects of web analysis: coverage, debugging, HTML retrieval, Lighthouse audit, network, performance testing, performance tracing, reading as markdown, screenshots, and web vitals. Minimal overlap with sufficient differentiation.

Naming Consistency5/5

All tools use the 'webtool_' prefix followed by a descriptive name (e.g., coverage_analysis, debug, lighthouse). The naming pattern is predictable and consistent, making it easy for agents to infer tool functions.

Tool Count5/5

With 10 tools, the server is well-scoped for its domain of web development analysis. Each tool serves a specific need without redundancy, and the count is neither too small nor excessive.

Completeness5/5

The tool set covers a comprehensive range of web debugging and performance analysis tasks, including HTML extraction, screenshots, network monitoring, multiple performance metrics, and tracing. It provides a full lifecycle for analyzing web pages.

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

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI models to perform Google Lighthouse website performance analysis, including Core Web Vitals, accessibility, SEO audits, and actionable optimization recommendations. Provides comprehensive web performance insights through natural language interactions.
    1,354
    3
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides browser automation, AI-powered analysis, visual processing, web scraping, automated test generation, and DevTools analysis capabilities. Supports multiple AI providers (OpenAI, Anthropic, Google, Ollama) for intelligent web interaction and data extraction.
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to control and inspect a live Chrome browser for automated web debugging, performance analysis, and Lighthouse audits. It allows agents to capture screenshots, monitor network requests, and measure Core Web Vitals using plain-English prompts.
    3,288,165
    Apache 2.0

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/misterboe/webtools-mcp-server'

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