Lighthouse MCP Server

Runs Google Lighthouse audits on a URL and returns category scores and Core Web Vitals

By Priyankar Kumar (individual) TypeScript Local · stdio TestingBrowser automationDeveloper tools

60 popularity score ★ 217 ↓ 3.0k/wk

Connect your client

Local (npm)

Add in one click

Opens the app, which asks before it adds the server.

Or add it by command or config

Claude CodeTerminal
claude mcp add lighthouse -- npx -y lighthouse-mcp
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "lighthouse": {
      "command": "npx",
      "args": [
        "-y",
        "lighthouse-mcp"
      ]
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "lighthouse": {
      "command": "npx",
      "args": [
        "-y",
        "lighthouse-mcp"
      ]
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "lighthouse": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "lighthouse-mcp"
      ]
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.lighthouse]
command = "npx"
args = ["-y", "lighthouse-mcp"]
Gemini CLITerminal
gemini mcp add --scope user lighthouse npx -- -y lighthouse-mcp
Local (from source)

Add in one click

Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.

Or add it by command or config

FirstTerminal
git clone https://github.com/priyankark/lighthouse-mcp.git
cd lighthouse-mcp
npm install
npm run build
Claude CodeTerminal
claude mcp add lighthouse -- node '<ABSOLUTE_PATH_TO_CLONE>/build/index.js'
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "lighthouse": {
      "command": "node",
      "args": [
        "<ABSOLUTE_PATH_TO_CLONE>/build/index.js"
      ]
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "lighthouse": {
      "command": "node",
      "args": [
        "<ABSOLUTE_PATH_TO_CLONE>/build/index.js"
      ]
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "lighthouse": {
      "type": "stdio",
      "command": "node",
      "args": [
        "<ABSOLUTE_PATH_TO_CLONE>/build/index.js"
      ]
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.lighthouse]
command = "node"
args = ["<ABSOLUTE_PATH_TO_CLONE>/build/index.js"]
Gemini CLITerminal
gemini mcp add --scope user lighthouse node -- '<ABSOLUTE_PATH_TO_CLONE>/build/index.js'

Settings 1

AUDIT_ALLOW_LOOPBACK Optional: Set to false to also block localhost and loopback addresses; loopback is allowed by default.

What it does

Lighthouse MCP Server wraps Google's Lighthouse auditing tool so an assistant can check how a web page scores. It starts a headless Chrome on your machine, loads the page you name and returns a JSON summary. It has two tools: run_audit, which can be limited to some of the performance, accessibility, best-practices and seo categories and set to mobile or desktop emulation with or without network throttling, and get_performance_score, which runs only the performance category.

The summary is short by design. In version 0.1.17 the code returns each category's title, score and description plus six metrics: first contentful paint, largest contentful paint, total blocking time, cumulative layout shift, speed index and time to interactive. The individual audit findings and fix suggestions in a full Lighthouse report are not passed back (src/index.ts). Mobile runs use a 360x640 viewport and desktop runs 1350x940.

It suits quick checks during development, such as asking for a page's performance score after a change, or comparing mobile and desktop numbers.

What it needs

RuntimeNode.js 22+

Node.js 22.19 or later (the package's engines field) and an installed Chrome or Chromium that chrome-launcher can find. No account or sign-in. Runs locally over stdio.

Limits

Only two tools, and results are cut to category scores and six metrics; the per-audit findings of a Lighthouse report are not returned. Only one audit runs at a time: a second request while one is running is refused, and each audit is stopped after 120 seconds. get_performance_score always applies network throttling; use run_audit with throttling set to false to skip it. Private, link-local and cloud metadata addresses are blocked, so pages on an internal network cannot be audited; loopback is allowed unless AUDIT_ALLOW_LOOPBACK=false.

Who it suits

Developers who want a page's Lighthouse scores without leaving their assistant, on a machine that already has Chrome. It needs no account and changes nothing. It is less useful when you need the full list of failing audits and how to fix them, a saved HTML report, or audits of staging sites on a private network, since the server blocks those addresses; run the Lighthouse CLI or Chrome DevTools directly for those.

Tools 2

run_audit
Audit a URL with Lighthouse, optionally choosing categories, mobile or desktop, and throttling on or off
get_performance_score
Return a URL's performance score and key speed metrics only

Similar servers