Skip to main content
Glama

chrome-debug-mcp

License: MIT Rust chrome-debug-mcp MCP server

chrome-debug-mcp는 AI 에이전트와 대규모 언어 모델(LLM)이 **Chrome DevTools Protocol (CDP)**을 통해 Chromium 기반 브라우저를 네이티브로 제어, 자동화, 디버깅할 수 있게 해주는 비동기 Rust 기반 Model Context Protocol (MCP) 서버입니다.

내부적으로 cdp-browser-lite를 사용하며(이 크레이트는 cdp-lite 클라이언트를 다시 내보냅니다), 이 MCP 서버는 무거운 추상화를 피하고 브라우저에 직접 연결하여 편집기나 채팅 인터페이스에서 바로 라이브 디버깅 세션을 가능하게 합니다. v0.2.0부터는 Chrome 프로세스 수명 주기를 자동으로 관리할 수도 있습니다.


✨ 기능

이 서버는 CDP 도메인 및 네이티브 프로세스 관리별로 분류된 도구 모음을 기본적으로 구현합니다:

🛡️ 개인 정보 보호 및 보안

  • 격리된 프로필 (기본값): MCP 서버가 Chrome을 실행할 때마다 시스템 임시 디렉터리에 새롭고 임시적인 사용자 프로필을 생성합니다. 이 프로필은 기본 브라우저 프로필과 완전히 독립적이며, 브라우저가 중지되면 제거됩니다 — 한 세션의 쿠키, 기록, 저장된 비밀번호 또는 세션 데이터가 다음 세션으로 절대 넘어가지 않습니다.

  • 시크릿 모드와 유사한 경험: 기본적으로 개인 계정의 쿠키, 기록, 저장된 비밀번호 또는 세션 데이터가 관리되는 인스턴스와 공유되지 않습니다.

  • 신원 보호: LLM이 브라우저를 완전히 제어하더라도, 명시적으로 승인되지 않는 한 로그인된 세션(예: Google, GitHub, 은행)에 접근하거나 사용자를 사칭할 수 없습니다.

  • 사용자 프로필 모드: --user-profile 플래그를 사용하여 기존 시스템 프로필로 Chrome을 실행합니다. 이는 매 사이트에서 다시 인증하지 않고 LLM이 활성 세션(쿠키, 저장된 로그인 등) 내에서 작업하도록 하려는 경우 유용합니다. LLM이 개인 브라우저 데이터에 접근할 수 있게 되므로 주의해서 사용하세요.

    • ⚠️ --user-profile 참고 사항: Chrome의 단일 인스턴스(singleton) 아키텍처로 인해 브라우저가 이미 열려 있으면 요청을 위임하고 디버깅 포트를 열지 못합니다. MCP를 시작하기 전에 실행 중인 모든 Chrome 인스턴스를 종료하거나, --remote-debugging-port=9222 플래그로 브라우저를 수동으로 시작해야 합니다.

🚀 Chrome 인스턴스 및 탭 관리

  • 다중 인스턴스 지원: 동적 포트에서 각각 자체 격리된 프로필 디렉터리를 가진 여러 개의 동시적이고 독립적인 Chrome 프로세스를 생성하고 제어합니다. --max-instances 플래그로 인스턴스 수를 제한할 수 있습니다.

  • 인스턴스 레지스트리 도구: open_instance, list_instances, close_instance를 사용하여 추가 인스턴스를 생성, 감사, 정리할 수 있습니다. 모든 기존 도구는 선택적 instance_id를 받아 대상 브라우저로 명령을 라우팅합니다.

  • 다중 탭 지원 (신규): 단일 WebSocket 연결을 통해 이벤트 스트림과 명령을 다중화하여 하나의 Chrome 인스턴스 내에서 여러 개의 동시 탭을 제어합니다.

    • 자동 검색: 대상 페이지에서 열린 팝업(예: window.open())은 자동으로 검색, 연결되어 세션의 탭 레지스트리에 등록됩니다.

    • 캐시 격리: 상태 캐시(콘솔 메시지, 네트워크 트래픽, 디버거가 파싱한 스크립트, WebMCP 도구)는 탭별로 엄격히 격리되어 이벤트가 다른 대상으로 새어 나가지 않습니다.

  • 탭 레지스트리 도구 (신규):

    • open_tab — 선택적으로 사용자 지정 레이블과 대상 URL로 새 탭을 엽니다. 다른 도구에서 재사용할 수 있는 tab_id가 포함된 JSON을 반환합니다.

    • list_tabs — 인스턴스의 열려 있고 등록된 모든 탭을 JSON(tab_id, label, target_id, url)과 현재 활성 탭으로 나열합니다. 등록된 탭이 없으면 도구는 인스턴스의 기본 단일 탭 연결로 대체됩니다.

    • close_tab — ID로 특정 탭을 닫고 해당 캐시 상태를 정리합니다. 새 활성 탭을 반환합니다.

    • switch_tab — 도구 호출에서 tab_id가 생략될 때 사용되는 기본 활성 탭을 변경하고, 선택적으로 탭을 전경으로 가져옵니다.

  • LLM 친화적 인터페이스: 수명 주기 도구(open_instance, close_instance, open_tab, list_tabs, switch_tab, close_tab)는 구조화된 JSON을 반환하므로 에이전트가 정규식으로 텍스트를 파싱하지 않고도 호출을 연결할 수 있으며, 설명은 표준 MCP 템플릿(부작용, 전제 조건, 반환 값, 대안)을 따르므로 모델이 이를 올바르게 순위를 매깁니다.

  • 대상 라우팅 (신규): 모든 탭 범위 도구는 선택적 tab_id 매개변수를 받아 특정 탭에 명령을 대상으로 지정하고 캐시 상태를 검색할 수 있습니다. 생략하면 기본 활성 탭이 대상이 됩니다.

  • 격리된 프로필: 기본적으로 새롭고 임시적인 프로필로 Chrome을 실행하여 기본 브라우저와 쿠키, 비밀번호 또는 세션 데이터를 공유하지 않도록 보장합니다.

  • 사용자 프로필 지원: 선택적으로 --user-profile을 사용하여 기존 브라우저 세션과 쿠키를 활용할 수 있습니다.

  • 동적 포트 관리: 기본 포트(9222)가 사용 중인지 자동으로 감지합니다.

    • 포트가 CDP를 노출하는 Chrome 인스턴스(사용자가 시작했거나 다른 관리되는 chrome-debug-mcp 인스턴스)에 의해 점유된 경우 새 인스턴스를 생성하는 대신 자동으로 연결됩니다.

    • 관리되는 프로필은 임시적이므로 포트별 영구 상태가 없습니다. 포트를 공유하는 두 번째 서버는 단순히 동일한 브라우저를 공유합니다(그리고 연결된 인스턴스를 절대 종료하지 않습니다).

  • Docker 및 헤드리스 지원: Docker 환경과 완벽하게 호환됩니다. 컨테이너 내부에서 GUI 없이 Chrome을 실행하려면 --headless 플래그를 사용하세요.

  • 원격/호스트 연결: --host 인수를 사용하여 다른 머신이나 호스트 머신에서 실행 중인 Chrome 인스턴스에 연결합니다(예: 컨테이너 내부에서 --host host.docker.internal).

  • 선택적 자동화 인포바: --enable-automation 플래그를 추가하여 기본 "Chrome is being controlled by automated test software" 메시지를 명시적으로 표시할 수 있습니다. 기본적으로는 더 은밀한 상호작용을 위해 비활성화되어 있습니다.

  • 프록시 지원: restart_chrome는 이제 선택적 proxy_server 인수를 받아 프록시를 통해 트래픽을 라우팅하는 Chrome을 실행할 수 있습니다.

  • 자동 실행: 지정된 포트에서 Chrome이 실행 중인지 자동으로 감지합니다. 실행 중이 아니면 필요한 플래그로 새 인스턴스를 생성합니다.

  • restart_chrome: 관리되는 Chrome 인스턴스를 다시 시작합니다.

  • 기능 프리셋: restart_chrome는 선택적 features 배열을 받아 클라이언트가 재시작 시 추가 브라우저 기능을 선택할 수 있게 합니다. 이는 폐쇄된 집합입니다 — 도구가 명령줄 주입 지점이 되지 않도록 임의의 Chrome 플래그는 의도적으로 허용되지 않습니다:

    • WEB_MCP — 브라우저에 도구를 노출하는 사이트를 위해 실험적 WebMCP 표면(--enable-features=WebMCPTesting, --categoryExperimentalWebmcp=true)을 활성화합니다.

    • WEBGL_SOFTWARE — GPU가 없는 환경(예: 컨테이너)을 위해 SwiftShader 소프트웨어 WebGL(--use-gl=angle, --use-angle=swiftshader, --enable-unsafe-swiftshader)을 강제합니다.

    프리셋은 해당 호출로 시작된 인스턴스에 적용됩니다. 나중에 features를 생략한 restart_chromeproxy_server가 동작하는 방식과 동일하게 프리셋을 지웁니다.

  • stop_chrome: 관리되는 Chrome 인스턴스를 정상적으로 종료합니다(SIGTERM/SIGINT, 실패 시 SIGKILL 폴백).

  • 견고한 수명 주기: 매달린(dangling) Chrome 프로세스 문제를 수정했습니다. 임시 프로필은 중지 시 삭제되며, cdp-browser-lite는 갑작스러운 종료로 남겨진 고아 프로필 디렉터리를 정리합니다. "Chrome didn't shut down correctly" 복원 풍선은 실행 플래그와 프로필 패칭을 통해 표시되지 않습니다.

  • ⚠️ 동작 변경: 관리되는 Chrome 인스턴스는 이제 MCP 서버 프로세스가 종료될 때(크래시 포함) 종료됩니다. 이전에는 관리되는 Chrome이 서버 크래시 후에도 살아남아 재시작 시 다시 연결되었지만, 이제는 종료됩니다. 연결된(사용자가 시작한) Chrome 인스턴스는 절대 종료되지 않습니다.

🔐 프록시 인증

  • enable_proxy_auth: Fetch CDP 도메인에 연결하여 사용자가 제공한 자격 증명(사용자 이름 및 비밀번호)을 공급함으로써 프록시 인증 요청을 자동으로 처리합니다.

  • 견고성 개선: 이제 느린 리지덴셜(residential) 프록시를 위한 30초 타임아웃이 있으며, 기본적으로 Document 요청만 가로채어 백그라운드 요청이 중단되지 않도록 합니다.

  • 사전 워밍업: 기본 탐색 작업 전에 prewarm_url(기본값: http://api.ipify.org?format=json)로 자동 이동하여 프록시 터널을 안정적으로 설정합니다. 선택적으로 특정 resource_type으로 가로채기를 제한할 수 있습니다.

🖱️ 사용자 입력

  • click_element: CSS 선택자를 사용하여 특정 요소에서 네이티브 마우스 클릭을 시뮬레이션합니다. 요소의 중심 좌표를 계산하고 CDP 마우스 이벤트를 직접 전달합니다.

  • fill_input: DOM의 입력 필드를 지정된 텍스트로 채웁니다. CSS 선택자로 요소에 포커스를 맞춘 다음 네이티브 CDP Input.insertText를 사용합니다.

  • scroll: 픽셀, 뷰포트 높이(페이지) 또는 특정 요소로 페이지를 스크롤합니다. 지연 로드 콘텐츠나 무한 스크롤과 상호작용하는 데 필수적입니다.

📡 네트워크 검사

  • get_network_logs: 가로챈 네트워크 요청(REST/HTTP)과 WebSocket 프레임을 검색합니다.

  • 고급 필터링: URL, 리소스 유형, WebSocket 방향 또는 페이로드 콘텐츠로 로그를 필터링합니다.

  • 페이로드 검사: 전체 요청/응답 헤더, REST 응답 본문 및 WebSocket 프레임에 접근합니다.

  • 컨텍스트 최적화: LLM 컨텍스트 창이 넘치지 않도록 선택적 "요약 모드"를 제공합니다.

🪵 콘솔 및 오류

  • get_console_logs: 브라우저에서 콘솔 로그를 검색합니다. 여기에는 console.log/warn/error 호출, 예외 및 네트워크 오류가 포함됩니다. 페이지 스크립트와 오류를 해결하는 데 중요합니다. 선택적 로그 레벨 필터링과 상태를 효율적으로 관리하기 위한 clear 플래그가 포함됩니다.

⚡ 성능 및 프로파일링

  • get_performance_metrics: 브라우저에서 런타임 성능 메트릭(예: JS 힙 크기, DOM 노드, 레이아웃 지속 시간)을 검색합니다. 페이지의 메모리 및 계산 오버헤드에 대한 빠른 스냅샷을 얻는 데 유용합니다.

  • profile_page_performance: 페이지의 성능 추적을 기록하고 분석합니다. Core Web Vitals(FCP, LCP, DCL, Load)를 자동으로 계산하고 상위 Long Tasks(메인 스레드 차단 작업)를 식별합니다. 선택적으로 캐시를 비활성화한 상태로 페이지를 다시 로드하여 콜드 스타트를 시뮬레이션할 수 있습니다.

🌐 페이지 및 런타임 제어

  • capture_screenshot: 현재 페이지(또는 전체 페이지 레이아웃)의 스크린샷을 찍어 base64로 인코딩된 이미지 블록으로 LLM 클라이언트에 반환합니다.

  • navigate: 활성 탭을 특정 URL로 이동합니다.

  • reload: 현재 페이지를 다시 로드합니다.

  • inspect_dom: 전체 HTML 또는 검색 쿼리 주변의 스마트 스니펫을 가져옵니다.

    • 컨텍스트 검색: 특정 텍스트를 검색하고 그 주변의 구성 가능한 문자 수를 가져옵니다.

    • 토큰 효율성: 대형 페이지의 컨텍스트 창 사용량을 대폭 줄입니다.

  • evaluate_js: 페이지 컨텍스트에서 전역적으로 임의의 JavaScript 표현식을 실행합니다.

🐞 라이브 디버깅 및 실행 제어

  • pause_on_load: 디버거를 활성화하고 페이지를 새로고침하여 가장 처음 파싱된 스크립트 문(statement)에서 실행을 일시 중지합니다.

  • search_scripts: 모든 파싱된 스크립트 컨텍스트에서 쿼리를 검색하여 중단점의 줄과 열을 정확히 찾아냅니다.

  • set_breakpoint: script_id, url 또는 정확한 script_hash를 사용하여 정밀한 JS 중단점을 설정합니다.

  • evaluate_on_call_frame: 현재 일시 중지된 디버거 호출 프레임의 로컬 스코프 내에서 직접 JavaScript 표현식을 평가합니다.

  • step_over: 다음 표현식 줄을 건너뜁니다.

  • resume: 일시 중지를 해제하고 실행을 재개합니다.

  • remove_breakpoint: 이전에 설정한 중단점을 제거합니다.

🧩 WebMCP (페이지 노출 도구) WEB_MCP 기능 프리셋으로 Chrome을 다시 시작해야 합니다 (restart_chrome 참조).

  • webmcp_list_tools: 현재 페이지가 브라우저에 노출하는 도구를 나열합니다 (이름, 설명, inputSchema, frameId).

  • webmcp_invoke_tool: 이름으로 페이지 도구를 호출합니다. input은 도구의 inputSchema와 일치하는 JSON 객체 문자열입니다 (예: "{}" 또는 "{\"product\":\"knot\"}"). 결과를 기다리며 최대 30초 동안 차단됩니다.

  • webmcp_get_invocation: invocationId로 호출의 상태(Pending/Completed/Error/Canceled)와 결과를 반환합니다 — 비차단(non-blocking) 방식입니다.

  • webmcp_list_invocations: 세션의 모든 호출을 상태와 함께 나열하며, 선택적으로 status 필터를 적용할 수 있습니다.

    ⚠️ 동의 대화상자: 부작용(클립보드 쓰기, 양식 제출 등)이 있는 페이지 도구는 사용자가 클릭해야 하는 페이지 내 확인 대화상자를 표시할 수 있습니다. 이 경우 webmcp_invoke_toolinvocationId를 포함한 시간 초과 오류를 반환하며, 호출은 Pending 상태로 유지됩니다(취소되지 않음). 사용자가 승인하거나 거부한 후 webmcp_get_invocation으로 폴링할 수 있습니다.

🧪 안정성 및 신뢰성

  • 광범위한 단위 테스트: 특히 debugger 도메인에서 이벤트 처리와 도구 역직렬화의 신뢰성을 보장하는 포괄적인 테스트 스위트.

  • 부작용 없는 테스트: 모든 단위 테스트는 실제 Chrome 인스턴스를 실행하거나 파일 시스템을 수정하지 않고 격리된 환경에서 실행되도록 설계되었습니다.

  • 내부 리팩터링: 장기적인 유지보수성을 보장하기 위해 트레이트(trait)와 의존성 주입을 통해 핵심 로직을 분리했습니다.


Related MCP server: chrome-devtools-mcp

⚙️ 구성

기본적으로 MCP 서버는 cdp-browser-lite의 크로스 플랫폼 검색을 통해 Chrome 실행 파일을 찾습니다: CHROME_PATH를 먼저 확인하고(절대 우선순위), 그 다음 PATH의 일반적인 바이너리(google-chrome, google-chrome-stable, chromium, chromium-browser), 마지막으로 OS별 위치(macOS의 /Applications/Google Chrome.app/..., Windows의 chrome.exe 설치 디렉터리, Linux의 /usr/bin/google-chrome, /opt/google/chrome/chrome, /snap/bin/chromium)를 확인합니다. 이는 서버가 이전에 하드코딩했던 경로의 엄격한 상위 집합입니다.

인수:

  • --local: 탐색을 로컬 주소로만 제한합니다 (localhost, 127.0.0.1, 192.168.x.x 또는 *.local). 보안을 위해 적극 권장됩니다.

  • --headless: Chrome을 헤드리스 모드로 실행합니다(GUI 없음). Docker 또는 서버 환경에 필수적입니다.

  • --user-profile: 새 프로필 대신 기본 시스템 사용자 프로필(세션, 쿠키 등)을 사용합니다. 연구 세션 중 반복적인 로그인을 피하는 데 유용합니다.

  • --host: Chrome 인스턴스의 대상 호스트를 지정합니다 (기본값: 127.0.0.1). 컨테이너에서 호스트 머신에 연결하려면 host.docker.internal을 사용하세요.

  • --port: 원격 디버깅 포트를 지정합니다 (기본값: 9222).

  • --enable-automation: "자동화 소프트웨어에 의해 제어됨" 정보 표시줄을 활성화합니다.

  • --max-instances: 동시 Chrome 인스턴스의 최대 수를 제한합니다 (기본값: 8). --user-profile이 설정된 경우 무시됩니다.

환경 변수:

  • CHROME_PATH: Chrome 실행 파일의 경로를 명시적으로 정의합니다.


🐳 Docker 및 헤드리스 사용 (v1.0.0)

chrome-debug-mcp는 완전히 컨테이너 지원이 가능합니다. 이를 통해 LLM을 위한 여러 강력한 사용 사례가 가능합니다:

1. 클라우드 배포 (Glama 이용)

이 서버를 사용하는 가장 쉬운 방법입니다. Glama는 Chrome이 사전 설치된 Docker 컨테이너를 생성합니다. LLM은 로컬 설정 없이 즉시 클라우드의 브라우저에 접근할 수 있습니다.

2. 격리된 로컬 사용

호스트 머신에 Chrome이나 Rust를 설치하지 않으려면 모든 것을 Docker 내부에서 실행하세요:

docker build -t chrome-mcp .
docker run -i --rm chrome-mcp --headless

3. 하이브리드 모드 (컨테이너가 호스트 제어)

MCP 서버는 안전한 Docker 컨테이너 내부에서 실행되지만 실제 데스크톱의 Chrome 인스턴스를 제어합니다. 이를 통해 LLM이 실제 브라우징 세션에서 여러분을 도울 수 있습니다:

  1. 로컬 Chrome을 --remote-debugging-port=9222로 시작하세요.

    • 참고: 이 모드에서 프록시 지원이 필요하면 Chrome도 --proxy-server="http://your-proxy:port" 플래그와 함께 시작해야 합니다.

  2. 컨테이너를 실행하세요:

# On macOS/Windows
docker run -i --rm chrome-mcp --host host.docker.internal

🚀 빠른 시작

MCP 서버를 네이티브로 설치하고 실행하는 가장 쉬운 방법은 Rust의 Cargo를 사용하거나 사전 컴파일된 바이너리를 다운로드하는 것입니다. 더 이상 Chrome을 수동으로 시작할 필요가 없습니다. MCP 서버가 올바른 디버깅 플래그로 보이는 Chrome 인스턴스를 자동으로 실행합니다.

1. 설치

옵션 A: 사전 컴파일된 바이너리 (권장) Releases 페이지로 이동하여 플랫폼(macOS, Windows, Linux)에 맞는 네이티브 실행 파일을 다운로드하세요. Windows용 .msi 설치 프로그램과 UNIX 시스템용 셸 스크립트를 제공합니다.

옵션 B: Cargo로 설치

cargo install --git https://github.com/raultov/chrome-debug-mcp

옵션 C: 셸 스크립트로 설치 (Unix)

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/raultov/chrome-debug-mcp/releases/latest/download/chrome-debug-mcp-installer.sh | sh

2. MCP 클라이언트 구성

이 서버는 Claude Code, agy, codex와 함께 작동하도록 완전히 테스트되고 확인되었습니다. AI 클라이언트가 다음 모드 중 하나를 사용하여 서버를 실행하도록 구성하세요.

범용 구성 (JSON)

대부분의 MCP 클라이언트(Claude Code 또는 JSON 기반 구성)는 이 구조를 사용합니다. 세 가지 주요 사용 모드는 다음과 같습니다:

{
  "mcpServers": {
    "chrome-debug-mcp": {
      "command": "chrome-debug-mcp",
      "args": [],
      "env": {}
    },
    "chrome-docker": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "chrome-debug-mcp:v1.0.9", "--headless"]
    },
    "chrome-docker-hybrid": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "--net=host",
        "chrome-debug-mcp:v1.0.9",
        "--host",
        "127.0.0.1"
      ]
    }
  }
}

참고: Linux에서 --net=host를 사용하는 chrome-docker-hybrid 모드는 컨테이너가 127.0.0.1의 로컬 Chrome 인스턴스에 접근할 수 있도록 하는 권장 방법입니다.

Claude Code

Claude Code에서 서버를 추가하고 활성화하려면:

claude mcp add chrome-debug-mcp chrome-debug-mcp

3. 사용

연결되면 AI 에이전트가 첫 번째 명령이 실행될 때 Chrome 시작을 자동으로 처리합니다. 브라우저는 계속 표시되므로 디버깅 과정을 시각적으로 추적할 수 있습니다.

4. 에이전트 워크플로 및 다중 인스턴스 가이드

LLM은 몇 가지 최적화된 패턴으로 이 서버를 운영할 수 있습니다:

A. 격리된 다중 인스턴스 시나리오

자동화된 브라우저 세션을 실행할 때 쿠키 오염이나 탭 충돌을 방지하기 위해 별도의 Chrome 프로세스를 시작할 수 있습니다:

  1. label: "user-session-1" 또는 선택적 프록시 서버 구성으로 open_instance를 호출하세요. 고유한 instance_id(예: chrome-2)가 반환됩니다.

  2. navigate, evaluate_js 또는 webmcp_list_tools와 같은 다운스트림 도구에 instance_id를 명시적으로 전달하세요.

  3. 완료되면 close_instance를 사용하여 리소스를 정리하세요.

B. WebMCP 사용

WebMCP를 지원하는 페이지(예: https://www.knot.kz/#/agent-tools)로 이동하는 경우:

  1. 웹 페이지에 등록된 도구는 webmcp_list_tools를 사용하여 검색할 수 있습니다.

  2. 기본적으로 안전을 위해 WEB_MCP는 비활성화되어 있습니다. 도구 목록이 비어 있으면 features: ["WEB_MCP"]restart_chrome을 호출한 다음 reload를 호출하세요.

  3. webmcp_invoke_tool을 사용하여 입력 JSON 인수를 제공하면서 페이지 도구를 호출하세요. 동의 대화상자가 웹 페이지의 실행을 일시 중지하면 도구는 30초 후에 시간 초과되지만 호출은 계속 대기 상태로 유지됩니다. webmcp_get_invocation을 사용하여 결과를 폴링할 수 있습니다.


🛠 컴파일 (소스에서)

소스에서 컴파일하려면:

git clone https://github.com/raultov/chrome-debug-mcp
cd chrome-debug-mcp
cargo build --release

결과 바이너리는 target/release/chrome-debug-mcp에 위치합니다. 이 프로젝트는 cargo-dist를 활용하여 GitHub Actions를 통해 크로스 플랫폼 네이티브 배포를 원활하게 처리합니다.


📖 왜 이 MCP 서버인가?

Puppeteer/Playwright 래퍼와 같은 다른 통합 서버는 고수준이고 무거우며 일반적으로 실제 대화형 단계별 디버거를 노출하는 데 실패합니다. 이 MCP 서버는 원시 CDP 메시지를 사용하여 LLM 도구에 1:1로 매핑하므로, 지능형 에이전트가 말 그대로 JS를 단계별로 실행하고, 로컬 스코프 변수를 네이티브로 읽고, V8 컴파일러 컨텍스트 내부를 검색하고, 스크립트가 충돌하는 이유를 정확히 이해할 수 있습니다.


📜 라이선스

이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Live browser debugging for AI assistants — DOM, console, network via MCP.

  • A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…

  • A paid remote MCP for AI agent browser DevTools MCP, built to return verdicts, receipts, usage logs,

View all MCP Connectors

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/raultov/chrome-debug-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server