visual-hunt-mcp
visual-hunt-mcp
visual-hunt-mcp는 macOS용 로컬 TypeScript MCP 서버로, 기존 Chrome 세션에 CDP로 연결하여 Codex/Claude가 포스터, 배경화면, 영감 보드를 위한 시각적으로 강력한 이미지 후보를 찾도록 돕습니다.
v0.4.0 · 11개 도구 · 엔드투엔드 감사 완료 · 15/15 행동 테스트 통과 · 실제 10개 주제 스트레스 테스트에서 108개 이미지 다운로드 · 평가 제품군 및 전체 테스트 하네스 포함.
이 서버는 다음을 위해 설계되었습니다:
McpServer및registerTool을 사용하여 공식@modelcontextprotocol/sdk활용chromium.connectOverCDP(...)를 통해 로컬 Chrome 인스턴스에 연결수동 지원 검토를 선택할 때 로컬에 로그인된 브라우저 프로필 재사용
페이월, 로그인 월, CAPTCHA 또는 플랫폼 제어 우회 방지
후보 메타데이터 반환 및 선택적으로 MCP 서버의 현재 작업 디렉토리 아래에 생성된 프로젝트 폴더로 이미지 파일 다운로드
CDP를 사용하는 이유
이 프로젝트는 새로운 자동화 브라우저를 실행하는 대신 Chrome DevTools Protocol을 사용하여 MCP 서버가 사용자가 제어하는 로컬 Chrome 프로필을 재사용할 수 있도록 합니다. 이를 통해 브라우저 세션에 이미 로그인된 상태를 유지하면서 MCP 서버는 Mac에서 로컬로 작동하므로 Instagram 및 샤오홍슈(Xiaohongshu) 워크플로우를 더 실용적으로 만들 수 있습니다.
Related MCP server: unsplash-mcp
Instagram / 샤오홍슈가 수동 지원 방식인 이유
Instagram과 샤오홍슈는 종종 로그인이 필요하고 레이아웃이 자주 변경되며 플랫폼 제어 뒤에 콘텐츠를 숨길 수 있습니다. 이 MCP는 의도적으로 연결된 로컬 Chrome에서 해당 페이지를 열고, 사용 가능한 경우에만 표시되는 공개 이미지 후보를 추출합니다. 로그인, 속도 제한 또는 액세스 제한을 우회하려고 시도하지 않습니다.
다운로드 범위
이 프로젝트는 이제 Unsplash, Pexels, Pixabay, 배경화면 사이트와 같은 소스의 이미지 파일과, 연결된 Chrome 세션이 액세스할 수 있을 때 수동 지원 소셜 브라우징에서 노출되는 표시 가능한 이미지 URL을 다운로드할 수 있습니다. 몇 가지 안전 장치가 여전히 적용됩니다:
Google 호스팅 미리보기 및 Google 지도 이미지는 차단된 상태로 유지됩니다.
Instagram 및 샤오홍슈는 여전히 연결된 Chrome 로그인 상태와 페이지가 실제로 노출하는 표시 가능한 이미지 URL에 의존합니다.
재사용 전 라이선스 확인 책임은 사용자에게 있습니다.
save_candidates_json은 메타데이터 전용으로 유지되며,download_candidate_images는 이미지 파일과 다운로드 매니페스트를 작성합니다.
기능
MCP 도구 (11개)
도구 | 신뢰성 | 참고 |
| ★★★★★ | 대표 도구. 6개 소스 세트(Unsplash, Pexels, Pixabay, Wikimedia, Wallhaven, Alpha Coders) 엄선. 스트레스 테스트에서 100% 주제 커버리지. |
| ★★★★★ | 여행/디자인 주제를 위한 대표 도구. 100% 주제 커버리지. |
| ★★★ | 수동 지원. 대부분의 이미지는 설계상 다운로드가 차단됨 — 시각적 영감 용도로 사용. |
| ★★ | 수동 지원. Pinterest는 대부분의 검색에서 로그인 모달을 표시함; Chrome을 통해 로그인한 후 |
| ★★ | 수동 지원. Pinterest와 동일한 로그인 월 패턴. |
| ★★ | Google의 지연 로드 |
| ★★★★ | 범용 추출기. Wikipedia, 블로그, 브랜드 페이지에서 작동. |
| ★★★★★ | 페이지에서 수동 스크롤/로그인 후 재추출. |
| ★★★★★ | 정리. 멱등성 보장. |
| ★★★★★ | 메타데이터 전용 저장. |
| ★★★★★ | 연결된 Chrome의 referer + user-agent를 사용하여 다운로드. Google 호스팅 미리보기는 설계상 차단됨. |
기본 소스 세트 (v0.4.0 엄선)
기본 search_wallpaper_sites 소스 목록은 v0.4.0에서 13개 소스에서 실제 스트레스 테스트에서 80% 이상의 주제에 대해 다운로드 가능한 후보를 반환한 6개 소스로 축소되었습니다:
Unsplash — 현대적인 에디토리얼 사진
Pexels — 현대적인 에디토리얼 사진
Pixabay — 현대적인 에디토리얼 사진
Wikimedia Commons — 랜드마크, 건축, 퍼블릭 도메인
Wallhaven — 상위 무료 4K/8K 배경화면
Alpha Coders / Wallpaper Abyss — 상위 무료 4K/8K 배경화면
제외된 소스에 대한 어댑터는 여전히 포함되어 있습니다. 필요할 때 명시적으로 전달하세요: sites: ["openverse.org", "loc.gov", "images.nasa.gov", "rawpixel.com", "publicdomainpictures.net", "wallpaperscraft.com", "hdqwalls.com"].
후보 점수 산정
각 후보는 다음을 기반으로 가벼운 scoreHint를 받습니다:
이미지 크기
일반적인 포스터/배경화면 비율과의 근접성
poster,cinematic,wallpaper,4k,8k,travel,film,landscape와 같은 제목 또는 alt 텍스트 키워드
설치
cd /Users/lanston/Desktop/Codex/visual-hunt-mcp
npm installMCP를 위한 Chrome 시작
npm run chrome:debug이 도우미는 Chrome 원격 디버깅을 127.0.0.1에만 바인딩합니다. CDP 포트를 공개적으로 노출하지 않습니다.
원시 스크립트를 선호하는 경우:
chmod +x scripts/start-chrome-mcp.sh
./scripts/start-chrome-mcp.sh검증 워크플로우
Chrome이 실행된 후 결정론적 MCP 스모크 테스트를 실행합니다:
npm run smoke11개 도구 전체를 포괄하는 포괄적인 행동 스윕(스키마 강제, 쿼리 최적화, 수동 페이지 수명 주기, 로그인 월 억제, 오탐지 필터, 보안 가드)을 수행하려면:
node scripts/full-test.mjs # 15 cases including live Chrome paths
node scripts/full-test.mjs --skip-live # 10 cases, fast, no browser depsnpm run smoke가 검증하는 내용:
로컬 MCP 서버가 현재
dist/출력에서 stdio를 통해 시작됨tools/list가 예상 도구 세트를 노출함open_url_and_extract_images가 로컬 픽스처 페이지에서 표시 가능한 후보를 추출할 수 있음extract_manual_page_candidates및close_manual_page가 수동 지원 후속 흐름을 위해 노출됨save_candidates_json이 후보 메타데이터를 임시 출력 루트에 작성함download_candidate_images가 허용된 로컬 이미지를 다운로드하고 차단된 Google 호스팅 후보를 명확한 이유와 함께 건너뜀
스모크 테스트는 임시 VISUAL_HUNT_OUTPUT_ROOT를 사용하며 성공 시 정리합니다. 검사를 위해 아티팩트를 유지하려면:
npm run smoke -- --keep-output연결된 Chrome 세션을 통해 라이브 Google 이미지 및 배경화면 검색 흐름을 통과하는 더 높은 신뢰도의 테스트를 수행하려면:
npm run smoke:live안정적인 기본 검증 명령으로 npm run validate를 사용하세요. 이 명령은 먼저 npm run build를 실행한 다음 결정론적 스모크 테스트를 실행합니다.
로컬에서 MCP 실행
npm run dev프로덕션 스타일 사용:
npm run build
node dist/index.jsClaude Desktop 설정
{
"mcpServers": {
"visual-hunt": {
"command": "node",
"args": [
"/Users/lanston/Desktop/Codex/visual-hunt-mcp/dist/index.js"
],
"env": {
"CHROME_CDP_ENDPOINT": "http://127.0.0.1:9222"
}
}
}
}예시 프롬프트
Use visual-hunt to search_google_images for "cinematic Oahu Hawaii sunset travel poster 8k", limit 10.Use visual-hunt to search_wallpaper_sites for "dark luxury black gold abstract 8k wallpaper", limit 15.Use visual-hunt to open_xiaohongshu_visual_search for "夏威夷 绝美 海报 壁纸 旅行 摄影", limit 10.Use visual-hunt to download_candidate_images for project "oahu-poster-board" using the candidates from the last search, limit 5.Use visual-hunt to extract_manual_page_candidates for the manualPageId from the Xiaohongshu search after I log in or scroll more.참고
로그는
stderr에만 기록되므로stdout의 MCP JSON-RPC는 깨끗하게 유지됩니다.Chrome은 원격 디버깅이 활성화된 상태로 이미 실행 중이어야 합니다.
출력 폴더는 기본적으로 MCP 서버의 현재 작업 디렉토리 아래에 생성됩니다. 예:
/path/to/visual-hunt-mcp/<project>/images.다른 곳에 다운로드하려면
VISUAL_HUNT_OUTPUT_ROOT로 출력 루트를 재정의하세요.save_candidates_json은 메타데이터를<output-root>/<project>/candidates.json에 작성합니다.download_candidate_images는 이미지 파일을<output-root>/<project>/images에, 매니페스트를<output-root>/<project>/downloads.json에 작성합니다.scripts/smoke-test.mjs는 로컬 서버 프로세스에 대해 MCP 계약을 엔드투엔드로 검증하는 가장 빠른 방법입니다.scripts/smoke-test.mjs는 현재dist/출력을 통해 로컬 서버를 검증하고 아티팩트에 임시 출력 루트를 사용합니다.서버는 자격 증명을 저장하지 않습니다.
서버는 임의의 셸 명령을 실행하지 않습니다.
환경 변수
변수 | 기본값 | 효과 |
|
| Chrome 원격 디버깅 엔드포인트 |
|
| 다운로드된 이미지 및 매니페스트를 위한 루트 디렉토리 |
|
| 페이지별 탐색/추출 타임아웃 |
|
| 수동 페이지 레지스트리의 항목 TTL; |
|
| 수동 페이지 레지스트리 크기에 대한 하드 캡; 가장 오래된 항목부터 제거 |
| 설정 안 됨 |
|
스모크 테스트를 넘어서는 수동 확인
제품의 라이브/수동 지원 부분을 확인하고 싶을 때, npm run smoke 이후에 수행할 가장 가치 있는 후속 작업은 다음과 같습니다:
npm run smoke:live일상적으로 사용할 Chrome 프로필로
open_instagram_visual_search실행로그인이 필요한 경우 동일한 프로필로
open_xiaohongshu_visual_search실행수동 검토 메모와 우회 방지 동작이 올바르게 보이는지 확인하기 위해
open_google_maps_visual_search실행
정확한 Mac 명령
cd /Users/lanston/Desktop/Codex/visual-hunt-mcp
npm install
npm run chrome:debug
npm run smoke
npm run smoke:liveMaintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityDmaintenanceMCP server to search and download stock images from Pexels, Unsplash, and Pixabay2283MIT
- AlicenseAqualityDmaintenanceAn MCP server for searching and retrieving photos from Unsplash with proper attribution, designed for LLMs building content pages.316MIT
- AlicenseAqualityCmaintenanceMCP server that enables searching and downloading Unsplash photos and collections.4MIT
- AlicenseAqualityAmaintenanceProduction-ready Model Context Protocol (MCP) server for the Unsplash API — search photos, fetch details, and stay compliant with Unsplash attribution & download-tracking guidelines. Unofficial; not affiliated with or endorsed by Unsplash.21941MIT
Related MCP Connectors
Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.
A TypeScript MCP server for Home Assistant, enabling programmatic management of entities, automati…
MCP server for interacting with the Supabase platform
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/CTlanston/visual-hunt-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server