paparazzi
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@paparazziscreenshot the current tab"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Paparazzi
Chrome extension + MCP server that lets Claude see and debug your browser.
Why?
Playwright and similar tools are great for browser automation, but they're heavyweight for simple debugging tasks. You end up managing headless browsers, writing selectors, and dealing with async waits — just to let an LLM see what's on screen.
Paparazzi takes a simpler approach: it connects to your existing browser session via the Chrome DevTools Protocol. No extra browser instance, no selectors, no waits.
Related MCP server: chrome-devtools-mcp
Tools
Tool | Description |
| Capture viewport or full page |
| Get console output |
| Inspect XHR/fetch requests |
| Find uncaught JS errors |
| Run JavaScript in page context |
| Get HTML content |
| Web Vitals, memory, DOM stats |
| Cookies, localStorage, sessionStorage |
| Current tab URL/title |
| Reload (supports hard refresh) |
Quick Start
make setup # Install + build + configure ClaudeOr step by step:
pnpm install && pnpm build
make configure # Interactive setup wizardManual Setup
Load extension:
chrome://extensions/→ Developer mode → Load unpacked → selectpackages/extensionAdd to Claude config (or use
make configure):
{
"mcpServers": {
"paparazzi": {
"command": "node",
"args": ["/path/to/paparazzi/packages/mcp-server/dist/index.js"]
}
}
}Restart Claude Desktop or Claude Code
Architecture
┌─────────────────────────────────────────────────────────────────────────┐
│ Claude │
│ (Desktop / Code) │
└─────────────────────────────────────────────────────────────────────────┘
│
│ MCP Protocol (stdio)
▼
┌─────────────────────────────────────────────────────────────────────────┐
│ MCP Server │
│ ┌───────────────────┐ ┌─────────────────┐ ┌───────────────────────┐ │
│ │ MCP Tools │ │ Extension Bridge│ │ @modelcontextprotocol│ │
│ │ take_screenshot │ │ WebSocket :9222 │ │ /sdk (stdio) │ │
│ │ get_console_logs │ │ │ │ │ │
│ │ get_network_reqs │ │ │ │ │ │
│ │ evaluate_js │ │ │ │ │ │
│ │ get_dom_snapshot │ │ │ │ │ │
│ └───────────────────┘ └─────────────────┘ └───────────────────────┘ │
└─────────────────────────────────────────────────────────────────────────┘
│
│ WebSocket (port 9222)
▼
┌─────────────────────────────────────────────────────────────────────────┐
│ Chrome Extension │
│ ┌─────────────────────────────────────────────────────────────────┐ │
│ │ Background Service Worker │ │
│ │ ┌─────────────────────────┐ ┌───────────────────────────┐ │ │
│ │ │ chrome.debugger │ │ chrome.tabs.captureVisible│ │ │
│ │ │ (CDP v1.3) │ │ Tab() │ │ │
│ │ │ • Runtime.consoleAPI │ └───────────────────────────┘ │ │
│ │ │ • Network.* │ │ │
│ │ │ • DOM.getOuterHTML │ │ │
│ │ │ • Performance.metrics │ │ │
│ │ └─────────────────────────┘ │ │
│ └─────────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────────┘
│
│ Chrome DevTools Protocol
▼
┌─────────────────────────────────────────────────────────────────────────┐
│ Browser Tab │
│ (the page being debugged) │
└─────────────────────────────────────────────────────────────────────────┘Package Structure
packages/
├── mcp-server/ # Node.js MCP server
│ └── src/
│ ├── server.ts # MCP protocol handler
│ ├── tools/ # Tool implementations
│ └── extension-bridge/ # WebSocket client
├── extension/ # Chrome extension
│ └── src/
│ └── background/ # Service worker + CDP debugger
└── shared/ # Shared TypeScript typesDevelopment
pnpm dev:extension # Watch extension
pnpm dev:server # Watch MCP serverCI Checks
pnpm lint # ESLint
pnpm typecheck # TypeScript
pnpm knip # Unused code detection
pnpm test:run # VitestMake Targets
Target | Description |
| Full setup: install + build + configure |
| Interactive wizard to add to Claude config |
| Install dependencies |
| Build all packages |
| Start dev mode (watch) |
| Run MCP server directly |
| Show config snippet for manual copy |
| Remove build artifacts |
| Clean + install + build |
Troubleshooting
Extension not connected: Click extension icon to reconnect
Restricted pages: Can't capture
chrome://,about:, extension pagesPort conflict: Set
PAPARAZZI_PORTenv var, update extension to match
License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/nicksenap/paparazzi'
If you have feedback or need assistance with the MCP directory API, please join our Discord server