Obscura 헤드리스 브라우저 엔진을 활용한 개인 MCP 서버 — Claude Desktop 연동용
my-obscura-mcp
Rust 헤드리스 브라우저 엔진 Obscura를 활용한 개인 MCP 서버 — Claude Desktop 연동용
개요
Obscura Rust 헤드리스 브라우저 엔진을 MCP 서버로 래핑한 개인 프로젝트.
Claude Desktop에서 웹 페이지 탐색·추출·인터랙션을 직접 수행할 수 있습니다.
제공 도구
| 도구 | 설명 |
|------|------|
| browser_navigate | URL 탐색. 다른 도구 사용 전 반드시 먼저 호출 |
| browser_evaluate | 현재 페이지에서 JS 표현식 평가 |
| browser_get_page_status | 현재 URL / 제목 / 라이프사이클 상태 |
| browser_get_html | 페이지 원본 HTML |
| browser_get_markdown | 페이지 → Markdown 변환 |
| browser_get_readable_content | 광고·네비게이션 제거 후 본문 텍스트 + 단어 수 |
| browser_get_metadata | 제목, 설명, OG 태그, Twitter Card, 카노니컬 URL 등 |
| browser_get_links | 페이지 내 전체 링크 (절대 URL 변환 포함) |
| browser_get_forms | 폼 필드 구조 (입력 타입, 레이블, 셀렉트 옵션 등) |
| browser_get_table_data | 표 → 헤더 키 기반 구조화 JSON |
| browser_get_structured_data | JSON-LD / OpenGraph / microdata 추출 |
| browser_get_element_text | CSS 셀렉터로 요소 텍스트 추출 |
| browser_get_element_attribute | CSS 셀렉터로 속성값 읽기 (href, src, data-* 등) |
| browser_click | CSS 셀렉터로 요소 클릭 |
| browser_type_text | 입력 필드에 텍스트 입력 (input/change 이벤트 발생) |
| browser_select | <select> 드롭다운 옵션 선택 (값 또는 텍스트로 매칭) |
빌드
Rust 1.75+ 필요. 첫 빌드 시 V8을 소스에서 컴파일 (~5분, 이후 캐시됨).
cargo build --release
Claude Desktop 연동
claude_desktop_config.json에 추가:
{
"mcpServers": {
"obscura": {
"command": "/path/to/obscura",
"args": ["mcp"]
}
}
}
/path/to/obscura를 빌드된 바이너리 경로로 교체하세요.
스택
- Rust 1.75+ · Tokio
current_thread - Deno Core / V8 (JS 실행)
- html5ever (HTML5 파싱)
- rmcp (MCP 프레임워크)
라이선스
Apache 2.0