Skip to main content
Glama

Webby MCP Server

Webby - Comprehensive Website Validator MCP Server

A Model Context Protocol (MCP) server that provides comprehensive website testing across performance, accessibility, SEO, and security dimensions.

Features

šŸš€ Performance Testing

  • WebPageTest āœ… - Real browser testing via Playwright automation (300 tests/month free, no API key)

  • Google PageSpeed Insights āœ… - Core Web Vitals and Google ranking signals (25K API calls/day free)

  • GTmetrix āœ… - Lighthouse + custom metrics with historical tracking (requires API key)

♿ Accessibility Testing

  • Axe DevTools āœ… - Fast WCAG scans via Playwright + axe-core (free, open-source)

  • WAVE āœ… - WCAG compliance and contrast analysis (requires API key)

šŸ” SEO Testing

  • PageSpeed Insights SEO āœ… - Uses Lighthouse SEO (free, comprehensive)

šŸ”’ Security Testing

  • Mozilla Observatory āœ… - HTTP security headers analysis (CSP, HSTS) - Free API, 1 scan/min

  • SSL Labs āœ… - Comprehensive SSL/TLS certificate testing - Free API (requires email)

Installation

cd ~/mcp-servers/servers/src/webby npm install npm run build

MCP Tools (11 Total)

Performance Tools (3)

validate_performance_pagespeed

{ url: string, strategy?: 'mobile' | 'desktop', // default: mobile apiKey?: string // optional, for higher quota } // Returns: Performance score, Core Web Vitals, metrics

validate_performance_webpagetest ✨ NEW

{ url: string, location?: string, // e.g., 'Dulles:Chrome' runs?: number, // default: 1 waitForResults?: boolean, // default: false (returns test ID immediately) timeout?: number // default: 300000 (5 min) } // Returns: Test ID + results URL immediately OR full results if waitForResults=true // Metrics: Load Time, FCP, LCP, Speed Index, TTI, TBT, CLS, Performance Grade

validate_performance_gtmetrix

{ url: string, apiKey: string, // required location?: string, // e.g., 'vancouver-canada' browser?: string // e.g., 'chrome' } // Returns: Lighthouse score, PageSpeed score, load time, page size

Accessibility Tools (2)

validate_accessibility_axe

{ url: string, wcagLevel?: string // wcag2a, wcag2aa, wcag2aaa, wcag21aa, wcag22aa } // Returns: Violations by severity (critical, serious, moderate, minor), passes, incomplete

validate_accessibility_wave

{ url: string, apiKey: string, // required reporttype?: 1 | 2 | 3 | 4 // detail level (default: 2) } // Returns: Errors, contrast errors, alerts, WAVE report URL, credits remaining

Security Tools (2)

validate_security_mozilla_observatory

{ url: string, forceRescan?: boolean // default: false } // Returns: Grade (A+ to F), score, tests passed/failed, details URL

validate_security_ssl_labs

{ url: string, email: string, // required by API maxAge?: number, // cached report age in hours startNew?: boolean, // force new assessment waitForComplete?: boolean, // wait for completion (can take 2-5 min) maxWaitMinutes?: number // default: 5 } // Returns: Grade (A+ to F), endpoint details, protocol info, status

Category Runners (4)

validate_all_performance

{ url: string, pagespeedApiKey?: string, gtmetrixApiKey?: string, webpagetestEnabled?: boolean, // enable browser automation webpagetestWaitForResults?: boolean // wait for WPT completion } // Returns: Results from PageSpeed + optionally WebPageTest + optionally GTmetrix

validate_all_accessibility

{ url: string, waveApiKey?: string, // optional wcagLevel?: string // for Axe } // Returns: Results from Axe + optionally WAVE

validate_all_seo

{ url: string } // Returns: SEO analysis from PageSpeed Insights (Lighthouse SEO)

validate_all_security

{ url: string, email: string, // for SSL Labs waitForSSL?: boolean // wait for SSL Labs completion } // Returns: Results from Mozilla Observatory + SSL Labs

Master Runner (1)

validate_comprehensive

{ url: string, email: string, // required for SSL Labs categories?: string[], // ['performance', 'accessibility', 'seo', 'security'] pagespeedApiKey?: string, gtmetrixApiKey?: string, waveApiKey?: string, wcagLevel?: string, waitForSSL?: boolean } // Returns: Complete analysis across all selected categories with overall health score

Response Format

{ "tool": "webpagetest", "success": true, "url": "https://example.com", "test_id": "250107_AiDcA4_ABC", "results_url": "https://www.webpagetest.org/result/250107_AiDcA4_ABC/", "status": "complete", "summary": { "loadTime": 2500, "firstContentfulPaint": 1200, "speedIndex": 2300, "largestContentfulPaint": 2100, "timeToInteractive": 3500, "totalBlockingTime": 250, "cumulativeLayoutShift": 0.05 }, "performance_grade": "A", "security_grade": "A+" }

Implementation Status

āœ… Fully Implemented (9 tools)

  • validate_performance_pagespeed - Google PageSpeed Insights API

  • validate_performance_webpagetest - Playwright browser automation ✨

  • validate_performance_gtmetrix - GTmetrix API

  • validate_accessibility_axe - Playwright + axe-core

  • validate_accessibility_wave - WAVE API

  • validate_security_mozilla_observatory - Mozilla Observatory API

  • validate_security_ssl_labs - SSL Labs API with polling

  • validate_all_* - All 4 category orchestrators

  • validate_comprehensive - Master orchestrator

āœ… All Tools Functional

No placeholders - all 11 tools are fully implemented and working!

API Quotas & Limits

Tool

Free Limit

API Key Required

Implementation

Mozilla Observatory

1 scan/min per domain

No

āœ… Direct API

SSL Labs

Unlimited (rate limited)

Email only

āœ… Direct API

PageSpeed Insights

25,000/day

Optional (free)

āœ… Direct API

WebPageTest

300/month

No

āœ…

Browser automation

GTmetrix

Limited credits

Yes (free tier)

āœ… Direct API

Axe

Unlimited

No

āœ…

Browser automation

WAVE

Varies by plan

Yes (paid)

āœ… Direct API

Browser Automation

WebPageTest and Axe use Playwright for headless browser automation:

  • Singleton browser instance - Reused across tests for efficiency

  • Configurable timeouts - Default 5 minutes for WebPageTest, 1 minute for Axe

  • Graceful cleanup - Browser closed on MCP server shutdown

  • No API keys needed - Free access via web UI automation

Project Structure

webby/ ā”œā”€ā”€ src/ │ ā”œā”€ā”€ performance/ │ │ ā”œā”€ā”€ pagespeed.ts āœ… Google API │ │ ā”œā”€ā”€ webpagetest.ts āœ… Playwright automation │ │ └── gtmetrix.ts āœ… GTmetrix API │ ā”œā”€ā”€ accessibility/ │ │ ā”œā”€ā”€ axe.ts āœ… Playwright + axe-core │ │ └── wave.ts āœ… WAVE API │ ā”œā”€ā”€ security/ │ │ ā”œā”€ā”€ mozilla-observatory.ts āœ… Mozilla API │ │ └── ssl-labs.ts āœ… SSL Labs API + polling │ ā”œā”€ā”€ shared/ │ │ └── browser-utils.ts āœ… Playwright utilities │ └── orchestrator/ │ └── run-all.ts āœ… All orchestrators ā”œā”€ā”€ dist/ # Compiled JavaScript ā”œā”€ā”€ index.ts # Main MCP server entry ā”œā”€ā”€ package.json └── README.md

Usage Examples

Quick WebPageTest (instant response)

validate_performance_webpagetest("https://example.com") // Returns test ID immediately, check results later at provided URL

Complete WebPageTest (wait for results)

validate_performance_webpagetest("https://example.com", { waitForResults: true, timeout: 300000 // 5 minutes }) // Waits for test completion, returns full metrics

Run all performance tests

validate_all_performance("https://example.com", { webpagetestEnabled: true, // Enable browser automation webpagetestWaitForResults: false // Get test ID instantly }) // Returns: PageSpeed + WebPageTest results

Comprehensive validation

validate_comprehensive("https://example.com", { email: "your@email.com", // For SSL Labs categories: ["performance", "security"], webpagetestEnabled: true }) // Returns: Full analysis with overall health score

License

MIT

Deploy Server
-
security - not tested
A
license - permissive license
-
quality - not tested

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Provides comprehensive website validation across performance, accessibility, SEO, and security dimensions using multiple testing services including WebPageTest, Google PageSpeed Insights, Axe DevTools, Mozilla Observatory, and SSL Labs. Enables automated website health assessments through browser automation and API integrations.

  1. Features
    1. šŸš€ Performance Testing
    2. ♿ Accessibility Testing
    3. šŸ” SEO Testing
    4. šŸ”’ Security Testing
  2. Installation
    1. MCP Tools (11 Total)
      1. Performance Tools (3)
      2. Accessibility Tools (2)
      3. Security Tools (2)
      4. Category Runners (4)
      5. Master Runner (1)
    2. Response Format
      1. Implementation Status
        1. āœ… Fully Implemented (9 tools)
        2. āœ… All Tools Functional
      2. API Quotas & Limits
        1. Browser Automation
          1. Project Structure
            1. Usage Examples
              1. Quick WebPageTest (instant response)
              2. Complete WebPageTest (wait for results)
              3. Run all performance tests
              4. Comprehensive validation
            2. License

              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/cordlesssteve/webby-mcp'

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