Skip to main content
Glama

Jiro Search API 🔍

Local-first, API de búsqueda web y scraping nativa de IA — un sustituto directo, alternativa autohospedada a SerpAPI, con servidor MCP, investigación agéntica y cumplimiento legal integrado.

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

Jiro realiza scraping directamente de Google, Bing, DuckDuckGo, Brave, YouTube, Amazon, eBay, Yandex y Baidu: sin API de búsqueda de terceros, sin facturación por consulta, sin dependencia de la nube. Los resultados se almacenan en caché local en SQLite (respuestas en caché en menos de 50 ms), se exponen a través de una API REST compatible con SerpAPI y están diseñados para que los utilicen agentes de IA: esquemas de llamada de funciones para OpenAI/Anthropic/Gemini, un servidor Model Context Protocol (MCP), wrappers de LangChain/LlamaIndex y un bucle agéntico /ai/search que planifica → busca → lee páginas → sintetiza una respuesta con citas. Trae tus propias claves (BYOK) para proxies, solucionadores de CAPTCHA y proveedores de LLM.

Estado: MVP listo para producción (código abierto, MIT). Hospédalo tú mismo por $0 o suscríbete a Jiro Cloud para obtener una flota de proxies gestionados, SLA y panel de cumplimiento.

Uso responsable: los motores de búsqueda luchan activamente contra los bots. Desde IP residenciales (y con proxies BYOK) Google/DuckDuckGo funcionan; desde IP de centros de datos, Jiro cambia automáticamente entre motores (google → bing → brave → duckduckgo). Respeta las condiciones de servicio y el robots.txt de cada motor.


¿Por qué Jiro? (Alternativa a SerpAPI, autohospedada)

Problema con las APIs de búsqueda sucias

La solución open source de Jiro

💸 SerpAPI cuesta +$200/mes por 100 000 peticiones

Gratis para siempre: ínfimo con tu propia infraestructura (MIT)

☁️ Dependencia de la nube, tus consultas salen de tu red

100% local-first: tus consultas, tus datos, tu cumplimiento

🤖 Sin integración nativa con agentes de IA

MCP + Function Calling + LangChain/LlamaIndex integrado

⚖️ Zona legal ambigua (robots.txt, ToS)

Cumplimiento integrado: parser de robots.txt, seguimiento de ToS, registros de auditoría inmutables

🔧 Los parsers frágiles se rompen con cambios de UI

Selectores autorreparables + cadena de respaldo automático de 9 motores


Related MCP server: Scout MCP Server

Inicio con un solo comando

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

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

Eso es todo: una API de búsqueda autohospedada funcional con un solo comando.

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

Matriz de características

Funcionalidad

Jiro (OSS)

SerpAPI

ScraperAPI

Bright Data

Búsqueda web: 9 motores

Scraper web universal (markdown/text/html/JSON)

Investigación agéntica (/ai/search)

Servidor MCP (stdio + Streamable HTTP + SSE)

Esquemas de llamada de funciones (OpenAI/Anthropic/Gemini)

Capa de cumplimiento legal (robots.txt, ToS, auditoría)

Autohospedado / Aislado

Proxies BYOK + CAPTCHA

Parcial

Código abierto (MIT)

Precio

Gratis

$200+/mes

$299+/mes

$500+/mes


Qué obtienes

Área

Funcionalidades

Motores

Google (web/imágenes/noticias/vídeos/compras/places), Bing (web/imágenes/noticias/vídeos), Brave (web/vídeos), DuckDuckGo (web/imágenes), YouTube, Amazon, eBay, Yandex, Baidu

Resiliencia

Cadena de respaldo automático entre motores, rotación de UA, reintentos + backoff exponencial, interruptor de circuito por motor, detección de muros anti-bot, fallback opcional al navegar con Playwright para páginas con mucho JavaScript

Caché

SQLite (WAL) o Redis con TTL, fresh=true para omitirla; modo memoria; caché semántica (reutilización difusa basada en incrustaciones); p95 de respuestas en caché < 50 ms

Scraper

URL → markdown/text/html/JSON, extracción de lectura fácil, metadatos OpenGraph/Twitter/JSON-LD, enlaces e imágenes, extracción de esquema con LLM, recetas CSS/XPath/JSONPath personalizadas

IA nativa

Esquemas de herramientas OpenAI/Anthropic/Gemini, servidor MCP (jiro mcp), wrappers de LangChain y LlamaIndex, bucle de agente /ai/search, investigación multipaso /ai/agent, streaming por SSE, fallback extractivo si no hay clave de LLM

BYOK

Proxies (HTTP/SOCKS5, lista única o ajustes predefinidos: BrightData/Oxylabs/ScraperAPI/ZenRows/Smartproxy), solucionadores de CAPTCHA (2Captcha/CapSolver), claves de LLM (OpenAI, Anthropic, Gemini, OpenRouter, Ollama), todo mediante config/env

Trabajos asíncronos

POST /jobs para investigadores/raspados por lotes de larga duración, GET /jobs/{id} para estado, entrega por webhook con firma XOR (HMAC)

Equipo

Claves de API con hash, roles de administrador/usuario con ámbitos, límites de frecuencia por clave, JWT, seguimiento de uso (/usage, /metrics)

Operaciones

Prometheus /metrics, /proxy/status, /status del CAPTCHA, registros JSON estructurados, Helm chart

Privacidad

Sin telemetría, las consultas no se registran por defecto, todos los datos permanecen locales

Ligero

Async httpx + selectolax (parser C), ~15 dependencias principales, arranca en < 1 s


Jiro vs SerpAPI, ScraperAPI y Bright Data

Jiro es el único proyecto de código abierto y autohospedable que combina búsqueda + scraping + investigación agéntica con IA + MCP en un único binario, con cumplimiento legal integrado. Los competidores cerrados cobran entre $200 y $3,000 al mes por partes de esta funcionalidad y nunca te permiten autohospedarlo.

→ Comparaciones completas: vs SerpAPI · vs ScraperAPI · vs Bright Data


Integración con agentes de IA

Model Context Protocol (MCP)

Jiro incluye un servidor MCP completo (stdio, Streamable HTTP y SSE heredado), que permite a los agentes de IA realizar búsquedas web en vivo, scraping de páginas e investigación.

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

Herramientas: search (9 motores, 6 tipos de búsqueda) · scrape (markdown/text/html/json) · ai_search (investigación agéntica con citas). Instrucciones (prompts): search_and_complete, compare_engines. Autocompletado: nombres de motores, tipos de búsqueda, rangos de tiempo, formatos.

Claude Desktop

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

Cursor / Continue.dev / Zed / Cline

Configura el cliente MCP apuntando a jiro mcp como comando del servidor (ver docs/mcp).

Llamadas de funciones (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: Crea un agente de investigación profunda con Jiro + Claude (MCP)


Referencia de la API

Documentación interactiva en http://localhost:8000/docs (Swagger) y en http://localhost:8000/openapi.json.

Método

Path

Notas

GET

/search.json

Compatible con SerpAPI: engine, q, num, start, hl, gl, api_key, …

GET/POST

/search

Alias / cuerpo JSON

POST

/search/batch

Hasta 10 consultas en paralelo

GET

/search/stream

Stream SSE (un motor o múltiples)

POST

/scrape

{url, format, include_metadata, extract_schema, recipe}

POST

/scrape/batch

Hasta 50 URL

POST

/ai/search

Planificar → buscar → extraer las N mejores → sintetizar respuesta citada

GET

/ai/search/stream

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

POST

/ai/agent

Investigación autónoma multipaso

POST

/ai/extract

Extracción con LLM desde URL/texto con un esquema personalizado

POST

/jobs

ai_search / ai_agent / batch_scrape con webhook

GET

/health, /engines, /metrics

Estado, motores, contadores Prometheus

POST/GET/DELETE

/api-keys

Gestión de claves con hash (admin)

POST

/auth/token

Intercambio de API key por token JWT

Autenticación: encabezado X-API-Key: jsk_..., parámetro ?api_key=... o Authorization: Bearer <jwt>. Cuando auth.enabled: false (predeterminado) la API queda abierta para uso local.


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

Configuración y BYOK

Configuración en ~/.jiro/config.yaml (o $JIRO_CONFIG). Puedes anular cualquier valor con variables de entorno: JIRO_SERVER__PORT=9000, JIRO_AUTH__ENABLED=true. Los secretos se interpolan desde el entorno: api_key: ${OPENAI_API_KEY}.

Servicio

Configuración

Ejemplo de variable de entorno

Proxy (personalizado)

scraping.proxy.url (rotación separada por comas)

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, local)

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

Caché Redis

cache.type: redis, cache.url

JIRO_CACHE__TYPE=redis


Despliegue

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

Incluye Deployment, Service, PVC (datos SQLite), Ingress opcional y caché Redis opcional (--set redis.enabled=true).

Configuración de equipo (autenticación activada)

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 y monetización

Jiro es de código abierto (MIT) y siempre será gratuito para autoalojarlo. El modelo sostenible:

Edición

Qué

Licencia

Para

Jiro OSS

Búsqueda/scrape/IA/MCP completos, todos los motores, plugins, cumplimiento normativo

MIT

Todos — 0$

Jiro Cloud (hoja de ruta)

Hosting gestionado, autoescalado, pool global de proxies residenciales, SLA, SSO, panel de cumplimiento

SaaS

Equipos y agentes

Jiro Enterprise (hoja de ruta)

Licencia aislada (BSL-1.0), camino hacia SOC 2, soporte dedicado, plugins privados de motores

Código disponible

Laboratorios fintech/legal/gob/IA

Monetizamos la comodidad, el cumplimiento normativo y el soporte — nunca el código. Las contribuciones de la comunidad permanecen bajo licencia MIT.

→ Hoja de ruta: docs/ROADMAP.md


Documentación


Rendimiento

Métrica

Valor

Inicio

< 1 s

Búsqueda en caché (SQLite)

~1–3 ms de ida y vuelta en proceso

Búsqueda en vivo en Bing

~0.3–0.8 s desde una IP de centro de datos

/scrape de una página pequeña

~0.3–1.2 s la primera vez, luego en caché

Suite de pruebas

380 pruebas que pasan


Estructura del proyecto

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

Desarrollo

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

Estado de la hoja de ruta

  • Fase 1 (MVP) — ✅ CLI, configuración, servidor FastAPI, motores web google/bing/ddg, JSON compatible con SerpAPI, caché SQLite, autenticación por clave API, esquema de herramientas de OpenAI, /ai/search, Dockerfile.

  • Fase 2 — ✅ videos de Brave y Bing, tipos de imagen/noticia, claves de equipo, servidor MCP, envoltorios de LangChain/LlamaIndex, scrape por lotes, /metrics, Playwright como respaldo, proxy BYOK + CAPTCHA, SSE, Redis.

  • Fase 3 — ✅ /ai/agent con investigación en monostep, recetas CSS/XPath/JSONPath, extracción con LLM, registro de plugins, trabajos asíncronos + webhooks.

  • Fase 4 — parcial: caché semántica perentrada; los pipelines de RAG, el escalado horizontal y el marketplace comunitario de parser son trabajo futuro. Se proporciona el chart de Helm.


Licencia y uso responsable

MIT — Jiro es una herramienta de parseo: respeta los términos de servicio y robots.txt de cada motor de búsqueda, mantén un ritmo de solicitudes respetuoso, y usa servicios de comentarios y CAPTCHA a tu propio criterio. Todo el tráfico se origina desde tu red; las consultas solo son visibles para los motores que consultas.


Comunidad y soporte


Desarrollado por Adarsh Kushwah · Blackvault Technology Búsqueda y scrape local‑first, nativas de IA — gratuitos, abiertos y tuyos para autoalojar.

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