Skip to main content
Glama

Jiro Search API 🔍

本地优先、AI 原生网页搜索与抓取 API —— 一个可直接替换的、自托管的 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(缓存响应 < 50 ms),通过 与 SerpAPI 兼容的 REST API 提供,并专为 AI 智能体 调用而设计:为 OpenAI/Anthropic/Gemini 提供函数调用模式,一个 Model Context Protocol (MCP) 服务器,LangChain/LlamaIndex 封装,以及一个智能体化的 /ai/search 循环:规划 → 搜索 → 阅读页面 → 综合生成带引用的答案。代理、CAPTCHA 验证码求解器和 LLM 提供商均可自带密钥(BYOK)。

状态: 生产可用的 MVP(开源,MIT)。以 $0 自托管,或订阅 Jiro Cloud 获得托管代理集群、SLA 与合规性看板。 负责任地使用: 搜索引擎会主动反爬虫。从住宅 IP(以及使用 BYOK 代理)时 Google/DuckDuckGo 可用;在数据中心 IP 上,Jiro 会自动在引擎间回退(google → bing → brave → duckduckgo)。请遵守每个引擎的 ToS 和 robots.txt。


为什么选择 Jiro?(自托管 SerpAPI 替代方案)

封闭式搜索 API 的问题

Jiro 的开源解决方案

💸 SerpAPI 100k 次请求需 $200+/月

永久免费 —— 部署在你自己的基础设施上(MIT)

☁️ 云锁定,你的查询离开你的网络

100% 本地优先 —— 你的查询、你的数据、你的合规性

🤖 无原生 AI 代理集成

原生支持 MCP + 函数调用功能 + LangChain/LlamaIndex

⚖️ 法律灰区(robots.txt、ToS 等)

内置合规性:robots.txt 解析器、ToS 跟踪、不可篡改的审计日志

🔧 易碎解析器,界面稍动就挂

自我修复选择器 + 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)

SerpAPI

ScraperAPI

Bright Data

9 个引擎的网页搜索

✅

✅

❌

❌

通用网页抓取器(markdown/text/HTML/JSON)

✅

❌

✅

✅

智能研究(/ai/search agent)

✅

❌

❌

❌

MCP 服务器(stdio + Streamable HTTP + SSE)

✅

❌

❌

❌

函数调用 Schemas(OpenAI / Anthropic / Gemini)

✅

❌

❌

❌

法律合规层(robots.txt、ToS、审计)

✅

❌

❌

❌

自托管 / 可离线部署

✅

❌

❌

❌

BYOK 代理 + CAPTCHA

✅

❌

部分支持

✅

开源(MIT)

✅

❌

❌

❌

价格

免费

$200+/月

$299+/月

$500+/月


你得到什么

区域

功能

引擎

Google(网页/图片/新闻/购物/地图),Bing(网页/图片/新闻/视频),Brave(网页/视频),DuckDuckGo(网页/图片),YouTube, Amazon, eBay, Yandex, Baidu

韧性

引擎自动回退链、UA 轮换、重试 + 指数退避、引擎级熔断器、机器人墙检测、可选 Playwright 浏览器回退(针对 JS 渲染页面)

缓存

SQLite(WAL)或 Redis 带 TTL,fresh=true 跳过缓存;内存模式;语义缓存(基于嵌入的模糊复用);缓存 p95 < 50 ms

抓取

URL → markdown/text/html/JSON,可读性提取,OpenGraph/Twitter/JSON-LD 元数据,链接和图片,LLM schema 提取,自定义 CSS/XPath/JSONPath 菜谱

AI 原生

OpenAI/Anthropic/Gemini 工具 schemas,MCP 服务器(jiro mcp),LangChain 与 LlamaIndex 封装,/ai/search 代理循环,/ai/agent 多步研究,SSE 流式输出,无 LLM 密钥时的提取式降级方案

BYOK

代理(HTTP/SOCKS5,单个列表或预设:Support/meta)· CAPTCHA 求解(2Captcha、Cap Searcher)· LLM keys(OpenAI、LSP、Gemini、OpenRouter、Ollama)——一切均通过配置/环境变量

异步任务

POST /jobs 用于长耗时的研究/批量抓取,GET /jobs/{id} 状态,webhook 投递 + HMAC 签名

团队

哈希式 API 密钥、管理员/用户角色 + 作用域、按密钥限速、JWT、用量跟踪(/usage、/metrics)

运维

Prometheus /metrics、代理状态 /proxy/status、验证码状态 /captcha/status、结构化 JSON 日志、Helm Chart

隐私

无遥测,查询默认不记录,所有数据留在本地

轻量

异步 httpx + selectolax(C 解析器),约 15 个核心依赖,启动 < 1 秒


Jiro vs SerpAPI、ScraperAPI 与 Bright Data

Jiro 是唯一一个 开源、可自托管 的项目,能将 搜索 + 抓取 + 智能体 AI 研究 + MCP 整合在一个二进制中,并内置法律合规能力。闭源对手往往要为此其中一部分功能收取每月 $200–$3,000,而且从不允许自托管。

→ 完整对比:vs SerpAPI · vs ScraperAPI · vs Bright Data


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

Tools: search(9 引擎,可高亮) · scrape(markdown/text/html/json) · ai_search(带引用的智能研究)。 Prompts: 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)。

函数调用(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 构建深度研究 Agent(MCP)


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 请求体

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/文本中使用自定义 schema 进行 LLM 提取

POST

/jobs

ai_search / ai_agent / batch_scrape,支持 webhook

GET

/health , /engines , /metrics

状态、引擎列表、Prometheus 计数器

POST / GET / DELETE

/api-keys

哈希式密钥管理(管理员)

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)。任何配置项均可通过环境变量覆盖:JIRO_SERVER__PORT=9000、JIRO_AUTH__ENABLED=true。敏感信息从环境变量插值:api_key: ${OPENAI_API_KEY}。

服务

配置

环境变量示例

代理(自定义)

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}

验证码(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 合规路径、专属支持、私有引擎插件

源码可得(Source-available)

金融科技/法律/政府/AI 实验室

我们通过便利性、合规性与支持盈利——而绝不是代码本身。社区贡献始终保持 MIT 许可。

→ 路线图:docs/ROADMAP.md


文档


性能

指标

值

启动

< 1 s

缓存搜索(SQLite)

约 1–3 ms 进程内往返

实时 Bing 搜索

约 0.3–0.8 s(数据中心 IP)

/scrape 小页面

约 0.3–0.9 s 首次命中,之后走缓存

测试套件

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 提取、插件注册表、异步任务 + webhooks。

  • 阶段 4 — 部分完成:语义缓存已内置;RAG 流水线、水平扩展以及社区解析器市场仍是后续工作。已提供 Helm chart。


许可证与负责任使用

MIT。Jiro 是一个搜索与抓取工具:请尊重每个搜索引擎的服务条款和 robots.txt,合理控制请求频率,并根据自身情况选择是否使用代理/CAPTCHA 服务。所有流量均来自你自己的网络;查询内容只会对你请求的搜索引擎可见。


社区与支持


开发者 Adarsh 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
    -