Skip to main content
Glama
AngelN-Halo

MCP Web Search Pro

by AngelN-Halo

MCP Web Search Pro

확장된 자체 호스팅 웹 리서치 서버로, MCP 호환 클라이언트를 위한 도구입니다. AI 어시스턴트에게 웹 페이지 탐색, 읽기 가능한 콘텐츠 추출, JavaScript 애플리케이션 렌더링, 페이지를 사용할 수 없을 때 Internet Archive 활용, YouTube 자막 읽기를 위한 도구를 제공합니다.

이 서비스는 로컬 또는 신뢰할 수 있는 네트워크 환경에서 사용하도록 설계되었습니다. 상태 비저장(stateless) 방식이며, API 키가 필요 없고, 포트 8082에서 MCP Streamable HTTP 전송 방식을 노출합니다. 다른 포트에서 더 가벼운 웹 검색 MCP 서버와 함께 실행할 수 있습니다.

포트 8082의 별도 컨테이너로 실행되며, 가벼운 mcp-web-search(포트 8081)와 함께 사용됩니다. 작업에 맞는 클라이언트를 선택하여 사용하세요. Pro 버전이 느리게 느껴지더라도 가벼운 버전은 그대로 사용할 수 있습니다.

기능

  • DuckDuckGo를 통한 웹 검색, 결과 제한 및 지역 선택 기능.

  • 탐색 및 보일러플레이트를 제거한 읽기 가능한 HTML을 Markdown으로 추출.

  • 자동 PDF 감지 및 텍스트 추출.

  • React, Vue, SPA 및 기타 JS 중심 페이지를 위한 헤드리스 Chromium 렌더링.

  • 사용 불가능하거나 변경된 페이지를 위한 Wayback Machine 스냅샷.

  • URL 또는 비디오 ID에서 YouTube 트랜스크립트 제공, 선택적 타임스탬프 포함.

  • 컨테이너 및 프로세스 확인을 위한 /health 엔드포인트.

  • 상태 비저장 Streamable HTTP 및 stdio MCP 전송 방식.

Related MCP server: Basic MCP Tools

MCP 도구

도구

설명

web_search

DuckDuckGo(ddgs)를 통해 웹 검색. 인자: query(필수), max_results(1–20), region.

web_fetch

URL을 가져와 Markdown으로 변환. PDF를 자동 감지하고 텍스트를 추출. trafilatura를 사용하여 깔끔한 기사 추출(탐색/광고/보일러플레이트 제거). 인자: url, timeout.

web_fetch_js

헤드리스 Chromium으로 JS 중심/SPA 페이지를 렌더링한 후 텍스트 추출. web_fetch가 빈 페이지나 스텁(stub) 페이지를 반환할 때 사용. 느림(~5–15초). 인자: url, wait_ms(0–15000, 기본 2500), timeout.

web_fetch_archive

Wayback Machine에서 URL의 최신(또는 특정 타임스탬프) 아카이브 스냅샷을 가져옴. 일시적인 503 오류 시 재시도. 인자: url, timestamp(선택 사항 YYYYMMDDhhmm).

youtube_transcript

YouTube 동영상의 트랜스크립트를 가져옴. 전체 YouTube URL 또는 11자리 비디오 ID 허용. 인자: url, include_timestamps(bool, 기본 false).

일반 페이지에는 더 빠른 web_fetch를 사용하세요. 사이트가 클라이언트 측 JavaScript에 의존하여 첫 번째 도구가 빈 껍데기나 불완전한 콘텐츠를 반환하는 경우에만 web_fetch_js를 사용하세요.

Docker로 실행

docker compose up -d --build

확인:

curl http://localhost:8082/health      # → {"status":"ok"}

로그 / 재시작 / 중지:

docker compose logs -f
docker compose restart
docker compose down

첫 번째 빌드는 Chromium을 다운로드하므로 크기가 큽니다(~400MB). 이후 빌드는 캐시된 레이어를 재사용합니다.

클라이언트 연결

MCP 호환 클라이언트를 다음 주소로 연결하세요:

http://<server-host>:8082/mcp

헤더나 API 키가 필요하지 않습니다. 서버는 상태 비저장 모드로 실행됩니다.

Docker 없이 로컬에서 실행

Python 3.12를 권장합니다:

python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
playwright install --with-deps chromium
python server.py

HTTP 전송 방식을 직접 실행하려면:

python server.py --sse --host 127.0.0.1 --port 8082

역사적인 --sse 옵션 이름에도 불구하고, HTTP 구현은 상태 비저장 MCP Streamable HTTP 전송 방식을 사용합니다.

성능 참고 사항

  • 런타임에 무거운 것은 web_fetch_js뿐입니다. 호출당 Chromium을 실행합니다(~5–15초). 나머지 네 가지 도구는 가벼운 순수 Python으로 빠르게 작동합니다.

  • docker-compose.ymlshm_size: 1gb는 컨테이너 내 Chromium 샌드박스 충돌을 방지합니다.

  • 일반적인 비JS 페이지에는 web_fetch(빠름)를 사용하고, JavaScript로 콘텐츠를 렌더링하는 React/Vue/SPA 사이트에는 web_fetch_js를 사용하세요.

설정

포트를 변경하려면 docker-compose.yml에서 ports: 매핑과 command:를 모두 편집하세요. 디버깅을 위해 원시 요청/응답 로깅을 활성화하려면 주석 처리된 --verbose command: 줄로 전환하세요.

검증

이 저장소는 소스 코드 및 Docker 빌드 구성으로 푸시되도록 설계되었습니다. 현재 자동화된 테스트 스위트는 없습니다. 권장되는 프로젝트 확인 사항은 다음과 같습니다:

git diff --check
docker compose config
docker compose up -d --build
curl http://localhost:8082/health
docker compose logs --tail=100
docker compose down

인증을 추가하거나 신뢰할 수 있는 리버스 프록시 뒤에 배치하지 않고 이 서비스를 공개 인터넷에 직접 게시하지 마십시오. HTTP 모드는 0.0.0.0에 바인딩되고, API 키 없이 요청을 허용하며, 모든 출처를 허용합니다. 이는 로컬 MCP 클라이언트에 편리하지만 접근 제어 계층이 아닙니다.

보안 및 운영 참고 사항

  • web_fetchweb_fetch_js는 임의의 HTTP(S) URL을 요청할 수 있습니다. 신뢰할 수 없는 사용자가 서비스를 호출할 수 있는 경우 네트워크 액세스를 제한하거나 URL/DNS 보호 장치를 추가하세요.

  • --verbose는 요청 및 응답 본문을 기록하므로 짧은 로컬 디버깅 세션 외에는 비활성화된 상태로 유지하세요.

  • 종속성은 최소 버전 제약 조건을 사용합니다. 재현 가능한 프로덕션 빌드에 의존하기 전에 버전을 고정(pin)하거나 잠금(lock)하세요.

파일

  • server.py — MCP 서버(5개 도구)

  • requirements.txtmcp, httpx, beautifulsoup4, markdownify, ddgs, trafilatura, pypdf, youtube-transcript-api, playwright

  • Dockerfile — Python 3.12-slim + Playwright Chromium

  • docker-compose.ymlshm_size: 1gb로 포트 8082에서 서비스 실행

라이선스

현재 라이선스 파일이 포함되어 있지 않습니다. 외부 기여를 받거나 프로젝트를 재배포하기 전에 라이선스를 추가하세요.

F
license - not found
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    -
    quality
    A
    maintenance
    Zero-auth multi-source research MCP server that enables web search, reading URLs, PDFs, GitHub repos, and querying Hacker News, Stack Overflow, Semantic Scholar, and YouTube transcripts without API keys.
    10
    Apache 2.0
  • F
    license
    -
    quality
    B
    maintenance
    A self-hosted MCP server providing private web search, web page fetching, and current date/time tools, powered by a bundled SearXNG instance for API-key-free local search.
    2
  • A
    license
    -
    quality
    C
    maintenance
    A fully local MCP server that provides web search via self-hosted SearXNG and page-to-markdown conversion (static and JS-rendered), all aggregated behind a single endpoint for use with AI assistants.
    MIT
  • A
    license
    -
    quality
    B
    maintenance
    MCP server enabling local-first web search, fetch, extract, and caching with citeable excerpts, no API key required. Supports research workflows for agents and apps.
    323
    MIT

View all related MCP servers

Related MCP Connectors

  • An MCP server for deep research or task groups

  • Search your AI chat history (ChatGPT, Claude, Codex) from any MCP client. Remote, private, read-only

  • An MCP server that gives your AI access to the source code and docs of all public github repos

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/AngelN-Halo/mcp-web-search-pro'

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