karust/openserp
Self-hosted web search for AI agents and SEO. Google, Bing, Yandex, Baidu, DuckDuckGo & Ecosia, rendered in a real browser: ranked results and clean page Markdown. API, CLI, MCP 🎉
OpenSERP – 오픈소스 검색 엔진 결과 API 및 CLI
개요
- Google, Bing, Yandex, Baidu, DuckDuckGo, Ecosia의 공개 웹 검색 페이지를 스크래핑하여 깔끔하고 통합된 JSON(또는 markdown/text/NDJSON) 형식으로 결과를 반환하는 무료 자체 호스팅 서비스입니다.
- REST API와 명령줄 클라이언트를 제공하므로 코드, 스크립트 또는 터미널에서 직접 호출할 수 있습니다.
- API 키나 검색별 요금이 없습니다. 로컬(또는 자체 서버)에서 실행하면 개인 SERP 엔드포인트처럼 작동합니다.
AI/LLM 워크플로우에서 중요한 이유
- LLM은 최신 웹 정보가 필요한 경우가 많습니다. OpenSERP를 사용하면 라이브 검색 결과와 추출된 페이지 콘텐츠를 한 요청으로 가져와 프롬프트나 검색 증강 생성(RAG) 파이프라인에 공급할 수 있습니다.
- 동일한 JSON 스키마가 지원되는 6개 엔진 모두에서 작동하므로 멀티 엔진 집계 및 폴백 전략이 간소화됩니다.
- 호스팅 클라우드 버전도 제공되므로 코드 변경 없이 자체 호스팅과 SaaS를 전환할 수 있습니다.
주요 기능
- 각 엔진 전용 엔드포인트(
/google/search,/bing/image등)를 공통 응답 스키마로 제공. - 메가서치 – 여러 엔진을 동시에 쿼리하고 결과를 병합하고 URL을 중복 제거하며 클러스터링 정보를 얻습니다.
- URL 추출 – 선택적으로 대상 페이지를 가져와 markdown으로 정리하고 검색 응답에 포함시킬 수 있습니다.
- AI 요약, 답변 박스, "다른 사용자는 이렇게 질문함", 관련 검색, 이미지 검색과 같은 SERP 추가 기능 지원.
- 출력 형식: JSON, markdown, 일반 텍스트, NDJSON.
- 프록시 지원(HTTP 및 SOCKS5), 캐싱, 복원 모드, 사전 빌드된 Docker 이미지.
- JavaScript/TypeScript, Python용 공식 SDK, AI 에이전트용 MCP 서버, n8n 노드.
일반적인 사용 사례
- LLM 접지 – 최신 웹 스니펫이나 전체 페이지를 검색하여 모델 응답을 보강합니다.
- SEO / 순위 추적 – 자동화된 쿼리를 실행하고 분석용으로 구조화된 결과를 저장합니다.
- 멀티 엔진 리서치 – Google, Bing 등을 단일 호출로 결합하여 커버리지를 개선합니다.
- 자동화 – 검색 데이터가 필요한 CI 파이프라인, 봇, 노코드 도구(n8n)에 통합합니다.
시작하기
- Docker (가장 빠름)
docker run --rm -p 127.0.0.1:7000:7000 karust/openserp:latest serve -a 0.0.0.0 -p 7000 - Go 설치
go install github.com/karust/openserp@latest openserp search duckduckgo "open source serp api" --format markdown - 소스에서
git clone https://github.com/karust/openserp.git cd openserp go build -o openserp . ./openserp serve - 첫 API 호출 (메가서치, 빠른 폴백 모드):
curl "http://127.0.0.1:7000/mega/search?engines=bing,google&text=golang+vs+rust&extract=1&mode=any"
응답 예시 (축약)에는 쿼리 메타데이터, title, url, snippet과 같은 필드를 가진 결과 배열, 페이지 콘텐츠용 선택적 extracted markdown 블록이 포함됩니다.
SDK 사용법 (Python 예시)
import openserp
client = openserp.OpenSERP(base_url="http://localhost:7000")
resp = client.search(engine="google", text="openserp", limit=5)
print(resp["results"])
문서 및 API 탐색기
- Swagger UI:
http://127.0.0.1:7000/docs - OpenAPI 사양:
http://127.0.0.1:7000/openapi.yaml - 아키텍처 개요: https://openserp.org/docs/architecture/
라이선스
- MIT 라이선스 – 소프트웨어를 자유롭게 수정, 재배포 또는 임베드할 수 있습니다.
커뮤니티
- GitHub에서 이슈 및 기능 요청.
- 이메일 또는 Telegram 채널을 통한 피드백.
CONTRIBUTING.md가이드를 통한 기여 환영.
OpenSERP는 개발자에게 AI 에이전트, 봇, 데이터 파이프라인에 라이브 웹 검색을 추가할 수 있는 개인정보 보호 및 비용 무료 방법을 제공합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트