EasyPlaywrightMCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| loginA | Orchestrate login and persist Playwright storageState. Strategies: password form, HTTP Basic, bearer/token inject, OAuth cookies/tokens, manual/OAuth window, reuse profileId. Auto (headless) when enough creds/tokens are provided; otherwise opens a headed window and waits. DO NOT use this tool for Google OAuth / Sign in with Google, Microsoft/Apple/Discord social login, Cloudflare bot walls, or other restricted IdPs — those require set_session_auth. If you are about to open a headed login for Google OAuth, stop and follow the Restricted auth user-message template instead. Example input: Example success: { "ok": true, "profileId": "prof_abc", "strategy": "password" } |
| set_session_authA | Inject user-browser credentials into Playwright (restricted auth). ALWAYS saves profileId; optional sessionId applies to a live session. BEFORE calling this tool: you MUST already have sent the user (same conversation) the login URL + Network Cookie steps + JS snippet from server instructions. Never call this tool "speculatively" without first giving those instructions. Never open headed login for Google OAuth — use this flow. Triggers: Google OAuth / Sign in with Google, Gmail/Google apps, Microsoft/Entra, Apple, Discord OAuth, Cloudflare Turnstile on login, Okta/Auth0 social IdP, or any login Playwright cannot complete. Accepts credentialsJson from the console snippet (Cookie header + storage) or Playwright storageState JSON. Example (after user pastes): Returns: { "ok": true, "profileId": "prof_…", "strategy": "restricted_auth" } |
| start_sessionA | Start a Playwright Chromium session (headless or windowed) and keep it open. Optional recordVideoPath enables WebM capture at 1920×1080 @ deviceScaleFactor 2 with synthetic cursor and always-on click highlight. When recording, demoMode is on (narrate defaults true): orchestrate auto-paces to TTS. Pass profileId from login or set_session_auth to reuse auth. Example: Returns: { "sessionId": "sess_…", "headed": false, "recording": true, "demoMode": true, "startUrl": "…" } |
| query_sessionsA | List all active sessions with sessionId, url, title, recording, createdAt, headed. |
| query_sessionB | Fast page digest for LLM navigation decisions: url, title, viewport, ariaSnapshot, interactive controls. Example: { "sessionId": "sess_01HXYZ" } |
| orchestrate_sessionA | Execute ordered tap/cursor/keyboard actions. Recording/demoMode: server synthesizes TTS from narration|description, runs the action, holds until VO ends. startMs/endMs are ignored for pacing while recording (placeholders OK). fill=false for live typing. Testing (no recording): startMs/endMs pace the batch; each call clock starts near 0. Optional recordStepsPath writes an MD log. Recording also writes sibling .cues.json. Example (demo): |
| end_sessionA | End a session and finalize recorded video if any. Recording sessions: trims idle head/tail using cues.json actionSpan, then returns videoPath. Example: { "sessionId": "sess_01HXYZ" } Returns: { "ok": true, "videoPath": "C:/Videos/demo-clip.webm" } |
| compile_demoA | Compile demo clips + slate segways into one narrated MP4. Pipeline: convert (minterpolate 60fps H.264) → burn captions → VO → splice. For recorded clips, pass videoPath only — loads sibling .cues.json (wins over hand-authored narration). Slates still take explicit narration. Example: |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| workflows | Intended EasyPlaywrightMCP workflows for automated testing and demo videos |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Macioa/EasyPlaywrightMCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server