Skip to main content
Glama

Jiro Search API 🔍

Local-First, KI-native Websuch- & Scraping-API — ein Drop-in-Ersatz, eine selbst gehostete SerpAPI-Alternative mit MCP-Server, agentischer Recherche und integrierter rechtlicher Compliance.

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

Jiro durchsucht Google, Bing, DuckDuckGo, Brave, YouTube, Amazon, eBay, Yandex und Baidu direkt — ohne Such-API von Drittanbietern, ohne Abrechnung pro Anfrage, ohne Cloud-Lock-in. Ergebnisse werden lokal in SQLite gecacht (gecachte Antworten in unter 50 ms) und über eine SerpAPI-kompatible REST-API bereitgestellt. Die API ist darauf ausgelegt, von KI-Agenten aufgerufen zu werden: Function-Calling-Schemata für OpenAI/Anthropic/Gemini, ein Model Context Protocol (MCP)-Server, LangChain-/LlamaIndex-Wrapper sowie eine agentische /ai/search-Schleife, die plant → sucht → Seiten liest → eine mit Quellen belegte Antwort synthetisiert. Bring your own Keys (BYOK) für Proxys, CAPTCHA-Löser und LLM-Anbieter.

Status: Produktionsreifes MVP (Open Source, MIT). Hoste es selbst für 0 $ oder abonniere Jiro Cloud für eine verwaltete Proxy-Flotte, SLA und Compliance-Dashboard. Verantwortungsvoller Einsatz: Suchmaschinen wehren sich aktiv gegen Bots. Von Residential-IPs (und mit BYOK-Proxys) funktionieren Google/DuckDuckGo; auf Rechenzentrums-IPs wechselt Jiro automatisch über die Engines hinweg (google → bing → brave → duckduckgo). Respektiere die ToS jeder Engine und robots.txt.


Warum Jiro? (Selbst gehostete SerpAPI-Alternative)

Problem mit geschlossenen Such-APIs

Jiros Open-Source-Lösung

💸 SerpAPI kostet $200+/Monat für 100k Anfragen

Für immer kostenlos — betreibe es auf deiner eigenen Infrastruktur (MIT)

☁️ Cloud-Lock-in, deine Anfragen verlassen dein Netzwerk

100 % lokal-first — deine Anfragen, deine Daten, deine Compliance

🤖 Keine native KI-Agenten-Integration

MCP + Function Calling + LangChain/LlamaIndex nativ

⚖️ Rechtliche Grauzone (robots.txt, ToS)

Integrierte Compliance: robots.txt-Parser, ToS-Tracking, Manipulationssichere Audit-Logs

🔧 Störanfällige Parser brechen bei UI-Änderungen

Selbstheilende Selektoren + automatische Fallback-Kette über 9 Engines


Related MCP server: Scout MCP Server

Start mit einem Befehl

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

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

Das ist alles — eine funktionierende selbst gehostete Such-API in einem Befehl.

# 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}'

Feature-Matrix

Funktion

Jiro (OSS)

SerpAPI

ScraperAPI

Bright Data

Websuche — 9 Engines

Universal-Web-Verhalter (Markdown/Text/HTML/JSON)

Agentic Research (/ai/search)

MCP-Server (stdio + Streamable HTTP + SSE)

Function-Calling-Schemata (OpenAI/Anthropic/Gemini)

Legal-Compliance-Ebene (robots.txt, ToS, Audit)

Selbst gehostet / Air-Gapped

BYOK-Proxys + CAPTCHA

Teilweise

Open Source (MIT)

Preis

Kostenlos

$200+/Monat

$299+/Monat

$500+/Monat


Was du bekommst

Bereich

Funktionen

Engines

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

Ausfall

Automatische Engine-Fallback-Kette, UA-Rotation, Wiederholungsversuche + exponentielles Backoff, Circuit-Breaker pro Engine, Bot-Wall-Erkennung, optionales Playwright-Browser-Fallback für JS-lastige Seiten

Cache

SQLite (WAL) oder Redis mit TTL, fresh=true zum Python; Speichermodus; semantischer Cache (Embedding-basierte fuzzy Wiederverwendung); Cache-p95 unter 50 ms

Verhalter

URL → Markdown/Text/HTML/JSON, Readability-Extraktion, OpenGraph/Twitter/JSON-LD-Metadaten, Links & amp; Bilder, LLM-Schemaextraktion, benutzerdefinierte CSS/XPath/JSONPath-Rezepte

KI-nativ

OpenAI/Anthropic/Gemini-Tool-Schemata, MCP-Server (/MCP), LangChain- & LlamaIndex-Adapter, /ai/search-Agentenschleife, /ai/agent mehrstufige Recherche, SSE-Streaming, extraktiver Fallback ohne LLM-Key

BYOK

Proxys (HTTP/SOCKS5, HTTP-Liste oder Presets: BrightData/Oxylabs/ScraperAPI/ZenRows/Smarterproxy), CAPTCHA-Löser (2Captcha/CapSolver), HTTP API: 2Captcha/Capsolver

Katharinen, Cloud-API (OpenAI/Anthropic/Gemini/OpenRouter/ Locally), alles über Konfiguration/Env

Async-Jobs

POST /jobs für langer laufende Research-/Scrape-Jobs, GET /jobs/{id}-Status, Webhook-Zustellungs-du mit HMAC-Signatur

Team

Gehashte API-Schlüssel, Admin-/Benutzer-Rollen + Scopes, schlüsselbasierte Rate-Limits, JWT, Nutzungs-Tracking (/usage, /metrics)

Ops

Prometheus-/metrics, /proxy/status, /captcha/status, strukturierte JSON-Logs, Helm-Chart

Privatsphäre

Keine Telemetrie, keine protokoller des Abfrage, Standard-Daten bleiben

Leichtgewichtig

async-Httpx + selectolax (C-Parser), ~15 Kern-Abhängigkeiten, start in < 1 s


Jiro vs. SerpAPI, ScraperAPI & Bright Data

Jiro ist in der Lage, **Open-Source- ** Selbst zu hosten, die Suche + Scraping + agentics Research + MCP in einem Binary verbindet, mit eingebauter Legal-Compliance. Preislich sind SerpAPI/ScraperAPI/Bright Data teurer (meist 3 kostenpflichtig) als Jiro's eigene Kosten. Kündigungs-Komplorens: Mögliche $1.900/Monat für Nutzung dieser Funktionen und lassen dich nie selbst hosten.

Fakten: Jiro kombiniert in einer Macht GNP1 – (Funktionsumfang) ist reicher als SerpAPI/ScraperAPI und „Witze in Bezug auf MCP-Research“**modern.

→ vollständige Vergleiche: vs SerpAPI · vs ScraperAPI · vs Bright Data


KI-Agenten-Integration

Model Context Protocol (MCP)

Jiro enthält einen vollwertigen MCP-Server (stdio, StreamHelper HTTP, Legacy-SSE) — genug für AI Agenten, PDF- oder Set-verwandte Software.

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

Tools: search (10 Engines, 6 Suchtypen) · scrape (Markdown/Text/HTML/JSON) · ai_search (agentische Recherche mit Quellen).
Prompts: search_and_summarize, compare_engines. Autocomplete: Engine-Kamen, Diese-Tippe, Such-Typen, Sort.

Claude Desktop

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

Cursor / Continue.dev / Zed / Clayton

We rät, den MCP-Client auf den Server-Befehl jiro mcp zu zeigen (see 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)

→ Tutorial: Baue einen tiefgelickten Recherche-Agent mit Jiro + Claude (MCP)


API-Referenz

Interaktive Dokumentation unter http://localhost:8000/docs (Swagger-UI) und http://localhost:8000/openapi.json.

REST-API

Methode

Anfang

Purpose/Puni

GET

/search.json

SerpAPI-kompatibel — engine, q , num, start, start, gl, api_key, …

GET/POST

/search

Alias/JSON-Äther body

POST

/search/batch

Bis zu 10 Parallel-Queries

GET

/search/stream

SSE-Stream (ein- oder mehr-Engine)

POST

/scrape

{url, format, include_metadata, extract_schema, recipe}

POST

/scrape/batch

Bis zu 50 ES

POST

/ai/search

plantext → Seiten suchen abrufie → antworte mit intextuierte Zitat

GET

/ai/search/stream

SSE-Stream (plan|search|source|synthesize|answer)

POST

/ai/agent

Multi-Step Research-Agent

POST

/ai/extract

Extraktion von Schemas from URL via LLM mit eigener Schema

POST

/jobs

Async ai_search / ai_agent / batch_scrape with webhook

GET

/health, /engines, /metrics

Status, En- gines, Prometheus-Zähler

POST/GET/DELETE

/api-keys

Hashed key management (admin)

POST

/auth/token

Exchange API token for JWT

Authentifizierung: X-API-Key: jsk_...-Header, ?api_key=...-Parameter oder Authorization: Bearer <jwt>. Bei auth.enabled: false ist die API offen und für lokale Nutzung geeignet.


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

Konfiguration & BYOK

Konfigurationsdatei unter ~/.jiro/config.yaml (oder $JIRO_CONFIG). Einzelne Schlüssel via Env: JIRO_SERVER__PORT=9000, JIRO_AUTH__ENABLED=true; um API_Key: ${GITHUB_TOKEN} zu interpolieren, setze API_Key entsprechend.

Dienst

Konfiguration

Env-Beispiel

Proxy (benutzerdefiniert)

scraping.proxy.url (kommagetrennt, rotierend)

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

Proxy (BrightData)

scraping.proxy.provider: brightdata + api_key

${BRIGHTDATA_API_KEY}

Proxy (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, lokal)

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

Redis-Cache

cache.type: redis, cache.url

JIRO_CACHE__TYPE=redis


Deployment

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

Enthält Deployment, Service, PVC (SQLite-Daten), optionales Ingress und optionalen Redis-Cache (--set redis.enabled=true).

Team-Einrichtung (Auth aktiviert)

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

💡 Open Core & Monetarisierung

Jiro ist Open Source (MIT) und wird immer kostenlos selbst gehostet werden können. Das nachhaltige Modell:

Ausgabe

Was

Lizenz

Zielgruppe

Jiro OSS

Vollständige Suche/Scraping/KI/MCP, alle Engines, Plugins, Compliance

MIT

Jeder — $0

Jiro Cloud (Roadmap)

Managed Hosting, Auto-Scaling, globaler Residential-Proxy-Pool, SLA, SSO, Compliance-Dashboard

SaaS

Teams & Agenten

Jiro Enterprise (Roadmap)

Air-Gapped-Lizenz (BSL-1.0), SOC-2-Pfad, dedizierter Support, private Engine-Plugins

Source-available

Fintech/Recht/Verwaltung/KI-Labore

Wir monetarisieren Komfort, Compliance und Support — niemals den Code. Community-Beiträge bleiben MIT.

→ Roadmap: docs/ROADMAP.md


Dokumentation


Performance

Metrik

Wert

Startzeit

< 1 s

Zwischengespeicherte Suche (SQLite)

~1–3 ms Roundtrip im selben Prozess

Live-Bing-Suche

~0,3–0,8 s von einer Rechenzentrums-IP

/scrape einer kleinen Seite

~0,3–0,9 s beim ersten Aufruf, danach gecacht

Test-Suite

380 bestandene Tests


Projektstruktur

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

Entwicklung

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

Roadmap-Status

  • Phase 1 (MVP) — ✅ CLI, Konfiguration, FastAPI-Server, Google-/Bing-/DDG-Web-Engines, SerpAPI-kompatibles JSON, SQLite-Cache, API-Key-Authentifizierung, OpenAI-Tool-Schema, /ai/search, Dockerfile.

  • Phase 2 — ✅ Brave + Bing-Videos, Bild-/News-Typen, Team-Keys, MCP-Server, LangChain/LlamaIndex-Wrapper, Batch-Scraping, /metrics, Playwright-Fallback, BYOK-Proxy + CAPTCHA, SSE, Redis.

  • Phase 3 — ✅ /ai/agent für mehrstufige Recherche, CSS-/XPath-/JSONPath-Rezepte, LLM-Extraktion, Plugin-Registry, asynchrone Jobs + Webhooks.

  • Phase 4 — Teilweise: semantischer Cache enthalten; RAG-Pipelines, horizontale Skalierung und der Marktplatz für Parser der Community bleiben zukünftige Arbeit. Helm-Chart bereitgestellt.


Definition & System Use

MIT. Jiro ist ein Scraping-Tool: Respektiere die Nutzungsbedingungen jeder Suchmaschine und robots.txt, halte die Anfrageraten moderat und nutze Proxy-/CAPTCHA-Dienste nach eigenem Ermessen. Der gesamte Datenverkehr stammt aus deinem Netzwerk; Suchanfragen sind nur für die Engines sichtbar, die du abfragst.


Community & Support


Entwickelt von Mortimer · Blackvault to Lokal-first, KI-native durch Suche & Scraping — kostenlos, offen und von dir selbst zu hosten.

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (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

  • F
    license
    Not graded
    quality
    C
    maintenance
    Provides 42+ MCP tools for browser automation, web scraping, and search, enabling AI agents like Claude and Cursor to browse, extract data, and run research agents on the live web.
    8
  • 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.
    4
    2
    Apache 2.0

View all related MCP servers

Related MCP Connectors

  • Web research for agents: quality-scored Google search, webpage extraction, and deep research.

  • Hosted MCP with 91 agent tools: X, domains, SEO, Maps, Trends, Search, YouTube, TikTok, and more.

  • The best web search for your AI Agent

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/DevAnimecx/jiro'

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