Skip to main content
Glama
jamesmurdza

Daytona Playwright MCP Server

by jamesmurdza

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 키 받기

  1. daytona.io에서 가입합니다.

  2. 대시보드로 이동하여 API 키를 생성합니다.

  3. 환경 변수로 설정합니다:

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"

워크플로우

  1. 브라우저 시작: Claude가 browser_start를 호출하여 Chromium이 포함된 Daytona 샌드박스를 생성합니다.

  2. 탐색 및 상호 작용: 탐색, 클릭, 입력 및 기타 도구를 사용합니다.

  3. 스크린샷 찍기: browser_screenshot으로 페이지 내용을 확인합니다.

  4. 정리: 작업이 끝나면 browser_stop을 호출하여 샌드박스를 삭제합니다.

사용 가능한 도구

브라우저 수명 주기

도구

설명

browser_start

Daytona 샌드박스에서 새 브라우저 세션 시작

browser_stop

브라우저를 중지하고 샌드박스 정리

browser_status

브라우저 실행 여부 확인

탐색

도구

설명

browser_navigate

URL로 이동

browser_back

기록에서 뒤로 이동

browser_forward

기록에서 앞으로 이동

browser_refresh

현재 페이지 새로 고침

상호 작용

도구

설명

browser_click

요소 클릭 (CSS, XPath 또는 텍스트 선택기)

browser_type

입력 필드에 텍스트 입력

browser_press

키보드 키 누르기 (Enter, Tab 등)

browser_hover

요소 위에 마우스 올리기

browser_select

드롭다운에서 선택

browser_scroll

페이지 또는 요소 스크롤

콘텐츠 추출

도구

설명

browser_screenshot

스크린샷 찍기 (전체 페이지 또는 요소)

browser_get_text

페이지에서 텍스트 콘텐츠 가져오기

browser_get_html

HTML 콘텐츠 가져오기

browser_get_attribute

요소의 속성 가져오기

browser_evaluate

JavaScript 실행 및 결과 가져오기

대기

도구

설명

browser_wait_for_selector

요소가 나타나거나 사라질 때까지 대기

browser_wait_for_navigation

탐색이 완료될 때까지 대기

탭 관리

도구

설명

browser_new_tab

새 탭 열기

browser_list_tabs

열려 있는 모든 탭 나열

browser_switch_tab

다른 탭으로 전환

browser_close_tab

탭 닫기

파일 작업

도구

설명

browser_upload_file

파일 입력에 파일 업로드

다양한 전송 방식으로 실행

Stdio (기본값 - Claude Code/Desktop용)

daytona-playwright-mcp
# or
uv run daytona-playwright-mcp

HTTP 전송 (원격 연결용)

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_KEY

Daytona API 키 (필수)

-

DAYTONA_API_URL

Daytona API 서버 URL

https://app.daytona.io/api

개발

소스에서 실행

# 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

작동 원리

  1. browser_start를 호출하면 서버는 다음을 수행합니다:

    • Daytona 샌드박스 생성 (기본 Python 샌드박스에는 Chromium + Xvfb가 사전 설치됨)

    • 원격 디버깅이 활성화된 상태로 Chromium 실행

    • TCP 프록시를 시작하여 CDP 포트를 외부로 노출

    • Daytona의 보안 서명 URL을 통해 CDP(Chrome DevTools Protocol)로 Chromium에 연결

  2. 모든 브라우저 명령은 원격 브라우저에 연결된 Playwright API를 통해 실행됩니다.

  3. 스크린샷은 PNG 이미지로 캡처되어 MCP의 이미지 콘텐츠 유형을 통해 반환됩니다.

  4. 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

크레딧

Install Server
A
security – no known vulnerabilities
F
license - not found
A
quality - A tier

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