mcp-playwright
개발자를 위한 AI 터미널, 워프
MacOS, Linux 및 Windows에서 사용 가능
극작가 MCP 서버 🎭
Playwright를 사용하여 브라우저 자동화 기능을 제공하는 모델 컨텍스트 프로토콜 서버입니다. 이 서버를 통해 LLM은 웹 페이지와 상호 작용하고, 스크린샷을 찍고, 테스트 코드를 생성하고, 페이지를 웹 스크랩하고, 실제 브라우저 환경에서 JavaScript를 실행할 수 있습니다.
스크린샷

Related MCP server: Puppeteer MCP Server
문서 | API 참조
설치
npm, mcp-get 또는 Smithery를 사용하여 패키지를 설치할 수 있습니다.
npm 사용하기:
지엑스피1
mcp-get을 사용합니다.
npx @michaellatman/mcp-get@latest install @executeautomation/playwright-mcp-server대장간 사용
Smithery를 통해 Claude Desktop용 Playwright MCP를 자동으로 설치하려면:
npx @smithery/cli install @executeautomation/playwright-mcp-server --client claudeVS Code에 설치
다음 버튼 중 하나를 사용하여 VS Code에 Playwright MCP 서버를 설치하세요.
또는 VS Code CLI를 사용하여 Playwright MCP 서버를 설치할 수 있습니다.
# For VS Code
code --add-mcp '{"name":"playwright","command":"npx","args":["@executeautomation/playwright-mcp-server"]}'# For VS Code Insiders
code-insiders --add-mcp '{"name":"playwright","command":"npx","args":["@executeautomation/playwright-mcp-server"]}'설치 후 ExecuteAutomation Playwright MCP 서버를 VS Code의 GitHub Copilot 에이전트와 함께 사용할 수 있습니다.
Playwright Server를 사용하기 위한 구성
Playwright 서버를 사용하기 위한 Claude Desktop 구성은 다음과 같습니다.
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["-y", "@executeautomation/playwright-mcp-server"]
}
}
}테스트
이 프로젝트에서는 Jest를 사용하여 테스트합니다. 테스트는 src/__tests__ 디렉터리에 있습니다.
테스트 실행
다음 명령 중 하나를 사용하여 테스트를 실행할 수 있습니다.
# Run tests using the custom script (with coverage)
node run-tests.cjs
# Run tests using npm scripts
npm test # Run tests without coverage
npm run test:coverage # Run tests with coverage
npm run test:custom # Run tests with custom script (same as node run-tests.cjs)테스트 커버리지 보고서는 coverage 디렉토리에 생성됩니다.
실행 평가
evals 패키지는 index.ts 파일을 실행하는 mcp 클라이언트를 로드하므로 테스트 사이에 다시 빌드할 필요가 없습니다. npx 명령 앞에 접두사를 붙여 환경 변수를 로드할 수 있습니다. 전체 문서는 여기에서 확인할 수 있습니다.
OPENAI_API_KEY=your-key npx mcp-eval src/evals/evals.ts src/tools/codegen/index.ts스타 역사
Available Tools
32 toolsclear_codegen_sessionC
Clear a code generation session without generating a test
Inputs: sessionId (required).
end_codegen_sessionC
End a code generation session and generate the test file
Inputs: sessionId (required).
get_codegen_sessionC
Get information about a code generation session
Inputs: sessionId (required).
playwright_assert_responseB
Wait for and validate a previously initiated HTTP response wait operation.
Inputs: id (required), value.
playwright_clickC
Click an element on the page
Inputs: selector (required).
playwright_click_and_switch_tabA
Click a link and switch to the newly opened tab
Inputs: selector (required).
playwright_closeB
Close the browser and release all resources
Inputs: no named parameters.
playwright_console_logsC
Retrieve console logs from the browser with filtering options
Inputs: clear, limit, search, type.
playwright_custom_user_agentC
Set a custom User Agent for the browser
Inputs: userAgent (required).
playwright_deleteC
Perform an HTTP DELETE request
Inputs: url (required).
playwright_dragC
Drag an element to a target location
Inputs: sourceSelector (required), targetSelector (required).
playwright_evaluateC
Execute JavaScript in the browser console
Inputs: script (required).
playwright_expect_responseB
Ask Playwright to start waiting for a HTTP response. This tool initiates the wait operation but does not wait for its completion.
Inputs: id (required), url (required).
playwright_fillC
fill out an input field
Inputs: selector (required), value (required).
playwright_getC
Perform an HTTP GET request
Inputs: url (required).
playwright_get_visible_htmlC
Get the HTML content of the current page. By default, all tags are removed from the output unless removeScripts is explicitly set to false.
Inputs: cleanHtml, maxLength, minify, removeComments, +4 more.
playwright_get_visible_textB
Get the visible text content of the current page
Inputs: no named parameters.
playwright_go_backB
Navigate back in browser history
Inputs: no named parameters.
playwright_go_forwardA
Navigate forward in browser history
Inputs: no named parameters.
playwright_hoverC
Hover an element on the page
Inputs: selector (required).
playwright_iframe_clickC
Click an element in an iframe on the page
Inputs: iframeSelector (required), selector (required).
playwright_iframe_fillC
Fill an element in an iframe on the page
Inputs: iframeSelector (required), selector (required), value (required).
playwright_patchC
Perform an HTTP PATCH request
Inputs: url (required), value (required).
playwright_postC
Perform an HTTP POST request
Inputs: url (required), value (required), headers, token.
playwright_press_keyC
Press a keyboard key
Inputs: key (required), selector.
playwright_putC
Perform an HTTP PUT request
Inputs: url (required), value (required).
playwright_save_as_pdfC
Save the current page as a PDF file
Inputs: outputPath (required), filename, format, margin, +1 more.
playwright_screenshotC
Take a screenshot of the current page or a specific element
Inputs: name (required), downloadsDir, fullPage, height, +4 more.
playwright_selectC
Select an element on the page with Select tag
Inputs: selector (required), value (required).
playwright_upload_fileC
Upload a file to an input[type='file'] element on the page
Inputs: filePath (required), selector (required).
start_codegen_sessionC
Start a new code generation session to record Playwright actions
Inputs: options (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 32 tools
Most tools have distinct purposes, with clear separation between navigation, interaction, HTTP requests, and code generation functions. However, some overlap exists between playwright_click and playwright_iframe_click, and between playwright_fill and playwright_iframe_fill, which could cause minor confusion about when to use the iframe variants versus regular versions.
Excellent naming consistency throughout. All tools follow a clear snake_case pattern with 'playwright_' prefix for browser operations and descriptive verb_noun combinations. The three codegen tools also follow a consistent pattern with 'codegen_session' suffix.
32 tools is quite large for an MCP server, bordering on heavy. While Playwright is a comprehensive browser automation library, this many tools may overwhelm agents and could potentially be consolidated (e.g., HTTP methods could be a single tool with method parameter).
The tool surface provides comprehensive coverage of Playwright's core functionality including navigation, element interaction, iframe handling, HTTP requests, debugging (console logs), file operations, PDF/screenshot generation, and code generation. No obvious gaps exist for typical browser automation workflows.
Maintenance
Related MCP Connectors
Official Browserless MCP server: browser automation, scraping, screenshots and PDFs for AI agents.
Cloud browser, web extraction, screenshots, and remote CDP tools for AI agents.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
A Model Context Protocol server for Wix AI tools
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides a server utilizing Model Context Protocol to enable human-like browser automation with Playwright, allowing control over browser actions such as navigation, element interaction, and scrolling.8-
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that provides browser automation capabilities using Playwright, enabling LLMs to interact with web pages, take screenshots, and execute JavaScript in a real browser environment.19Apache 2.0
- AlicenseBqualityDmaintenanceA Model Context Protocol server that provides browser automation capabilities using Puppeteer, enabling LLMs to interact with web pages, take screenshots, and execute JavaScript in a real browser environment.728,579 npm1MIT
- AlicenseBqualityDmaintenanceA Model Context Protocol server that provides browser automation capabilities using Playwright, enabling LLMs to interact with web pages, take screenshots, generate test code, scrape web content, and execute JavaScript in real browser environments.3113,875 npmMIT