Puppeteer MCP
Version: 1.0.1
Last Updated: 2025-01-05
Status: Production
Type: Browser Automation Platform
Audience: Developers, AI Engineers, DevOps

Production-ready AI-enabled browser automation platform with REST, gRPC, WebSocket, and Model
Context Protocol (MCP) interfaces, unified session management, and enterprise-grade security.
🚀 Quick Start
Install from npm
npm install -g puppeteer-mcp@1.0.1
npx puppeteer-mcp@1.0.1
Start the MCP Server
puppeteer-mcp
npx puppeteer-mcp@1.0.1
Integrate with Claude Desktop
claude mcp add puppeteer-mcp
For detailed setup instructions, see Getting Started Guide.
🎯 Key Features
- 🤖 AI-Ready: Native MCP support for LLM browser control
- 🌐 Multi-Protocol: REST, gRPC, WebSocket, and MCP interfaces
- 🔒 Enterprise Security: NIST-compliant with zero-trust architecture
- 🎭 Full Puppeteer Integration: 13+ browser action types
- 📊 Production Grade: Resource pooling, health monitoring, metrics
- 🚀 High Performance: Sub-100ms API response times
📋 Prerequisites
- Node.js 20+ and npm
- Chrome/Chromium (automatically downloaded by Puppeteer if not present)
🛠️ Installation Options
From Source
git clone https://github.com/williamzujkowski/puppeteer-mcp.git
cd puppeteer-mcp
npm install
npm run build
npm start
💻 Usage Examples
REST API
curl -X POST http://localhost:3000/api/v1/contexts \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name": "my-browser"}'
curl -X POST http://localhost:3000/api/v1/contexts/{contextId}/execute \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"action": "navigate",
"params": {"url": "https://example.com"}
}'
MCP with Claude
Once connected to Claude Desktop, you can use browser automation tools:
execute-in-context
- Execute browser actions (navigate, click, type, etc.)
create-context
- Create new browser contexts
list-contexts
- List active browser contexts
For detailed MCP usage examples, see MCP Usage Guide.
Configuration
Create a .env
file in the project root:
# Server Configuration
PORT=3000
NODE_ENV=production
# Authentication
JWT_SECRET=your-secret-key
JWT_EXPIRY=15m
REFRESH_TOKEN_EXPIRY=7d
# Browser Configuration
PUPPETEER_HEADLESS=true
BROWSER_POOL_MAX_SIZE=5
BROWSER_IDLE_TIMEOUT=300000
# Security
RATE_LIMIT_WINDOW_MS=60000
RATE_LIMIT_MAX_REQUESTS=100
📚 Documentation
Quick Links
API References
🔧 Development
npm install
npm run dev
npm test
npm run typecheck
npm run lint
npm run check
For detailed development workflow, see Development Guide.
🤝 Contributing
We welcome contributions! Please see our Contributing Guide.
This project follows William Zujkowski's Standards:
- TypeScript strict mode, max 300 lines/file
- 85%+ test coverage
- NIST security compliance
🚢 Deployment
Docker
docker build -t puppeteer-mcp .
docker run -p 3000:3000 -p 50051:50051 -e JWT_SECRET=your-secret puppeteer-mcp
For production deployment, see Deployment Guide.
🔒 Security
- Zero Trust Architecture
- NIST SP 800-53r5 compliant
- JWT + API key authentication
- Input validation on all endpoints
See Security Guide for details.
📄 License
Apache License 2.0 - see LICENSE file for details.
🆘 Support
Built with Puppeteer and
Model Context Protocol