mcpField
L
Lighthouse MCP Server

Lighthouse MCP Server

ローカル
codingrules.ai開発ツール732 日前に更新

Lighthouse MCP Server について

Lighthouse MCP Server は Google Lighthouse を用いて監査を行う MCP サーバーです。LLM や AI エージェントから、パフォーマンス、アクセシビリティ、SEO、セキュリティの評価を行えます。13 種類以上のツールを備え、各ツールは outputSchema を宣言して構造化データを返します。

主な機能

  1. 01Google Lighthouse による包括的な監査
  2. 02Core Web Vitals の指標としきい値チェック
  3. 03アクセシビリティ、SEO、セキュリティ分析
  4. 04節流設定を含むモバイルとデスクトップの比較
  5. 05パフォーマンスバジェットの検証
  6. 06全ツールの構造化出力

活用シーン

  1. 01AI エージェントによるページ読み込み性能の評価
  2. 02サイトのアクセシビリティと SEO 課題の確認
  3. 03リリース前のデバイス別パフォーマンス比較

MCP 対応

このプロジェクトは MCP サーバーとして、監査・分析・セキュリティチェックのツールを MCP クライアントに提供します。Lighthouse に関する参照リソースとプロンプトも含みます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"lighthouse": {
"command": "npx",
"args": [
"-y",
"@danielsogl/lighthouse-mcp"
]
}
}
}
起動コマンドnpx -y @danielsogl/lighthouse-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@danielsogl/lighthouse-mcp

ツール

11

掲載時のツール一覧 · 3 週間前に更新

パラメーター型必須説明
urlstringはい監査する URL
categoriesarrayいいえ
deviceenumいいえエミュレートするデバイス(デフォルト:desktop)desktop | mobile
throttlingbooleanいいえ監査時にスロットリングするかどうか(デフォルト:false)

詳細

Lighthouse MCP Server

NPM Version License: MIT Node Version CI Coverage Sponsor

Google Lighthouse を使用した包括的なウェブパフォーマンス監査および分析機能を提供する Model Context Protocol(MCP)サーバーです。このサーバーにより、LLM や AI エージェントは、ウェブサイトのパフォーマンス評価、アクセシビリティ監査、SEO 分析、セキュリティチェック、Core Web Vitals の監視を詳細に実施できます。

Lighthouse MCP server

🌟 主な機能

  • 🚀 パフォーマンス分析:Core Web Vitals、パフォーマンススコア、最適化の推奨事項を含む Lighthouse の完全な監査
  • ♿ アクセシビリティ監査:WCAG 準拠の確認とアクセシビリティスコアの分析
  • 🔍 SEO 分析:検索エンジン最適化の監査とベストプラクティスの推奨事項
  • 🔒 セキュリティ評価:HTTPS、CSP、セキュリティ脆弱性のスキャン
  • 📊 リソース分析:JavaScript、CSS、画像、フォントの最適化機会
  • 📱 モバイルとデスクトップの比較:スロットリングオプションを使用したデバイス間の比較分析
  • ⚡ Core Web Vitals:しきい値の確認を含む LCP、INP、CLS の監視
  • 🎯 パフォーマンス予算:カスタムのパフォーマンスしきい値と予算の監視
  • 🤖 エージェントによるブラウジング:AI エージェントにページがどれだけ適切に対応しているかを調べる Lighthouse 13 の監査(WebMCP ツール、エージェントのアクセシビリティツリー、llms.txt)
  • 🧩 構造化出力:すべてのツールが outputSchema を宣言し、検証済みの structuredContent を返すため、クライアントは解析が必要な JSON 文字列ではなく、型付きデータを取得できます
  • 📚 参考リソース:ウェブパフォーマンス、アクセシビリティ、SEO、セキュリティに関するガイドラインとベストプラクティスを内蔵

🛠️ 要件

  • Node.js 22.0.0 以降
  • Chrome/Chromium ブラウザー(Lighthouse が自動的に管理します)
  • VS Code、Cursor、Windsurf、Claude Desktop、またはその他の MCP クライアント

🚀 はじめに

以下の設定のいずれかを使用して、お好みのクライアントに Lighthouse MCP サーバーをインストールしてください。

{
  "mcpServers": {
    "lighthouse": {
      "command": "npx",
      "args": ["@danielsogl/lighthouse-mcp@latest"]
    }
  }
}
Chrome の永続プロファイル(ログインセッション)

認証済みセッションが必要な場合は、永続 Chrome プロファイルを使用して起動し、ブラウザーを画面表示モードで実行してください。

{
  "mcpServers": {
    "lighthouse": {
      "command": "npx",
      "args": [
        "@danielsogl/lighthouse-mcp@latest",
        "--profile-path",
        "<profile-path>",
        "--no-headless"
      ]
    }
  }
}

--chrome-flag を使って、追加の Chrome フラグを渡せます。たとえば --chrome-flag=--disable-gpu です。 フラグの値が -- で始まり、既知のオプション名と一致する場合は、トップレベルのオプションとして解析されないように、--chrome-flag=... を使用してください。 プロファイルモードでは Lighthouse によるストレージのリセットが無効になるため、Cookie とローカルストレージは実行間で保持されます。 --user-data-dir が存在しないディレクトリを指している場合、そのディレクトリが作成され、新しいプロファイルとして扱われます。 --profile-path には chrome://version に表示される Profile Path(例:.../Default)を設定してください。 注:Chrome のリモートデバッグにはデフォルト以外のユーザーデータディレクトリが必要です。そのため、システムのデフォルトではなく、専用のプロファイルディレクトリを再利用してください。 必要であれば、--user-data-dir と --profile-directory を個別に指定することもできます。 --chrome-port のみで接続してもストレージは保持されません。セッションを維持するには、プロファイルフラグも指定してください。

CLI オプション

MCP サーバーでサポートされている実行時フラグ:

  • --profile-path <path>:chrome://version の Profile Path を使用します(ユーザーデータディレクトリとプロファイル名を自動的に取得します)
  • --user-data-dir <path>:永続セッション用に Chrome プロファイルディレクトリを再利用します
  • --profile-directory <name>:ユーザーデータディレクトリ内のプロファイルを選択します
  • --chrome-path <path>:Chrome/Chromium 実行ファイルのパスを明示的に指定します(自動検出より優先されます。CHROME_PATH 環境変数も使用できます)
  • --chrome-flag <flag> または --chrome-flag=<flag>:追加の Chrome フラグを渡します(繰り返し指定できます)
  • --chrome-port <port> または --remote-debugging-port <port>:リモートデバッグを有効にして起動した既存の Chrome インスタンスに接続します
  • --headless:ヘッドレスモードを強制します
  • --no-headless:ヘッドありモードを強制します
ログ

Lighthouse のログは stderr に出力されます。MCP クライアントのログが大量にならないよう、サーバーではログレベルを error に設定しています。デバッグ時(Chrome の起動に失敗した場合など)は、LIGHTHOUSE_LOG_LEVEL を silent、info または verbose に設定してください。

LIGHTHOUSE_LOG_LEVEL=verbose npx @danielsogl/lighthouse-mcp@latest
WSL2/カスタム Chrome パス

誤った Chrome バイナリが選択される場合(例:WSL2 で Linux バイナリではなく Windows 版 Chrome が選択される場合)は、パスを明示的に設定してください。

# Via CLI flag
npx @danielsogl/lighthouse-mcp@latest --chrome-path /usr/bin/google-chrome

# Via environment variable
CHROME_PATH=/usr/bin/google-chrome npx @danielsogl/lighthouse-mcp@latest

MCP 設定で:

{
  "mcpServers": {
    "lighthouse": {
      "command": "npx",
      "args": ["@danielsogl/lighthouse-mcp@latest", "--chrome-path", "/usr/bin/google-chrome"]
    }
  }
}
E2E スモークテスト(プロファイル)

永続プロファイルを使用して実際の監査を実行します(既存のプロファイルディレクトリを使用し、必要に応じて一度ログインしてください):

npm run smoke:profile -- --url https://example.com \
  --profile-path "<profile-path>" \
  --no-headless
E2E スモークテスト(既存の Chrome への接続)

リモートデバッグを有効にして Chrome を起動します:

/path/to/GoogleChromeExecutable \
  --remote-debugging-port=9222 \
  --user-data-dir /path/to/chrome-profile

/path/to/GoogleChromeExecutable を、お使いのプラットフォームの Chrome/Chromium バイナリのパスに置き換えてください。

次に、そのインスタンスに Lighthouse を接続します:

npm run smoke:profile -- --url https://example.com --chrome-port 9222

接続時にストレージを保持するには、プロファイルパスを渡して、Lighthouse が Cookie/ローカルストレージを保持するようにします:

npm run smoke:profile -- --url https://example.com \
  --chrome-port 9222 \
  --profile-path "<profile-path>"
VS Code へのインストール

VS Code にインストール

VS Code Insiders にインストール

VS Code への手動インストール

VS Code CLI を使用して Lighthouse MCP サーバーをインストールすることもできます:

# For VS Code
code --add-mcp '{"name":"lighthouse","command":"npx","args":["-y","@danielsogl/lighthouse-mcp@latest"]}'

# For VS Code Insiders
code-insiders --add-mcp '{"name":"lighthouse","command":"npx","args":["-y","@danielsogl/lighthouse-mcp@latest"]}'

インストール後、VS Code の GitHub Copilot エージェントで Lighthouse MCP サーバーを利用できるようになります。

Cursor へのインストール

MCP サーバーをインストール

Cursor への手動インストール

Cursor Settings → MCP → Add new MCP Server に移動します。名前を「lighthouse」にし、種類に command を選択して、コマンド npx @danielsogl/lighthouse-mcp@latest を指定します:

{
  "mcpServers": {
    "lighthouse": {
      "command": "npx",
      "args": ["@danielsogl/lighthouse-mcp@latest"]
    }
  }
}
Windsurf へのインストール

Windsurf にインストール

Windsurf への手動インストール

Windsurf MCP のドキュメントに従ってください。以下の設定を使用します:

{
  "mcpServers": {
    "lighthouse": {
      "command": "npx",
      "args": ["@danielsogl/lighthouse-mcp@latest"]
    }
  }
}
### Claude Desktop へのインストール
Claude Desktop のインストール

MCP のインストールガイドに従い、次の設定を使用してください。

{
  "mcpServers": {
    "lighthouse": {
      "command": "npx",
      "args": ["@danielsogl/lighthouse-mcp@latest"]
    }
  }
}

🔧 利用可能なツール

Lighthouse MCP サーバーは、包括的なウェブ分析のために次のツールを提供します。

🏁 監査ツール
ツール説明パラメーター
run_audit包括的な Lighthouse 監査を実行しますurl、categories?、device?、throttling?
get_accessibility_scoreアクセシビリティスコアと推奨事項を取得しますurl、device?、includeDetails?
get_seo_analysisSEO 分析と推奨事項を取得しますurl、device?、includeDetails?
⚡ パフォーマンスツール
ツール説明パラメーター
get_performance_score全体的なパフォーマンススコアを取得しますurl、device?
get_core_web_vitalsCore Web Vitals の指標を取得しますurl、device?、includeDetails?、threshold?
compare_mobile_desktopデバイス間のパフォーマンスを比較しますurl、categories?、throttling?、includeDetails?
check_performance_budgetパフォーマンス予算に照らして確認しますurl、device?、budget
get_lcp_opportunitiesLCP の最適化機会を見つけますurl、device?、includeDetails?、threshold?
🔍 分析ツール
ツール説明パラメーター
find_unused_javascript未使用の JavaScript コードを見つけますurl、device?、minBytes?、includeSourceMaps?
analyze_resourcesウェブサイトのすべてのリソースを分析しますurl、device?、resourceTypes?、minSize?
🔒 セキュリティツール
ツール説明パラメーター
get_security_audit包括的なセキュリティ監査を実施しますurl、device?、checks?

💬 利用可能なプロンプト

Lighthouse MCP サーバーには、LLM が構造化された分析と推奨事項を提示するために役立つ、再利用可能なプロンプトが含まれています。

📊 分析プロンプト
プロンプト説明パラメーター
analyze-audit-resultsLighthouse の監査結果を分析しますauditResults、focusArea?
compare-audits監査結果の変更前と変更後を比較しますbeforeAudit、afterAudit、changesImplemented?
optimize-core-web-vitalsCore Web Vitals の最適化に関する推奨事項を取得しますcoreWebVitals、framework?、constraints?
optimize-resourcesリソースの最適化に関する推奨事項を取得しますresourceAnalysis、loadingStrategy?、criticalUserJourneys?
📚 利用可能なリソース

Lighthouse MCP サーバーには、重要なガイドラインとベストプラクティスを含む参照リソースが組み込まれています。

リソース説明URI
core-web-vitals-thresholdsCore Web Vitals のパフォーマンスしきい値lighthouse://performance/core-web-vitals-thresholds
optimization-techniquesパフォーマンスの最適化手法とその効果lighthouse://performance/optimization-techniques
wcag-guidelinesWCAG 2.1 のアクセシビリティガイドラインと問題lighthouse://accessibility/wcag-guidelines
seo-best-practicesSEO のベストプラクティスと最適化の機会lighthouse://seo/best-practices
security-best-practicesWeb セキュリティのベストプラクティスと脆弱性lighthouse://security/best-practices
budget-guidelinesサイトの種類別パフォーマンスバジェットの推奨事項lighthouse://performance/budget-guidelines
categories-scoringLighthouse 監査カテゴリとスコアリング方法lighthouse://audits/categories-scoring
framework-guidesフレームワーク固有の最適化ガイドlighthouse://frameworks/optimization-guides
🎯 戦略プロンプト
プロンプト説明パラメーター
create-performance-plan包括的なパフォーマンス改善計画を作成しますcurrentMetrics、targetGoals?、timeframe?
create-performance-budgetカスタムのパフォーマンスバジェット推奨事項を作成しますcurrentMetrics、businessGoals?、userBase?
seo-recommendationsSEO 改善の推奨事項を作成しますseoAudit、websiteType?、targetAudience?
accessibility-guideアクセシビリティ改善ガイドを作成しますaccessibilityAudit、complianceLevel?、userGroups?
🔧 プロンプトパラメーターの詳細
  • auditResults:Lighthouse ツールによる JSON 形式の監査結果
  • focusArea:重点を置く特定のカテゴリ("performance"、"accessibility"、"seo"、"best-practices"、"agentic-browsing")
  • beforeAudit / afterAudit:変更前と変更後の Lighthouse 監査結果
  • changesImplemented:監査間に実施した変更の説明
  • currentMetrics:監査から得られた現在のパフォーマンス指標
  • targetGoals:具体的なパフォーマンス目標またはビジネス目標
  • timeframe:改善を実施する期間
  • framework:フロントエンドフレームワークまたは技術スタック
  • constraints:技術的またはビジネス上の制約
  • websiteType:Web サイトの種類(例:eコマース、ブログ、企業サイト)
  • targetAudience:ターゲットオーディエンスまたは市場に関する情報
  • complianceLevel:WCAG 準拠レベル("AA" または "AAA")
  • userGroups:アクセシビリティを考慮する特定のユーザーグループ

📋 パラメーターの詳細

共通パラメーター
  • url(必須):分析する Web サイトの URL
  • device:対象デバイス("desktop" または "mobile"、デフォルト:"desktop")
  • includeDetails:監査の詳細情報を含めます(デフォルト:false)
  • throttling:ネットワーク/CPU のスロットリングを有効にします(デフォルト:false)
固有のパラメーター
  • categories:監査する Lighthouse のカテゴリ(["performance", "accessibility", "best-practices", "seo", "agentic-browsing"])
  • threshold:メトリクスのカスタムしきい値(例:{"lcp": 2.5, "inp": 200, "cls": 0.1})
  • budget:パフォーマンス予算の上限(例:{"performanceScore": 90, "largestContentfulPaint": 2500})
  • resourceTypes:分析するリソースの種類(["images", "javascript", "css", "fonts", "other"])
  • minBytes:分析対象とするファイルサイズの最小しきい値(デフォルト:2048)
  • checks:実行するセキュリティチェック(["https", "csp", "hsts", "origin-isolation", "clickjacking", "trusted-types", "third-party-cookies", "deprecations"])

💡 使用例

基本的なパフォーマンス監査
// Get overall performance score
{
  "tool": "get_performance_score",
  "arguments": {
    "url": "https://example.com",
    "device": "mobile"
  }
}
Core Web Vitals の分析
// Check Core Web Vitals with custom thresholds
{
  "tool": "get_core_web_vitals",
  "arguments": {
    "url": "https://example.com",
    "device": "mobile",
    "includeDetails": true,
    "threshold": {
      "lcp": 2.5,
      "inp": 200,
      "cls": 0.1
    }
  }
}
セキュリティ評価
// Comprehensive security audit
{
  "tool": "get_security_audit",
  "arguments": {
    "url": "https://example.com",
    "checks": ["https", "csp", "hsts"]
  }
}
リソースの最適化
// Find optimization opportunities
{
  "tool": "analyze_resources",
  "arguments": {
    "url": "https://example.com",
    "resourceTypes": ["images", "javascript"],
    "minSize": 1024
  }
}
リファレンスリソースの使用

組み込みのガイドラインとベストプラクティスにアクセスします。

// Get Core Web Vitals thresholds
{
  "resource": {
    "uri": "lighthouse://performance/core-web-vitals-thresholds"
  }
}

// Access WCAG accessibility guidelines
{
  "resource": {
    "uri": "lighthouse://accessibility/wcag-guidelines"
  }
}

// Get framework-specific optimization guides
{
  "resource": {
    "uri": "lighthouse://frameworks/optimization-guides"
  }
}
分析にプロンプトを使用
// Analyze audit results with focused recommendations
{
  "prompt": "analyze-audit-results",
  "arguments": {
    "auditResults": "{...lighthouse audit json...}",
    "focusArea": "performance"
  }
}

// Create a performance improvement plan
{
  "prompt": "create-performance-plan",
  "arguments": {
    "currentMetrics": "{...current performance metrics...}",
    "targetGoals": "Achieve 90+ performance score and sub-2s LCP",
    "timeframe": "3 months"
  }
}

// Compare before/after audit results
{
  "prompt": "compare-audits",
  "arguments": {
    "beforeAudit": "{...before audit results...}",
    "afterAudit": "{...after audit results...}",
    "changesImplemented": "Implemented lazy loading and image optimization"
  }
}

🎯 ユースケース

  • パフォーマンス監視:パフォーマンスと Core Web Vitals を自動で追跡・監視します
  • アクセシビリティへの準拠:WCAG 2.1 への準拠を確認し、修正方法を提示します
  • SEO の最適化:技術的な SEO 監査と検索エンジン最適化の推奨事項を提示します
  • セキュリティ評価:脆弱性をスキャンし、セキュリティのベストプラクティスへの準拠を検証します
  • リソースの最適化:バンドルを分析し、最適化の機会を特定します
  • パフォーマンス予算:パフォーマンス予算を自動で監視し、アラートを通知します
  • CI/CD 連携:品質ゲートを自動化し、パフォーマンスのリグレッションを検出します

🏗️ アーキテクチャ

このサーバーは以下を使用して構築されています。

  • Model Context Protocol SDK:MCP サーバーの実装に使用します
  • Google Lighthouse:ウェブパフォーマンスの監査に使用します
  • Chrome Launcher:ブラウザーの自動化に使用します
  • TypeScript:型安全性と、より優れた開発者エクスペリエンスのために使用します
  • Zod:実行時のスキーマ検証に使用します

🧪 テスト

npm run test:run      # unit tests
npm run test:coverage # unit tests with coverage
npm run test:e2e      # end-to-end tests

エンドツーエンドテストスイートは、サーバーをビルドし、実際の MCP クライアントを使って stdio 経由で起動したうえで、ループバックで配信されるフィクスチャページに対して実際の Lighthouse 監査を実行します。Chrome がインストールされている必要があります。標準以外の場所にインストールされている場合は、CHROME_PATH を設定してください。

🤝 コントリビューション

コントリビューションを歓迎します。詳しくはコントリビューションガイドをご覧ください。

  • コードスタイルと規約
  • テスト要件
  • プルリクエストの手順
  • 開発環境のセットアップ

📜 ライセンス

このプロジェクトは MIT ライセンスの下で公開されています。詳細はLICENSEファイルをご覧ください。

🔒 セキュリティ

セキュリティ上の問題については、セキュリティポリシーをご覧ください。

📞 サポート

🙏 謝辞

  • 優れた監査エンジンを提供してくれた Google Lighthouse チーム
  • Model Context Protocol の仕様を提供してくれた Anthropic
  • 継続的な刺激と貢献をもたらしてくれるオープンソースコミュニティ

❤️ を込めて Daniel Sogl が開発

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。