Daytona Playwright MCP Server
Daytona Playwright MCP 서버
Daytona 클라우드 샌드박스 내부에서 실행되는 전체 Chrome 브라우저를 제어할 수 있는 MCP(Model Context Protocol) 서버입니다. Claude Code, Claude Desktop 또는 MCP 호환 클라이언트와 함께 사용하여 웹을 탐색하고, 스크린샷을 찍고, 양식을 작성하는 등의 작업을 수행할 수 있습니다.
주요 기능
전체 Chromium 브라우저: 가상 디스플레이에서 실제 Chromium 인스턴스(헤드리스 아님)를 실행합니다.
클라우드 샌드박스: 브라우저가 로컬 머신과 격리된 Daytona 샌드박스 내에서 안전하게 실행됩니다.
풍부한 도구 세트: 탐색, 클릭, 입력, 스크롤, 스크린샷 캡처, 콘텐츠 추출, 탭 관리 기능을 제공합니다.
스크린샷 지원: Claude가 보고 분석할 수 있는 이미지 형식으로 스크린샷을 반환합니다.
다양한 전송 방식: stdio(기본값), SSE 또는 HTTP와 함께 작동합니다.
빠른 시작
1. 패키지 설치
# Using uv (recommended)
uv pip install git+https://github.com/YOUR_USERNAME/daytona-playwright-mcp.git
# Or with pip
pip install git+https://github.com/YOUR_USERNAME/daytona-playwright-mcp.git
# Or install from source
git clone https://github.com/YOUR_USERNAME/daytona-playwright-mcp.git
cd daytona-playwright-mcp
uv pip install -e .2. Daytona API 키 받기
daytona.io에서 가입합니다.
대시보드로 이동하여 API 키를 생성합니다.
환경 변수로 설정합니다:
export DAYTONA_API_KEY="your-api-key-here"3. Claude Code 구성
Claude Code MCP 설정(~/.claude/claude_desktop_config.json 또는 Claude Code 설정)에 추가합니다:
{
"mcpServers": {
"daytona-playwright": {
"command": "daytona-playwright-mcp",
"env": {
"DAYTONA_API_KEY": "your-api-key-here"
}
}
}
}또는 uv를 사용하여 소스에서 실행하는 경우:
{
"mcpServers": {
"daytona-playwright": {
"command": "uv",
"args": ["run", "--directory", "/path/to/daytona-playwright-mcp", "daytona-playwright-mcp"],
"env": {
"DAYTONA_API_KEY": "your-api-key-here"
}
}
}
}4. Claude Desktop 구성
Claude Desktop의 경우 구성 파일에 추가합니다:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"daytona-playwright": {
"command": "daytona-playwright-mcp",
"env": {
"DAYTONA_API_KEY": "your-api-key-here"
}
}
}
}사용법
구성이 완료되면 Claude에게 웹 탐색을 요청할 수 있습니다:
"Start a browser and go to https://news.ycombinator.com"
"Take a screenshot of the page"
"Click on the first article link"
"Search for 'AI news' on Google and show me the results"
"Fill out the contact form on example.com with test data"워크플로우
브라우저 시작: Claude가
browser_start를 호출하여 Chromium이 포함된 Daytona 샌드박스를 생성합니다.탐색 및 상호 작용: 탐색, 클릭, 입력 및 기타 도구를 사용합니다.
스크린샷 찍기:
browser_screenshot으로 페이지 내용을 확인합니다.정리: 작업이 끝나면
browser_stop을 호출하여 샌드박스를 삭제합니다.
사용 가능한 도구
브라우저 수명 주기
도구 | 설명 |
| Daytona 샌드박스에서 새 브라우저 세션 시작 |
| 브라우저를 중지하고 샌드박스 정리 |
| 브라우저 실행 여부 확인 |
탐색
도구 | 설명 |
| URL로 이동 |
| 기록에서 뒤로 이동 |
| 기록에서 앞으로 이동 |
| 현재 페이지 새로 고침 |
상호 작용
도구 | 설명 |
| 요소 클릭 (CSS, XPath 또는 텍스트 선택기) |
| 입력 필드에 텍스트 입력 |
| 키보드 키 누르기 (Enter, Tab 등) |
| 요소 위에 마우스 올리기 |
| 드롭다운에서 선택 |
| 페이지 또는 요소 스크롤 |
콘텐츠 추출
도구 | 설명 |
| 스크린샷 찍기 (전체 페이지 또는 요소) |
| 페이지에서 텍스트 콘텐츠 가져오기 |
| HTML 콘텐츠 가져오기 |
| 요소의 속성 가져오기 |
| JavaScript 실행 및 결과 가져오기 |
대기
도구 | 설명 |
| 요소가 나타나거나 사라질 때까지 대기 |
| 탐색이 완료될 때까지 대기 |
탭 관리
도구 | 설명 |
| 새 탭 열기 |
| 열려 있는 모든 탭 나열 |
| 다른 탭으로 전환 |
| 탭 닫기 |
파일 작업
도구 | 설명 |
| 파일 입력에 파일 업로드 |
다양한 전송 방식으로 실행
Stdio (기본값 - Claude Code/Desktop용)
daytona-playwright-mcp
# or
uv run daytona-playwright-mcpHTTP 전송 (원격 연결용)
daytona-playwright-mcp --transport http --host 0.0.0.0 --port 8765그 다음 다음 주소로 연결합니다: http://localhost:8765/mcp
SSE 전송 (레거시)
daytona-playwright-mcp --transport sse --host 0.0.0.0 --port 8765환경 변수
변수 | 설명 | 기본값 |
| Daytona API 키 (필수) | - |
| Daytona API 서버 URL |
|
개발
소스에서 실행
# Clone the repository
git clone https://github.com/YOUR_USERNAME/daytona-playwright-mcp.git
cd daytona-playwright-mcp
# Install dependencies
uv sync
# Run the server
uv run daytona-playwright-mcp테스트 실행
uv run pytest작동 원리
browser_start를 호출하면 서버는 다음을 수행합니다:Daytona 샌드박스 생성 (기본 Python 샌드박스에는 Chromium + Xvfb가 사전 설치됨)
원격 디버깅이 활성화된 상태로 Chromium 실행
TCP 프록시를 시작하여 CDP 포트를 외부로 노출
Daytona의 보안 서명 URL을 통해 CDP(Chrome DevTools Protocol)로 Chromium에 연결
모든 브라우저 명령은 원격 브라우저에 연결된 Playwright API를 통해 실행됩니다.
스크린샷은 PNG 이미지로 캡처되어 MCP의 이미지 콘텐츠 유형을 통해 반환됩니다.
browser_stop을 호출하면 샌드박스가 삭제되고 모든 리소스가 해제됩니다.
문제 해결
"DAYTONA_API_KEY environment variable is not set"
API 키가 셸뿐만 아니라 MCP 서버 설정에도 구성되어 있는지 확인하세요.
브라우저 시작 실패
Daytona API 키가 유효한지 확인하세요.
브라우저 이미지는 처음 사용할 때 프로비저닝하는 데 1~2분이 걸릴 수 있습니다.
필요한 경우
timeout매개변수를 늘리세요.
스크린샷이 나타나지 않음
MCP 이미지를 지원하는 최신 버전의 Claude Code/Desktop을 사용 중인지 확인하세요.
browser_screenshot도구는 자동으로 렌더링되어야 하는 이미지 유형을 반환합니다.
연결 시간 초과
기본 시간 초과는 60초입니다. 연결 속도가 느리거나 처음 이미지를 빌드하는 경우 시간을 늘리세요:
"Start a browser with a 120 second timeout"라이선스
MIT
크레딧
synacktraa의 Daytona browser-in-sandbox 패턴을 기반으로 함
Playwright CDP 연결을 위해 Patchright 사용
MCP 서버를 위해 FastMCP로 구축됨
Daytona 클라우드 샌드박스 기반
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
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/jamesmurdza/playwright-daytona-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server