Skip to main content
Glama

Jiro Search API 🔍

ローカルファーストで、AIネイティブなWeb検索・スクレイピング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にローカルキャッシュされ(50ms未満のキャッシュ応答)、SerpAPI互換のREST APIとして公開されます。また、AIエージェントから呼び出せるように設計されています。つまり、OpenAI/Anthropic/Gemini向けのFunction Callingスキーマ、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)。各エンジンの利用規約と robots.txt を尊重してください。


なぜJiroか(自己ホスト型SerpAPIの代替)

クローズドな検索APIの問題点

Jiroのオープンソースによる解決策

💸 SerpAPIは10万リクエストにつき月額$200+

完全無料 — 自社インフラで実行(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) | Aero(Aqua) | AeroApi | ScrapeAPI | Bright Data | | --- | :---: | :---: | :---: | :---: | | Web検索(9エンジン) | ✅ | ✅ | ❌ | ❌ | | 汎用Webスキャラー(markdown/text/html/JSON) | ✅ | ❌ | ✅ | ✅ | | エージェント型リサーチ(/ai/search) | ✅ | ❌ | ❌ | ❌ | | MCPサーバー(stdio + Streamable HTTP + SSE) | ✅ | ❌ | ❌ | ❌ | | Function Calling スキーマ(ChatGPT/Anthropic/Gemini) | ✅ | ❌ | ❌ | ❌ | | 法的コンプライアンスレイヤー(robots.txt、ToS、監査) | ✅ | ❌ | ❌ | ❌ | | 自己ホスト/エアギャップ対応 | ✅ | ❌ | ❌ | ❌ | | BYOKプロキシ+CAPTCHA対応 | ✅ | ❌ | 一部 | ✅ | | オープンソース(MIT) | ✅ | ❌ | ❌ | ❌ | | 料金 | 無料 | $200+/mo | $299+/mo | $500+/mo |


主な機能

分野

機能

検索エンジン

Google(Web/画像/ニュース/動画/ショッピング/プレイス)、Bing(Web/画像/ニュース/動画)、Brave(Web/動画)、DuckDuckGo(Web/画像)、YouTube、Amazon、eBay、Yandex、Baidu

堅牢性

自動フォールバックチェーン、UAローテーション、リトライ+指数バックオフ、エンジン別サーキットブレーカー、ボット防止壁の検知、JSが多いページのためのオプションのPlaywrightフォールバック

キャッシュ

SQLite(WAL)またはTTL付きRedis、fresh=trueでキャッシュを回避、メモリモード、セマンティックキャッシュ(埋め込みベースのあいまい再利用)、キャッシュ応答のp95 50ms未満

スクレイパー

URL→markdown/text/html/JSON、可読性抽出、OpenGraph・Twitter・JSON-LDメタデータ、リンクと画像、LLMスキーマ抽出、カスタムCSS/XPath/JSONパスレシピ

AIネイティブ

OpenAI/Anthropic/Geminiのツールスキーマ、MCPサーバー(jiro mcp)、LangChain/LlamaIndexラッパー、/ai/searchエージェントループ、/ai/agent多段階リサーチ、SSEストリーミング、LLMキーがない場合の抽出フォールバック

BYOK

プロキシ(HTTP/SOCKS5、リストまたはプリセット:BrightData/Oxylabs/ScraperAPI/ZenRows/Smartproxy)、CAPTCHAソルバー(2Captcha/CapSolver)、LLMキー(OpenAI、Anthropic、Gemini、OpenRouter、Ollama)— すべて設定または環境変数で指定可能

非同期ジョブ

長時間のリサーチやスケイプのバッチは POST /jobs、状態取得は GET /jobs/{id}、HMAC署名付きWebhook配信

チーム機能

ハッシュ化されたAPIキー、管理・ユーザーロール+スコープ、キーごとのレート制限、JWT、利用状況追跡(/usage、/metrics)

運用

Prometheus対応の /metrics、/proxy status、/captcha status、構造化JSONログ、Helmチャート

プライバシー

テレメトリなし、デフォルトでクエリをログしない、データはすべてローカルに残る

軽量

非同期httpx+selectolax(Cパーサー)、依存は約15個、1秒以内に起動


Jiro vs SerpAPI、ScraperAPI、Bright Data

Jiroは、検索+スクレイピング+エージェント型AIリサーチ+MCPを1つのバイナリにまとめ、法的コンプライアンスを内蔵した、唯一のオープンソースで自己ホスト可能なプロジェクトです。クローズドな競合製品は、これらの一部だけの機能に月額$200〜$3,000を請求し、自己ホストを許しません。

→ 詳細な比較: vs SerpAPI・vs ScraperAPI・vs Bright Data


AIエージェント統合

Model Context Protocol (MCP)

Jiroには完全なMCPサーバー(stdio、Streamable HTTP、従来のSSE)が含まれており、AIエージェントにライブのWeb検索、ページスクレ、リサーチ機能を提供します。

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 (現行以降) / 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)でディープリサーチエージェントを構築する


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/テキストからカスタムスキーマで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}

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ラボ

私たちが収益化するのは利便性・コンプライアンス・サポートであり、コードではありません。コミュニティからのコントリビューションは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抽出、プラグインレジストリ、非同期ジョブ + Webhook。

  • フェーズ4 — 部分対応: セマンティックキャッシュは導入。RAGパイプライン、水平スケーリング、コミュニティパーサー市場は今後の作業です。Helmチャートを提供しています。


ライセンスと責任ある利用

MIT。Jiroはスクレイピングツールです。各検索エンジンの利用規約とrobots.txtを尊守し、リクエストレートを自己節制し、プロキシ・CAPTCHAサービスの利用は自己の判断で行ってください。すべてのトラフィック発はあなたのネットワークから送信され、クエリはあなたが照会するエンジンにのみ表示されます。


コミュニティとサポート


開発者: Adarsh Kush進 · Blackvault Technology ローカルファースト、AIネイティブな検索&スクレイピング — 無料、オープン、そしてあなたがセルフホストできるものです。

Maintenance

ActivityActive
ResponsivenessNo issues

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
    -