local-only server
The server can only run on the client’s local machine because it depends on local resources.
Integrations
Enables execution of JavaScript code on web pages through the execute_javascript method, allowing interaction with dynamic web content.
MCP 웹 브라우저 서버
Playwright가 제공하는 MCP(Model Context Protocol)를 위한 고급 웹 브라우징 서버로, 유연하고 안전한 API를 통해 헤드리스 브라우저 상호작용을 지원합니다.
🌐 특징
- 헤드리스 웹 브라우징 : SSL 인증서 검증 우회를 통해 모든 웹사이트 탐색
- 전체 페이지 콘텐츠 추출 : 동적으로 로드된 JavaScript를 포함한 전체 HTML 콘텐츠를 검색합니다.
- 다중 탭 지원 : 여러 브라우저 탭을 만들고, 관리하고, 전환합니다.
- 고급 웹 상호작용 도구 :
- 텍스트 콘텐츠 추출
- 페이지 요소 클릭
- 양식 필드에 텍스트 입력
- 스크린샷 캡처
- 필터링 기능을 사용하여 페이지 링크 추출
- 어느 방향으로든 페이지를 스크롤하세요
- 페이지에서 JavaScript 실행
- 페이지 새로 고침
- 탐색이 완료될 때까지 기다리세요
- 리소스 관리 : 비활성 후 사용되지 않는 리소스를 자동으로 정리합니다.
- 향상된 페이지 정보 : 현재 페이지에 대한 자세한 메타데이터를 가져옵니다.
🚀 빠른 시작
필수 조건
- 파이썬 3.10+
- MCP SDK
- 극작가
설치
지엑스피1
Claude Desktop 구성
claude_desktop_config.json
에 다음을 추가하세요:
Copy
💡 사용 예시
기본 웹 탐색
Copy
웹 상호작용
Copy
스크린샷 캡처
Copy
링크 추출
Copy
멀티탭 브라우징
Copy
고급 상호작용
Copy
🛡️ 보안 기능
- SSL 인증서 유효성 검사 우회
- 안전한 브라우저 컨텍스트 관리
- 사용자 정의 사용자 에이전트 구성
- 오류 처리 및 포괄적인 로깅
- 구성 가능한 시간 초과 설정
- CSP 바이패스 제어
- 쿠키 도용 방지
🔧 문제 해결
일반적인 문제
- SSL 인증서 오류 : 자동으로 우회됨
- 느린 페이지 로드 :
browse_to()
메서드에서 시간 초과 조정 - 요소를 찾을 수 없음 : 선택기를 주의 깊게 확인하세요
- 브라우저 리소스 사용량 : 비활성 기간 후 자동 정리
벌채 반출
모든 중요한 이벤트는 자세한 정보와 함께 기록되어 디버깅이 쉽습니다.
📋 도구 매개변수
browse_to(url: str, context: Optional[Any] = None)
url
: 이동할 웹사이트context
: 선택적 컨텍스트 객체(현재 사용되지 않음)
extract_text_content(selector: Optional[str] = None, context: Optional[Any] = None)
selector
: 특정 콘텐츠를 추출하는 선택적 CSS 선택기context
: 선택적 컨텍스트 객체(현재 사용되지 않음)
click_element(selector: str, context: Optional[Any] = None)
selector
: 클릭할 요소의 CSS 선택자context
: 선택적 컨텍스트 객체(현재 사용되지 않음)
get_page_screenshots(full_page: bool = False, selector: Optional[str] = None, context: Optional[Any] = None)
full_page
: 전체 페이지 스크린샷 캡처selector
: 스크린샷을 찍을 선택 요소context
: 선택적 컨텍스트 객체(현재 사용되지 않음)
get_page_links(filter_pattern: Optional[str] = None, context: Optional[Any] = None)
filter_pattern
: 링크를 필터링하기 위한 선택적 텍스트 패턴context
: 선택적 컨텍스트 객체(현재 사용되지 않음)
input_text(selector: str, text: str, context: Optional[Any] = None)
selector
: 입력 요소의 CSS 선택자text
: 입력할 텍스트context
: 선택적 컨텍스트 객체(현재 사용되지 않음)
create_new_tab(url: Optional[str] = None, context: Optional[Any] = None)
url
: 새 탭에서 이동할 선택적 URLcontext
: 선택적 컨텍스트 객체(현재 사용되지 않음)
switch_tab(tab_id: str, context: Optional[Any] = None)
tab_id
: 전환할 탭의 IDcontext
: 선택적 컨텍스트 객체(현재 사용되지 않음)
list_tabs(context: Optional[Any] = None)
context
: 선택적 컨텍스트 객체(현재 사용되지 않음)
close_tab(tab_id: Optional[str] = None, context: Optional[Any] = None)
tab_id
: 닫을 탭의 선택적 ID(기본값은 현재 탭)context
: 선택적 컨텍스트 객체(현재 사용되지 않음)
refresh_page(context: Optional[Any] = None)
context
: 선택적 컨텍스트 객체(현재 사용되지 않음)
get_page_info(context: Optional[Any] = None)
context
: 선택적 컨텍스트 객체(현재 사용되지 않음)
scroll_page(direction: str = "down", amount: str = "page", context: Optional[Any] = None)
direction
: 스크롤 방향('위', '아래', '왼쪽', '오른쪽')amount
: 스크롤할 양('페이지', '절반' 또는 숫자)context
: 선택적 컨텍스트 객체(현재 사용되지 않음)
wait_for_navigation(timeout_ms: int = 10000, context: Optional[Any] = None)
timeout_ms
: 대기할 최대 시간(밀리초)context
: 선택적 컨텍스트 객체(현재 사용되지 않음)
execute_javascript(script: str, context: Optional[Any] = None)
script
: 실행할 JavaScript 코드context
: 선택적 컨텍스트 객체(현재 사용되지 않음)
🤝 기여하기
기여를 환영합니다! 풀 리퀘스트를 제출해 주세요.
개발 설정
Copy
📄 라이센스
MIT 라이센스
🔗 관련 프로젝트
💬 지원
문제가 있거나 질문이 있으시면 GitHub에서 문제를 열어 주세요.
You must be authenticated.
보안 API를 통해 헤드리스 브라우저 상호작용을 가능하게 하는 고급 웹 브라우징 서버로, 탐색, 콘텐츠 추출, 요소 상호작용, 스크린샷 캡처와 같은 기능을 제공합니다.
- 🌐 Features
- 🚀 Quick Start
- 💡 Usage Examples
- 🛡️ Security Features
- 🔧 Troubleshooting
- 📋 Tool Parameters
- browse_to(url: str, context: Optional[Any] = None)
- extract_text_content(selector: Optional[str] = None, context: Optional[Any] = None)
- click_element(selector: str, context: Optional[Any] = None)
- get_page_screenshots(full_page: bool = False, selector: Optional[str] = None, context: Optional[Any] = None)
- get_page_links(filter_pattern: Optional[str] = None, context: Optional[Any] = None)
- input_text(selector: str, text: str, context: Optional[Any] = None)
- create_new_tab(url: Optional[str] = None, context: Optional[Any] = None)
- switch_tab(tab_id: str, context: Optional[Any] = None)
- list_tabs(context: Optional[Any] = None)
- close_tab(tab_id: Optional[str] = None, context: Optional[Any] = None)
- refresh_page(context: Optional[Any] = None)
- get_page_info(context: Optional[Any] = None)
- scroll_page(direction: str = "down", amount: str = "page", context: Optional[Any] = None)
- wait_for_navigation(timeout_ms: int = 10000, context: Optional[Any] = None)
- execute_javascript(script: str, context: Optional[Any] = None)
- 🤝 Contributing
- 📄 License
- 🔗 Related Projects
- 💬 Support