@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
JavaScript
;
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;
}