UNPKG

@danielsogl/lighthouse-mcp

Version:

A comprehensive Model Context Protocol (MCP) server that provides web performance auditing, accessibility testing, SEO analysis, security assessment, and Core Web Vitals monitoring using Google Lighthouse. Enables LLMs and AI agents to perform detailed we

55 lines (54 loc) 2.21 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getAccessibilityScore = getAccessibilityScore; exports.getSeoAnalysis = getSeoAnalysis; exports.checkPwaReadiness = checkPwaReadiness; const lighthouse_core_1 = require("./lighthouse-core"); // Helper function to get accessibility score and details async function getAccessibilityScore(url, device = "desktop", includeDetails = false) { const result = await (0, lighthouse_core_1.runLighthouseAudit)(url, ["accessibility"], device); const categoryData = result.categories.accessibility; const baseData = { url: result.url, device: result.device, accessibilityScore: categoryData?.score || 0, fetchTime: result.fetchTime, }; if (includeDetails) { const { audits } = await (0, lighthouse_core_1.getDetailedAuditResults)(url, "accessibility", device); return { ...baseData, audits }; } return baseData; } // Helper function to get SEO analysis async function getSeoAnalysis(url, device = "desktop", includeDetails = false) { const result = await (0, lighthouse_core_1.runLighthouseAudit)(url, ["seo"], device); const categoryData = result.categories.seo; const baseData = { url: result.url, device: result.device, seoScore: categoryData?.score || 0, fetchTime: result.fetchTime, }; if (includeDetails) { const { audits } = await (0, lighthouse_core_1.getDetailedAuditResults)(url, "seo", device); return { ...baseData, audits }; } return baseData; } // Helper function to check PWA readiness async function checkPwaReadiness(url, device = "desktop", includeDetails = false) { const result = await (0, lighthouse_core_1.runLighthouseAudit)(url, ["pwa"], device); const categoryData = result.categories.pwa; const baseData = { url: result.url, device: result.device, pwaScore: categoryData?.score || 0, fetchTime: result.fetchTime, }; if (includeDetails) { const { audits } = await (0, lighthouse_core_1.getDetailedAuditResults)(url, "pwa", device); return { ...baseData, audits }; } return baseData; }