Skip to main content
Glama

Jiro Search API 🔍

로컬 우선(Local-first), AI 네이티브 웹 검색 & 스크래핑 API — 즉시 대체 가능한(drop-in) 자체 호스팅 SerpAPI 대안으로, MCP 서버, 에이전트형 리서치, 내장된 법적 규정 준수를 제공합니다.

GitHub stars GitHub forks PyPI version Docker License: MIT Tests Python

Jiro는 Google, Bing, DuckDuckGo, Brave, YouTube, Amazon, eBay, Yandex, Baidu를 직접 스크래핑합니다 — 서드파티 검색 API가 필요 없고, 쿼리별 요금도 없으며, 클라우드 종속도 없습니다. 결과는 SQLite에 로컬로 캐시되고(캐시 응답 50ms 미만), SerpAPI 호환 REST API로 노출되며, AI 에이전트가 호출하기 좋게 설계되었습니다: OpenAI/Anthropic/Gemini용 함수 호출 스키마, Model Context Protocol(MCP) 서버, LangChain/LlamaIndex 래퍼, 그리고 계획 → 검색 → 페이지 읽기 → 출처가 포함된 답변 합성을 수행하는 에이전트형 /ai/search 루프를 제공합니다. 프록시, CAPTCHA 솔버, LLM 프로바이더는 자체 키(BYOK)를 가져와 사용하면 됩니다.

상태: 프로덕션 준비 완료 MVP(오픈소스, MIT). $0로 자체 호스팅하거나, 관리형 프록시 팜, SLA, 규정 준수 대시보드를 제공하는 Jiro Cloud를 구독할 수 있습니다. 책임 있는 사용: 검색 엔진은 봇에 적극적으로 대응합니다. 가정용 IP(그리고 BYOK 프록시 포함)에서는 Google/DuckDuckGo가 동작합니다. 데이터센터 IP에서는 Jiro가 자동으로 엔진을 폴백합니다(google → bing → brave → duckduckgo). 각 엔진의 ToS와 robots.txt를 준수하세요.


왜 Jiro인가요? (자체 호스팅 SerpAPI 대안)

폐쇄형 검색 API의 문제점

Jiro의 오픈소스 해결책

💸 SerpAPI는 10만 건 요청에 $200+/mo

평생 무료 — 내 인프라에서 실행 (MIT)

⚡ 클라우드 종속, 요청이 네트워크 밖으로 나감

100% 로컬 우선 — 내 요청, 내 데이터, 내 규정 준수

🤖 네이티브 AI 에이전트 통합 없음

MCP + Function Calling + LangChain/LlamaIndex 네이티브

⚖️ 법적 회색지대 (robots.txt, ToS)

규정 준수 내장: robots.txt 파서, ToS 추적, 변경 불가 감사 로그

🔧 취약한 파서는 UI 변경에 깨짐

자가 치유 셀렉터 + 9개 엔진 자동 폴백 체인


Related MCP server: websearch-skill

명령 하나로 시작하기

pip install jiro-search          # or: uv tool install jiro-search

jiro serve                       # API on http://localhost:8000  (docs: /docs)

이것이 전부입니다 — 한 번의 명령으로 동작하는 자체 호스팅 검색 API가 준비됩니다.

# Search (SerpAPI-compatible endpoint)
curl "http://localhost:8000/search.json?engine=google&q=python+web+scraping&num=5"

# Scrape a page into clean markdown
curl -X POST http://localhost:8000/scrape \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com","format":"markdown"}'

# Agentic research with citations
curl -X POST http://localhost:8000/ai/search \
  -H "Content-Type: application/json" \
  -d '{"query":"What is the best Python web scraping library in 2026?","max_sources":5}'

기능 매트릭스

기능

Jiro (OSS)

Les Serp

ScraperAPI

Bright Data

웹 검색 — 9개 엔진

✅

✅

❌

❌

범용 웹 스크래퍼 (markdown/text/html/JSON)

✅

❌

✅

✅

에이전트형 리서치 (/search)

✅

❌

❌

❌

MCP 서버 (stdio + Streamable HTTP + SSE)

✅

❌

❌

❌

Function Calling 스키마 (OpenAI/Anthropic/Gemini)

✅

❌

❌

❌

법적 규정 준수 레이어 (robots.txt, ToS, 감사)

✅

❌

❌

❌

자체 호스팅 / Air-Gapped

✅

❌

❌

❌

BYOK 프록시 + CAPTCHA

✅

❌

부분

✅

오픈소스 (MIT)

✅

❌

❌

❌

가격

무료

$200+/mo

$299+/mo

$500+/mo


제공 기능

영역

기능

엔진

Google (web/images/news/videos/shopping/places), Bing (web/images/news/videos), Brave (web/videos), DuckDuckGo (web/images), YouTube, Amazon, eBay, Yandex, Baidu

복구성

자동 엔진 폴백 체인, UA 순환, 재시도 + 지수 백오프, 엔진별 서킷 브레이커, 봇 벽 탐지, JavaScriptheavy 사이트용 선택형 Playwright 브라우저 폴백

Cache

SQLite(WAL) 또는 TTL 기반 Redis, fresh=true로 우회, 메모리 모드, 시맨틱 캐시(임베딩 기반 퍼지 재사용), 캐시 p95 50ms 미만

스크래퍼

URL → markdown/text/html/JSON, 그 밖의본문 추출, OpenGraph/Twitter/JSON-LD 메타데이터, 링크와 이미지, LLM 스키마 추출, custom CSS/XPath/JSONPath recipes

AI 네이티브

OpenAI/Anthropic/Gemini 도구 스키마, MCP 서버(jiro mcp), LangChain, LlamaIndex 래퍼, /ai/search 에이전트 루프, /ai/agent 다단계 리서치, SSE 스트리밍, LLM 비밀번호 없을 때 강제 폴백

BYOK

프록시(HTTP/SOCKS5, 단일 목록 또는 프리셋: BrightData/Oxyautolabs/ScraperAPI/ZenRows/Smartproxy), CAPTCHA 솔버(2Captcha/CapSolver), API 프로바이더 키(OpenAI, Anthropic, Gemini, OpenRouter, Ollama) — 모두 config/env로

고비용 작업

POST /jobs로 오래 실행되는 연구/복합 스크래프 배치, GET /jobs/{id} 상태, HMAC 서명이 있는 웹훅 전달

팀

해시 API 키, admin/user 역할 + 스코프, 키별 속도 제한, JWT, 사용량 추적(/usage, /metrics)

운영

GET /metrics Prometheus, /proxy/status, /captcha/status, 구조화 JSON 로그, Helm 차트

프라이버시

텔레메트리 없음, 기본적으로 쿼리 기록 없음, 모든 데이터 로컬

경량

Async httpx + selectolax에서도(C 파서), 코어 의존성 15개, 1초 미만 시작


Jiro vs SerpAPI, ScraperAPI & Bright Data

Jiro는 검색 + 스크래핑 + AI 리서치 + MCP를 이진(binary) 하나에 결합하고, 법적 규정 준수가 내장된 유일한 오픈소스이자 자체 호스팅이 가능한 프로젝트입니다. 클로즈드 경쟁 업체들은 이 기능의 일부에 월 $200–$3,000를 청구하며 자체 호스팅은 허용하지 않습니다.

→ 전체 비교: vs SerpAPI · vs ScrAPI · [등 여러:docs/comparisons/bright-data.md)


AI 에이전트 통합

Model Context Protocol (MCP)

Jiro는 컴플리트 MCP 서버(stdio, Streamable HTTP, 이전 SSE)를 제공합니다 — AI 에이전트에 실시간 웹 검색,, 페이지 스크래핑, 조사를 제공합니다.

jiro mcp                           # MCP server over stdio
jiro mcp --transport http         # Streamable HTTP + SSE on :8000/mcp

도구: search (9개 엔진, 6가 검색) · scrape (markdown/text/html/JSON) · ai_search (인용을 포함한 에이전트형 리서치 ). 프롬프트: search_and_summarize, compare_engines. 자동완성: 엔진 이름, 검색 유형, 시간 범위, 형식.

Claude Desktop

{
  "mcpServers": {
    "jiro": {
      "command": "jiro",
      "args": ["mcp"],
      "env": { "JIRO_CONFIG": "~/.jiro/config.yaml" }
    }
  }
}

Cursor / Continue.dev / Zed / Cline

MCP 클라이언트에서 서버 명령어로 jiro mcp를 지정해 연결하세요 (자세한 내용: docs/mcp).

Function Calling (OpenAI / Anthropic / Gemini)

from jiro.ai.tools import openai_tools, anthropic_tools, gemini_tools
tools = openai_tools()           # OpenAI / OpenRouter / Ollama

LangChain / LlamaIndex

from jiro.ai.tools import langchain_tools, ToolSpec
tools = langchain_tools(search_fn=my_search, scrape_fn=my_scrape, ai_fn=my_ai_search)

→ 튜토리얼: Jiro + Claude(MCP)로 Deep Research 에이전트 만들기


API 참조

인터랙티브 개요는 http://localhost:8000/docs (Swagger) 및 http://localhost:8000/openapi.json에 있습니다.

메서드

경로

설명

GET

/search.json

SerpAPI와 호환 — engine, q, num, start, hl, gl, api_key, …

GET/POST

/search

영역어 / JSON body

POST

/search/batch

병렬로 최대 10개 쿼리

GET

/search/stream

SSE 스트림 (단일 또는 다중 엔진)

POST

/scrape

{url, format, include_metadata, extract_schema, recipe}

POST

/scrape/batch

최대 50개 URL

POST

/ai/search

세대 분석 → 검색 → 상위 N개 스크래핑 → 인용 출처를 포함한 정리

GET

/ai/search/stream

SSE 스트림 (plan**search**source**synthesize**answer)

POST

/ai/agent

다단계 자율 조사

POST

/ai/extract

커스텀 스키마로 URL/텍스트에서 LLM 추출

POST

/jobs

웹훅이 있는 ai_search/ai_agent/batch_scrape

GET

/health, /engines, /metrics

상태, 엔진, Promethus 카운터

POST/GET/DELETE

/api-keys

해시 키 관리 (admin)

POST

/auth/token

API 키를 JWT로 교환

인증: X-API-Key: jsk_... 헤더, ?api_key=... 파라미터, 또는 Authorization: Bearer <jwt>. auth.enabled: false(기본값)일 때 로컬 사용을 위해 API 가 개방됩니다.


CLI

jiro serve                        # start the API server
jiro search web "python scraping" --engine bing --num 5 --json
jiro scrape "https://example.com" --format markdown
jiro ask "best python scraping library?" --max-sources 5
jiro mcp                          # MCP server over stdio
jiro config init                  # write ~/.jiro/config.yaml
jiro config show
jiro keys create --name "ci" --role user        # prompts for admin key
jiro keys list
jiro keys revoke key_abc123
jiro usage --days 7
jiro plugins create myengine --author "Your Name"   # scaffold a new engine

설정 및 BYOK

설정은 ~/.jiro/config.yaml(또는 $JIRO_CONFIG)에 둡니다. 무엇이든 env로 재지정할 수 있습니다: JIRO_SERVER__PORT=9000, JIRO_AUTH__ENABLED=true. 비밀값은 env에서 대입됩니다: api_key: ${OPENAI_API_KEY}.

서비스

설정(Configuration)

환경 변수 예시

프록시 (custom)

scraping.proxy.url (쉼표 구분, 번들 로테이션)

http://user:pass@proxy.example:22225

프록시 (BrightData)

scraping.proxy.provider: brightdata + api_key

${BRIGHTDATA_API_KEY}

프록시 (Oxylabs/ScraperAPI/ZenRows/Smartproxy)

scraping.proxy.provider + api_key

${OXYLABS_API_KEY}

CAPTCHA (2Captcha / CapSolver)

scraping.captcha.provider + api_key

${CAPSOLVER_API_KEY}

LLM (OpenAI/Anthropic/Gemini/OpenRouter)

llm.provider/api_key/model

${OPENAI_API_KEY}

LLM (Ollama, 로컬)

llm.provider: ollama, base_url: http://localhost:11434/v1

—

Redis 캐시

cache.type: redis, cache.url

JIRO_CACHE__TYPE=redis


배포

Docker

docker compose up -d            # http://localhost:8000

Helm (Kubernetes)

helm install jiro ./helm \
  --set config.env.JIRO_AUTH__ENABLED=true \
  --set config.envFromSecret=jiro-secrets

Deployment, Service, PVC(SQLite 데이터), 선택적 Ingress 및 선택적 Redis 캐시(--set redis.enabled=true)가 포함되어 있습니다.

팀 구성 (인증 활성화)

export JIRO_AUTH__ENABLED=true JIRO_JWT_SECRET=$(openssl rand -hex 32)
jiro keys create --name admin --role admin --admin-key "$ADMIN"
jiro keys create --name "alice" --role user --rate-limit 30

💡 오픈 코어 & 수익화

Jiro는 **오픈소스(MIT)**이며 자체 호스팅은 항상 무료입니다. 지속 가능한 모델은 다음과 같습니다:

에디션

제공 사항

타이선스

대상

Jiro OSS

전체 검색/스크레이핑/AI/MCP, 모든 엔진, 플러그인, 규정 준수

MIT

모든 사람 — $0

Jiro Cloud (로드맵)

관리형 호스팅, 자동 확장, 글로벌 리지던셜 프록시 풀, SLA, SSO, 규정 준수 대시보드

SaaS

팀 및 에이전트

Jiro Enterprise (로드맵)

에어갭 라이선스(BSL-1.0), SOC 2 인증 검토, 전담 지원, 프라이빗 엔진 플러그인

소스-사용 가능

Fintech/Legal/Gov/AI Labs

저희는 편의성, 규제 준수, 지원에 대해 수익화하며, 코드는 절대 수면화하지 않습니다. 커뮤니티 기여는 계속 MIT로 유지됩니다.

→ 로드맵: docs/ROADMAP.md


문서


성능

측정 항목

값

시작

< 1 초

캐시된 검색 (SQLite)

~1–3 ms 인-프로세스 왕복 시간

실시간 Bing 검색

~0.3–0.8 초 (데이터센터 IP 기준)

작은 페이지 /scrape

첫 요청 ~0.3–0.9 초, 이후 캐시됨

테스트 스위트

380개의 테스트 확인


프로젝트 구조

jiro/
├── ai/            LLM providers, tool schemas, agentic loop (research + multi-step agent + SSE)
├── scraping/      HTTP client (UA rotation, retries, circuit breaker, proxy manager, browser fallback),
│                  engines: google/bing/brave/duckduckgo/youtube/amazon/ebay/yandex/baidu
├── server/        FastAPI app: routers (search, scrape, ai, stream, jobs, admin, ops, system)
├── auth.py        API keys (SHA-256 hashed), JWT, rate limiting
├── browser.py     Playwright browser fallback (lazy, graceful degradation)
├── cache.py       SQLite / memory cache manager
├── captcha.py     BYOK CAPTCHA solvers (2Captcha, CapSolver)
├── config.py      YAML + env config with ${VAR} interpolation
├── db.py          SQLite (WAL): cache, api_keys, usage, jobs, semantic_cache, tos_acknowledgments
├── extract.py     readability + metadata + HTML→Markdown
├── jobs.py        async job queue + webhooks (HMAC-signed)
├── mcp.py         MCP server (stdio): tools, prompts, resources, autocompletion
├── models.py      Pydantic contracts
├── proxy.py       BYOK proxy manager (provider presets, rotation, cooldown)
├── recipes.py     CSS / XPath / JSONPath extraction recipes
├── redis_cache.py Redis cache backend
├── semantic.py    embedding-based semantic cache
└── cli.py         Typer CLI
tests/             parser fixtures + unit/API/integration/chaos/property tests

개발

git clone https://github.com/DevAnimecx/jiro.git && cd jiro
pip install -e ".[dev,browser,redis,recipes]"
pytest -m "not network"            # skip network-dependent tests
jiro serve --reload

로드맵 상태

  • 1단계 (MVP) — ✅ CLI, 설정, FastAPI 서버, google/bing/ddg 웹 엔진, SerpAPI 호환 JSON, SQLite 캐시, API 키 인증, OpenAI 도구 스키마, /ai/search, Dockerfile.

  • 2단계 — ✅ Brave + Bing 비디오, 이미지/뉴스 유형, 팀 키, MCP 서버, LangChain/LlamaIndex 래퍼, 일괄 스크레이핑, /metrics, Playwright 폴백, BYOK 프록시 + CAPTCHA, SSE, Redis.

  • 3단계 — ✅ /ai/agent 다단계 리서치, CSS/XPath/JSONPath 레시피, LLM 추출, 플러그인 레지스트리, 비동기 작업 + 웹훅.

  • 4단계 — 일부 진행: 시맨틱 캐시 포함 완료. RAG 파이프라인, 수평 확장, 커뮤니티 파서 마켓플레이스는 향후 작업으로 남아 있습니다. Helm 차트 제공됨.


라이선스 및 책임 있는 사용

MIT. Jiro는 스크레이핑 도구입니다: 각 검색 엔진의 이용약관 및 robots을 준수하고, 요청률을 예의있게 유지하며, 프록시/CAPTCHA 서비스는 자신의 재량에 따라 사용하세요. 모든 트래픽은 여러분의 네트워크에서 발생해야 하며, 쿼리는 여러분이 검색한 엔진에서만 표시됩니다.


커뮤니티 & 지원


개발자: Adaresh Kushwah · Blackvault Technology 로컬 우선, AI 네이티브 검색 및 스크레이핑—무료이면서 오픈소스, 그리고 라이프사이클을 직접 결정할 수 있습니다.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to perform web searches with full content retrieval and multi-engine provenance, including trust scoring and local corpus persistence, via MCP integration.
    1 npm
    3
    Apache 2.0
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to perform unified web research through a single MCP server, including search, page fetching, recursive crawling, document parsing, YouTube transcript extraction, and deep multi-query research.
    3
    -