Webtools MCP Server
Click on "Deploy 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., "@Webtools MCP Server Analyze the performance of https://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.
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: URLpipe MCP server
Features
Core Tools
webtool_gethtml: Raw HTML content extractionJavaScript rendering support
Proxy support
Automatic retries
webtool_readpage: Markdown conversionClean content extraction
Link preservation
Image handling
Custom selector support
webtool_screenshot: Screenshot captureFull page screenshots
Element-specific capture
Device emulation
Custom viewport settings
webtool_debug: Debug consoleConsole output capture
Network request monitoring
Error tracking
Performance metrics
Layout thrashing detection
webtool_lighthouse: Comprehensive Web AuditPerformance analysis
Accessibility testing
SEO evaluation
Best practices review
Progressive Web App assessment
Device emulation support
Performance Analysis Tools
webtool_performance_trace: Advanced Performance AnalysisLayout 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 AnalysisDetailed request and response analysis
Resource timing information
Waterfall visualization data
Optimization recommendations
Third-party request analysis
Cache analysis
webtool_coverage_analysis: Code Coverage AnalysisJavaScript and CSS coverage analysis
Unused code identification
Code splitting recommendations
Third-party code analysis
webtool_web_vitals: Core Web Vitals AnalysisLCP (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 TestingMulti-device testing
Network condition simulation
Comparative analysis
Baseline comparison
Device-specific recommendations
MCP Prompts
analyze-website: Comprehensive Website AnalysisPerformance, 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 ExtractionMain 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 CaptureVisual representation of webpage
Full page capture
Simple URL-based interface
technical-performance-analysis: Technical Performance AnalysisDetailed 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-serverOr use it directly with npx:
npx @bschauer/webtools-mcp-serverQuick 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@latestTest Your Installation
Once configured, you can ask Claude:
"Please extract the main content from https://example.com"
"Take a screenshot of https://google.com"
"Analyze the performance of https://news.ycombinator.com"
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
Environment Variable:
ENABLED_TOOLS=<preset|tools>CLI Argument:
--tools=<preset|tools>
Available Presets
Preset | Tools Included | Token Usage | Reduction | Use Case |
| All 10 tools | ~10.3k tokens | 0% | Full functionality (default) |
|
| ~1k tokens | 89% | Content extraction only |
|
| ~1.5k tokens | 85% | Web content + visuals |
|
| ~2.5k tokens | 76% | Content + debugging |
| All performance analysis tools | ~6k tokens | 42% | Performance testing only |
| All tools except performance test framework | ~9k tokens | 13% | Complete analysis suite |
Individual Tools Available:
webtool_gethtml- Raw HTML extractionwebtool_readpage- Markdown conversionwebtool_screenshot- Screenshot capturewebtool_debug- Debug console + network monitoringwebtool_lighthouse- Lighthouse auditswebtool_performance_trace- Performance tracingwebtool_coverage_analysis- Code coverage analysiswebtool_web_vitals- Core Web Vitals metricswebtool_network_monitor- Network activity analysiswebtool_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-serverClaude 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@latestToken-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@latestUsing 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=PERFORMANCEManaging 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
/mcpProject-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 controlConfiguration
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 URLPROXY_TIMEOUT: Proxy timeout in millisecondsIGNORE_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
Start with basic HTML retrieval before using advanced analysis
Use JavaScript rendering only when necessary (slower but more complete)
Set appropriate timeouts for complex pages
Use selectors to target specific page sections when possible
Enable proxy support only when needed for geo-restricted content
For Lighthouse audits, specify only the categories you need to improve performance
Check errors carefully - they often contain helpful troubleshooting tips
When using device emulation, match real device specifications for accurate results
For large websites, focus on specific pages rather than entire sites
Use the debug tool to understand JavaScript errors before applying fixes
For performance testing, start with the baseline device and network condition
Compare results across different devices and network conditions to identify device-specific issues
Use the performance test framework to identify optimization opportunities for specific scenarios
Focus on Core Web Vitals metrics for the best user experience improvements
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=trueenvironment variable or useignoreSSLErrors=trueparameter for individual toolsNote: 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 toolswebtool_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.
Inputs: url (required), timeoutMs, waitAfterLoadMs, includeThirdParty, +7 more.
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.
Inputs: url (required), captureConsole, captureNetwork, captureErrors, +14 more.
webtool_gethtmlB
Get the HTML content of a webpage. Automatically handles retries and proxy if needed.
Inputs: url (required), useJavaScript, useProxy, ignoreSSLErrors.
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.
Inputs: url (required), categories, device, ignoreSSLErrors.
webtool_network_monitorC
Analyze network activity and resource loading performance. Provides detailed insights into network requests, timing, and optimization opportunities.
Inputs: url (required), timeoutMs, waitAfterLoadMs, useProxy, +18 more.
webtool_performance_testB
Run performance tests across different devices and network conditions. Compare results and identify device-specific or network-specific issues.
Inputs: url (required), timeoutMs, waitAfterLoadMs, useProxy, +10 more.
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.
Inputs: url (required), timeoutMs, captureCPUProfile, captureNetworkActivity, +19 more.
webtool_readpageA
Get the webpage content in Markdown format, including links and images. Handles blocked access automatically.
Inputs: url (required), useJavaScript, useProxy, selector, +1 more.
webtool_screenshotB
Take a screenshot of a webpage or specific element on the page with custom device emulation
Inputs: url (required), selector, useProxy, deviceConfig, +1 more.
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.
Inputs: url (required), timeoutMs, waitAfterLoadMs, interactWithPage, +8 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 10 tools
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.
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.
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.
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
Related MCP Connectors
Agent tools: clean web screenshots/PDFs, PDF & image OCR to Markdown, PageSpeed audits, email checks
A real browser for your agent: screenshots, page checks, Markdown and PDFs.
Web tools for AI agents: URL to clean Markdown, site crawl, screenshots, PDF/Office to text, OCR.
Screenshot any URL/HTML as PNG/JPEG/WebP, or read it as clean Markdown/text for LLMs.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables 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.2,405,354 npmApache 2.0

URLpipe MCP serverofficial
AlicenseNot gradedqualityBmaintenanceGives AI agents a hosted browser that renders JavaScript, returning Markdown, screenshots, metadata, console errors, and Lighthouse audits for any URL.MIT- FlicenseNot gradedqualityAmaintenanceEnables AI agents to browse and interact with web pages through a token-efficient, structured page representation — orientation summaries, targeted element queries, and full detail only on request — instead of raw accessibility-tree dumps. Supports navigation, interaction, forms, screenshots, console and network monitoring, session/tab management, and browser-based development auditing.4 npm-
- AlicenseNot gradedqualityNot gradedmaintenanceEnables clients to read web pages and PDFs as markdown, capture screenshots, search the web and academic sources, rerank/deduplicate content, and extract PDF elements. Supports API-key access, tool filtering, and response token limits.Apache 2.0