Testing
playwright-browser - Claude MCP Skill
Browser automation and E2E testing via local Playwright Docker container
SEO Guide: Enhance your AI agent with the playwright-browser tool. This Model Context Protocol (MCP) server allows Claude Desktop and other LLMs to browser automation and e2e testing via local playwright docker container... Download and configure this skill to unlock new capabilities for your AI workflow.
Documentation
SKILL.md# Playwright Browser Automation Skill
## Purpose
Provides browser automation capabilities through a local Playwright Docker container, eliminating the need for remote MCP server connections. Enables web scraping, E2E testing, screenshot capture, and browser interaction automation.
## Capabilities
- **Navigation**: Load URLs with configurable wait conditions
- **Screenshots**: Capture full-page or viewport screenshots
- **Interaction**: Click, fill forms, press keys
- **Evaluation**: Execute JavaScript in page context
- **Testing**: End-to-end test automation
## Requirements
### Docker
- Docker Desktop installed and running
- `agent-network` Docker network created
- Playwright container running
### Ruby
- Ruby ≥2.7
- Gems: `websocket-client-simple`, `json`
### Setup
```bash
# Start Playwright container
cd ~/.claude/skills/playwright-browser/docker
docker-compose up -d
# Verify container is running
docker ps | grep playwright-server
# Check health
curl http://localhost:3000/health
```
## Usage
### Navigation
```bash
# Navigate to URL
~/.claude/skills/playwright-browser/scripts/navigate.rb "https://example.com"
```
### Screenshots
```bash
# Capture screenshot
~/.claude/skills/playwright-browser/scripts/screenshot.rb "https://example.com" /tmp/screenshot.png
# Full-page screenshot
~/.claude/skills/playwright-browser/scripts/screenshot.rb "https://example.com" /tmp/screenshot.png --full-page
```
### JavaScript Evaluation
```bash
# Execute JavaScript
~/.claude/skills/playwright-browser/scripts/evaluate.rb "document.title"
# Get page data
~/.claude/skills/playwright-browser/scripts/evaluate.rb "JSON.stringify({title: document.title, url: location.href})"
```
## Docker Management
### Start Container
```bash
~/.claude/skills/playwright-browser/scripts/start.sh
```
### Stop Container
```bash
~/.claude/skills/playwright-browser/scripts/stop.sh
```
### Restart Container
```bash
~/.claude/skills/playwright-browser/scripts/restart.sh
```
### Check Status
```bash
~/.claude/skills/playwright-browser/scripts/status.sh
```
## Troubleshooting
### Container won't start
**Symptom**: `docker-compose up -d` fails
**Solutions**:
1. Check Docker Desktop is running
2. Verify network exists: `docker network ls | grep agent-network`
3. Check logs: `docker-compose logs`
4. Try recreating: `docker-compose down && docker-compose up -d`
### Connection refused
**Symptom**: WebSocket connection fails
**Solutions**:
1. Verify container is running: `docker ps | grep playwright`
2. Check health: `curl http://localhost:3000/health`
3. Check logs: `docker logs playwright-server`
4. Restart container: `docker-compose restart`
### Slow performance
**Symptom**: Operations take >5 seconds
**Solutions**:
1. Check resource allocation in Docker Desktop settings
2. Increase memory limit in docker-compose.yml
3. Verify no other heavy containers running
4. Check system resources: `docker stats`
### Ruby gem errors
**Symptom**: `LoadError` for websocket gem
**Solutions**:
```bash
gem install websocket-client-simple
gem install json
```
## Performance Notes
- Container startup: ~20-30 seconds
- API response time: <500ms typical
- Memory usage: ~500MB-1GB
- Suitable for development and light automation
## Advanced Configuration
### Custom Playwright version
Edit `docker-compose.yml`:
```yaml
image: mcr.microsoft.com/playwright:v1.41.0-jammy
```
### Resource limits
Edit `docker-compose.yml` deploy section:
```yaml
deploy:
resources:
limits:
memory: 4G
cpus: '4.0'
```
## See Also
- Chrome DevTools skill for debugging capabilities
- Original research: `~/.claude/claudedocs/research_mcp_to_agent_skill_conversion_20251116.md`Signals
Information
- Repository
- arlenagreer/claude_configuration_docs
- Author
- arlenagreer
- Last Sync
- 3/8/2026
- Repo Updated
- 3/5/2026
- Created
- 1/12/2026
Reviews (0)
No reviews yet. Be the first to review this skill!
Related Skills
CLAUDE
Claude-Mem: AI Development Instructions
cursorrules
CrewAI Development Rules
firecrawl-build-onboarding
Get Firecrawl credentials and SDK setup into a project. Use when an application needs `FIRECRAWL_API_KEY`, when an agent should add Firecrawl to `.env`, when the user wants to authenticate Firecrawl for app code, or when choosing the first SDK and docs for a new Firecrawl integration. This skill includes its own browser auth flow, so it does not depend on the website onboarding skill.
firecrawl-build
Integrate Firecrawl into application code whenever a product, agent, or workflow needs web data inside the app — web search, live search results, page scraping, structured extraction, or browser interaction. Use when building any feature that needs data from the web in code, even if the user does not mention Firecrawl explicitly and only describes wanting web data, website content, search, scraping, or interaction in an application. Trigger for Firecrawl requests, "fire girl" shorthand, and generic app-level web-data needs that should map to `/scrape`, `/search`, or `/interact`. Do not use this skill for one-off terminal-only web tasks during the current session; use `firecrawl/cli` for those.
Related Guides
Bear Notes Claude Skill: Your AI-Powered Note-Taking Assistant
Learn how to use the bear-notes Claude skill. Complete guide with installation instructions and examples.
Mastering tmux with Claude: A Complete Guide to the tmux Claude Skill
Learn how to use the tmux Claude skill. Complete guide with installation instructions and examples.
OpenAI Whisper API Claude Skill: Complete Guide to AI-Powered Audio Transcription
Learn how to use the openai-whisper-api Claude skill. Complete guide with installation instructions and examples.