Fourth Playwright MCP
Fourth Playwright MCP server - FastMCP v3 orchestration with @playwright/mcp subprocess for Claude.ai Custom Connector
Ask AI about Fourth Playwright MCP
Powered by Claude Β· Grounded in docs
I know everything about Fourth Playwright MCP. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
Playwright Web MCP
General-purpose web automation MCP server built on FastMCP v3 and @playwright/mcp.
Gives Claude browser automation capabilities over HTTP β navigate websites, fill forms, extract data, and interact with any web application.
Architecture
Claude.ai / Cowork Plugin
β Streamable HTTP
βΌ
FastMCP v3 (Python)
β
βββ 70+ playwright_* tools (proxied via subprocess)
βββ 19 web_* orchestration tools
βββ 1 browser_wait_for wrapper
βββ Skills (MCP resources)
Tools
Web Automation (custom orchestration)
| Tool | Purpose |
|---|---|
web_login | Navigate to login page, discover form fields (auto_fill option) |
web_check_auth_state | Check if user is authenticated |
web_navigate_and_wait | Navigate + SPA-aware content waiting |
web_wait_for_ready | Wait for page content after any action |
web_discover_navigation | Identify menus, tabs, pagination |
web_extract_table | Extract table data (rows/csv/markdown, DOM mode) |
web_extract_page_data | Extract targeted page content |
web_extract_links | Extract links via DOM (structured data) |
web_discover_form | Identify form fields, types, refs |
web_fill_form | Batch-fill form fields |
web_search | Search Google/DuckDuckGo with filters |
web_search_and_extract | Search + multi-page content extraction |
web_extract_article | Clean article text via DOM parsing |
web_extract_metadata | Page metadata (OG, JSON-LD, meta tags) |
web_save_pdf | Save page as PDF |
web_save_session | Save browser session state |
web_load_session | Restore saved session |
web_execute_js | Run JavaScript with error handling |
web_extract_structured_data | CSS selector-based data extraction |
Playwright Primitives (proxied)
All 70+ @playwright/mcp tools are available with a playwright_ prefix:
playwright_browser_navigate, playwright_browser_snapshot, playwright_browser_click, playwright_browser_type, playwright_browser_take_screenshot, and more.
Utility
| Tool | Purpose |
|---|---|
browser_wait_for | Type-safe wrapper for playwright_browser_wait_for |
Deployment
Railway (production)
The server deploys to Railway via Dockerfile. Set these environment variables:
| Variable | Required | Default | Description |
|---|---|---|---|
PORT | No | Set by Railway | HTTP port |
HOST | No | 0.0.0.0 | Bind address |
OAUTH_CLIENT_ID | No | β | OAuth client ID (omit to disable auth) |
OAUTH_CLIENT_SECRET | No | β | OAuth client secret |
OAUTH_AUTHORIZATION_ENDPOINT | No | Google OIDC | Authorization endpoint |
OAUTH_TOKEN_ENDPOINT | No | Google OIDC | Token endpoint |
BASE_URL | No | http://127.0.0.1:8000 | Server public URL (for OAuth redirects) |
Local development
# Install dependencies
uv sync
# Start server
uv run python src/server.py
# β http://localhost:8000/health
Docker
docker build -t playwright-web-mcp .
docker run -p 8000:8000 playwright-web-mcp
Usage
Claude.ai Custom Connector
Add as a Custom Connector in Claude.ai Project settings:
- URL:
https://<your-app>.railway.app/mcp - Auth: OAuth 2.1 (if configured)
Cowork Plugin
Reference the MCP endpoint in your plugin's .mcp.json:
{
"mcpServers": {
"web": {
"url": "https://<your-app>.railway.app/mcp"
}
}
}
Development
# Run tests
uv run pytest
# Lint
uv run ruff check src/
# Type check
uv run ruff format --check src/
License
Internal use β Fourth Enterprises.
