README.mdโข11.7 kB
# Lighthouse MCP (Model Context Protocol)
[](https://github.com/mizchi/lighthouse-mcp/actions/workflows/ci.yml)
[](https://opensource.org/licenses/MIT)
[](https://nodejs.org/)
A comprehensive web application performance analysis toolset integrating Google Lighthouse with Model Context Protocol (MCP), providing structured analysis capabilities accessible to AI assistants and automation tools.
## ๐ Overview
This project provides Google Lighthouse's powerful analysis capabilities through MCP (Model Context Protocol), enabling AI assistants to automatically detect, diagnose, and suggest improvements for website performance issues.
### Key Features
- **๐๏ธ Three-Layer Architecture**: Clear separation of concerns with Collection (L1) โ Analysis (L2) โ Intelligence (L3)
- **๐ Comprehensive Performance Analysis**: Detailed analysis of all metrics including Core Web Vitals
- **๐ฏ Advanced Problem Detection**: Automatic identification and prioritization of performance issues
- **๐ฐ Performance Budget Management**: Target tracking and violation detection
- **๐ Pattern Recognition**: Identification of common issues across multiple sites
- **๐ค MCP Integration**: Standardized interface for AI assistants and automation tools
- **โ
Complete Test Coverage**: Quality assurance through unit, integration, and E2E tests
## ๐ Quick Start
### Installation
```bash
# Global installation
npm install -g lighthouse-mcp
# Project installation
npm install lighthouse-mcp
# Development setup (pnpm recommended)
git clone https://github.com/mizchi/lighthouse-mcp.git
cd lighthouse-mcp
pnpm install
```
### Basic Usage
```bash
# Analyze a website
lhmcp https://example.com
# Start as MCP server
lhmcp --mcp
# Detailed analysis (critical chains + unused code)
lhmcp https://example.com --chains --unused --device desktop
```
## ๐๏ธ Architecture
### Three-Layer Design
```
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ L3 - Intelligence Layer โ
โ (AI insights, strategy, recommendations)โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ L2 - Analysis Layer โ
โ (Quantitative analysis, pattern detection)โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ L1 - Collection Layer โ
โ (Lighthouse execution, data collection) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
```
#### L1 - Collection Layer
Foundation layer that directly executes Lighthouse and collects raw data:
- **`l1_collect_single`**: Execute Lighthouse analysis on a single URL
- **`l1_collect_multi`**: Parallel analysis of multiple URLs
- **`l1_collect_comparative`**: Collect data for comparative analysis
- **`l1_get_report`**: Retrieve saved reports
- **`l1_list_reports`**: List available reports
#### L2 - Analysis Layer
Analyzes collected data and provides structured insights:
- **`l2_deep_analysis`**: Comprehensive performance problem detection
- **`l2_critical_chain`**: Critical request chain analysis
- **`l2_critical_chain_report`**: Detailed critical chain report generation
- **`l2_unused_code`**: Detect and quantify unused JavaScript/CSS
- **`l2_third_party_impact`**: Measure third-party script impact
- **`l2_progressive_third_party`**: Progressive third-party blocking analysis
- **`l2_lcp_chain_analysis`**: LCP element critical path analysis
- **`l2_score_analysis`**: Systematic score and improvement analysis
- **`l2_weighted_issues`**: Priority ranking through weighted analysis
- **`l2_patterns`**: Performance pattern detection
#### L3 - Intelligence Layer
Provides advanced interpretation and strategic recommendations:
- **`l3_action_plan_generator`**: Generate actionable improvement plans
- **`l3_performance_budget`**: Performance budget management and violation detection
- **`l3_pattern_insights`**: Pattern insights from multiple analysis results
## ๐ง Available Tools
### Primary Analysis Tools
| Tool Name | Detectable Issues | Primary Use Case |
|-----------|------------------|------------------|
| `l2_deep_analysis` | LCP delays, CLS issues, TBT increase, unused resources | Comprehensive problem diagnosis |
| `l2_critical_chain` | Render-blocking resources, request chains | Load order optimization |
| `l2_unused_code` | Unused CSS/JS, dead code | Bundle size reduction |
| `l2_third_party_impact` | Third-party impact, ad/analytics load | External dependency optimization |
| `l2_lcp_chain_analysis` | LCP bottlenecks, image optimization opportunities | LCP improvement strategy |
| `l3_action_plan_generator` | Prioritized actions, implementation guide | Improvement planning |
### Problem Detection Capabilities
This toolset can automatically detect:
- **Core Web Vitals**
- LCP > 4s delay detection and root cause analysis
- CLS > 0.25 visual instability
- FID/INP > 300ms responsiveness issues
- **Resource Optimization**
- Unused CSS/JavaScript (up to 90% reduction possible)
- Render-blocking resources
- Inefficient caching strategies
- **Third-Party Impact**
- Google Analytics, Facebook SDK impact measurement
- Ad network load analysis
- Progressive blocking impact assessment
## ๐ป Programmatic Usage
### TypeScript/JavaScript
```typescript
import {
executeL1Collect,
executeL2DeepAnalysis,
executeL3ActionPlanGenerator
} from 'lighthouse-mcp';
// 1. Data collection
const collectResult = await executeL1Collect({
url: 'https://example.com',
device: 'mobile',
categories: ['performance']
});
// 2. Deep analysis
const analysis = await executeL2DeepAnalysis({
reportId: collectResult.reportId,
includeChains: true,
includeUnusedCode: true
});
// 3. Generate action plan
const actionPlan = await executeL3ActionPlanGenerator({
reportId: collectResult.reportId,
includeTools: ['deep', 'unused', 'weighted']
});
console.log('Detected issues:', analysis.analysis.problems);
console.log('Recommended actions:', actionPlan.actionPlan);
```
### MCP Usage
```javascript
// Call tools from MCP client
const result = await client.callTool('l2_deep_analysis', {
url: 'https://example.com',
includeChains: true
});
```
## ๐งช Testing
The project includes a comprehensive test suite:
```bash
# Run all tests
pnpm test
# Unit tests only
pnpm test:unit
# Integration tests only
pnpm test:integration
# E2E tests (actual Lighthouse execution)
pnpm test:e2e
# With coverage report
pnpm test:coverage
```
### Test Fixtures
HTML files in `test/fixtures/problem-cases/` reproduce actual problems:
- `slow-lcp.html` - LCP delay detection test
- `high-cls.html` - CLS problem detection test
- `third-party-heavy.html` - Third-party impact test
- `unused-code-heavy.html` - Unused code detection test
- `cpu-intensive-dom-css.html` - High CPU load DOM/CSS test
## ๐ CI/CD
Automated CI/CD pipeline with GitHub Actions:
```yaml
# .github/workflows/ci.yml
- Lint: Code quality checks
- TypeCheck: Type safety verification
- Test: Compatibility testing on Node.js 18/20/22
- Build: Production build
- Integration: Integration tests
- Lighthouse Test: Actual Lighthouse execution tests
```
## ๐ Project Structure
```
lighthouse-mcp/
โโโ src/
โ โโโ analyzers/ # Analysis modules
โ โ โโโ criticalChain.ts # Critical chain analysis
โ โ โโโ unusedCode.ts # Unused code detection
โ โ โโโ thirdParty.ts # Third-party impact analysis
โ โ โโโ deepAnalysis.ts # Comprehensive analysis
โ โ โโโ ...
โ โโโ core/ # Core functionality
โ โ โโโ lighthouse.ts # Lighthouse execution
โ โ โโโ browserPool.ts # Browser management
โ โ โโโ database.ts # SQLite storage
โ โ โโโ metrics.ts # Metrics extraction
โ โโโ tools/ # MCP tool implementations
โ โ โโโ l1-*.ts # L1: Collection layer
โ โ โโโ l2-*.ts # L2: Analysis layer
โ โ โโโ l3-*.ts # L3: Intelligence layer
โ โ โโโ utils/ # Utilities
โ โโโ types/ # TypeScript type definitions
โ โโโ cli.ts # CLI entry point
โโโ test/ # Test files
โ โโโ unit/ # Unit tests
โ โโโ integration/ # Integration tests
โ โโโ e2e/ # E2E tests
โ โโโ fixtures/ # Test data
โโโ docs/ # Documentation
โโโ .github/workflows/ # CI/CD configuration
โโโ CLAUDE.md # Architecture guide
```
## ๐ Documentation
- [Analysis Capabilities](./docs/analysis-capabilities.md) - Detailed analysis capabilities of each tool
- [Problem-Tool Matrix](./docs/problem-tool-matrix.md) - Guide for selecting appropriate tools by problem
- [Tool Layers](./docs/tool-layers.md) - Detailed L1/L2/L3 architecture
- [MCP Tools Catalog](./docs/MCP-TOOLS-CATALOG.md) - Complete tool catalog
- [CLAUDE.md](./CLAUDE.md) - Developer architecture guide
## ๐ ๏ธ Development
### Setup
```bash
# Clone repository
git clone https://github.com/mizchi/lighthouse-mcp.git
cd lighthouse-mcp
# Install dependencies (pnpm recommended)
pnpm install
# Build
pnpm build
# Start development server
pnpm dev
```
### Development Commands
```bash
# TypeScript compilation
pnpm typecheck
# Run linter
pnpm lint
# Watch mode for tests
pnpm test:watch
# CLI development execution
pnpm cli -- https://example.com
```
## ๐ Environment Variables
```bash
# Optional: Custom user data directory
LIGHTHOUSE_USER_DATA_DIR=.lhdata/custom
# Optional: Debug mode
DEBUG=lighthouse:*
# CI environment flag
CI=true
```
## ๐ Performance Improvement Results
Typical improvements achieved using this toolset:
- **LCP Improvement**: 8.5s โ 2.1s (75% reduction)
- **Unused Code Reduction**: 840KB โ 120KB (85% reduction)
- **Third-Party Impact**: TBT 1200ms โ 300ms (75% reduction)
- **Performance Score**: 35 โ 92 points
## ๐ค Contributing
Pull requests are welcome! Please follow these guidelines:
1. Create an issue to propose features or fixes
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Add tests (maintain 90%+ coverage)
4. Pass type checking and linting (`pnpm typecheck && pnpm lint`)
5. Create a pull request
## ๐ License
MIT License - See [LICENSE](LICENSE) file for details
## ๐ฅ Author
- mizchi ([@mizchi](https://github.com/mizchi))
## ๐ Acknowledgments
- Google Lighthouse Team
- Puppeteer Developers
- MCP (Model Context Protocol) Specification Contributors
- All Contributors
---
**Note**: This project is actively under development. Features and APIs may change.