Skip to main content
Glama
README.md
# browsershot-mcp

Browser screenshot tool for [Claude Code](https://claude.ai/code). Take screenshots of web pages during frontend development — see what your UI looks like without leaving the terminal.

## Install

One command:

```bash
claude mcp add browsershot -- npx -y github:kjaiswal/browsershot-mcp
```

That's it. Puppeteer + Chromium are bundled — no system dependencies needed.

## What it does

Once installed, Claude Code gets three new tools:

| Tool | What it does |
|---|---|
| `screenshot` | Capture a webpage screenshot (full page or element) |
| `screenshot_compare` | Take mobile + tablet + desktop screenshots side by side |
| `page_info` | Get page metadata (fonts, colors, scroll height, resource counts) |

Claude sees the screenshots directly and can analyze layout, styling, and visual regressions.

## Usage

Just describe what you want in natural language:

```
> Take a screenshot of http://localhost:3000
> Screenshot the nav bar element on my dev server
> Compare my page at mobile, tablet, and desktop widths
> Check if dark mode looks right on localhost:8080
```

### Tool parameters

**`screenshot`**
- `url` — URL to capture (required)
- `width` / `height` — Viewport size (default: 1440×900)
- `fullPage` — Capture full scroll height (default: true)
- `selector` — CSS selector to capture a specific element
- `device` — Preset: `"mobile"`, `"tablet"`, `"desktop"`, `"4k"`, or Puppeteer device name like `"iPhone 15 Pro"`
- `darkMode` — Emulate `prefers-color-scheme: dark`
- `waitFor` — Ms to wait after load (default: 2000) or CSS selector to wait for
- `output` — Custom file path

**`screenshot_compare`**
- `url` — URL to capture (required)
- `widths` — Array of viewport widths (default: [375, 768, 1440])

**`page_info`**
- `url` — URL to inspect (required)

## Examples

Claude can now do things like:

- "Take a screenshot of my React app and tell me if the layout looks broken"
- "Screenshot this page on mobile and desktop — is the nav responsive?"
- "Check if the dark mode toggle works by screenshotting both themes"
- "What fonts and colors is this page using?"

## How it works

- Runs as an MCP (Model Context Protocol) server
- Puppeteer launches headless Chromium (bundled, no install needed)
- Screenshots are returned as images that Claude can see and analyze
- Self-signed certs are accepted (for local dev servers)
- Browser instance is reused across calls for speed

## Requirements

- Node.js 18+
- Claude Code

## License

MIT

TDQS

A3.8/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: page_info extracts metadata without rendering, screenshot captures a single viewport, and screenshot_compare generates multiple viewports for responsive testing. No functional overlap or ambiguity exists.

Naming Consistency3/5

Mixed structural patterns: page_info follows noun_noun (describing output data), while screenshot and screenshot_compare use noun or noun_verb patterns (describing actions). All use snake_case, but semantic consistency is lacking compared to a uniform verb_noun convention.

Tool Count4/5

Three tools is lean but appropriate for a focused screenshot utility. The set covers auditing (page_info), basic capture (screenshot), and responsive validation (screenshot_compare) without unnecessary proliferation.

Completeness4/5

Core screenshot workflow is well-covered including metadata inspection and multi-device responsive testing. Minor gaps might include PDF generation or granular viewport control (e.g., single mobile screenshot without the full comparison set), but the essential surface supports complete screenshot tasks.

Maintenance

ActivityInactive
ResponsivenessNo issues