karust/openserp

Self-hosted web search for AI agents and SEO. Google, Bing, Yandex, Baidu, DuckDuckGo & Ecosia, rendered in a real browser: ranked results and clean page Markdown. API, CLI, MCP 🎉

OpenSERP – オープンソースの検索エンジン結果API&CLI

概要

  • Google、Bing、Yandex、Baidu、DuckDuckGo、Ecosiaの公開ウェブ検索ページをスクレイピングし、クリーンで統一されたJSON(またはmarkdown/text/NDJSON)形式で結果を返す、無料でセルフホスト可能なサービスです。
  • REST APIおよびコマンドラインクライアントを提供するため、コード、スクリプト、またはターミナルから直接呼び出すことができます。
  • APIキーや検索ごとの課金は不要です。ローカル(または自前サーバー)で実行し、プライベートなSERPエンドポイントとして機能します。

AI/LLMワークフローにとって重要な理由

  • LLMは最新のウェブ情報を必要とすることがよくあります。OpenSERPを使用すると、ライブ検索結果だけでなく、抽出されたページコンテンツも1つのリクエストで取得でき、プロンプトや検索拡張生成(RAG)パイプラインに供給できます。
  • 同じJSONスキーマがサポートされている6つのエンジンすべてで機能するため、マルチエンジン集約とフォールバック戦略が簡素化されます。
  • ホスト型クラウド版も提供されており、コード変更なしでセルフホストとSaaSを切り替えることができます。

主な機能

  • 各エンジン専用のエンドポイント(/google/search、/bing/imageなど)を共通のレスポンススキーマで提供。
  • メガサーチ – 複数のエンジンを同時にクエリし、結果をマージし、URLを重複排除し、クラスタリング情報を取得します。
  • URL抽出 – オプションでターゲットページを取得し、markdownにクリーンアップして、検索レスポンスに埋め込むことができます。
  • AI要約、アンサーボックス、「他の人はこちらも質問」、関連検索、画像検索などのSERP拡張機能をサポート。
  • 出力形式:JSON、markdown、プレーンテキスト、NDJSON。
  • プロキシサポート(HTTP&SOCKS5)、キャッシング、レジリエントモード、ビルド済みDockerイメージ。
  • JavaScript/TypeScript、Python用の公式SDK、AIエージェント用のMCPサーバー、n8nノード。

一般的なユースケース

  • LLMグラウンディング – 最新のウェブスニペットや完全なページを取得して、モデルの応答を補強します。
  • SEO / ランクトラッキング – 自動化されたクエリを実行し、分析用に構造化された結果を保存します。
  • マルチエンジンリサーチ – Google、Bingなどを1回の呼び出しで組み合わせて、カバレッジを向上させます。
  • 自動化 – 検索データを必要とするCIパイプライン、ボット、ノーコードツール(n8n)に統合します。

はじめに

  1. Docker(最速)
    docker run --rm -p 127.0.0.1:7000:7000 karust/openserp:latest serve -a 0.0.0.0 -p 7000
    
  2. Goでのインストール
    go install github.com/karust/openserp@latest
    openserp search duckduckgo "open source serp api" --format markdown
    
  3. ソースから
    git clone https://github.com/karust/openserp.git
    cd openserp
    go build -o openserp .
    ./openserp serve
    
  4. 最初のAPI呼び出し(メガサーチ、高速フォールバックモード):
    curl "http://127.0.0.1:7000/mega/search?engines=bing,google&text=golang+vs+rust&extract=1&mode=any"
    

レスポンス例(省略)には、クエリメタデータ、title、url、snippetなどのフィールドを持つ結果の配列、およびページコンテンツ用のオプションのextracted markdownブロックが含まれます。

SDKの使用法(Python例)

import openserp
client = openserp.OpenSERP(base_url="http://localhost:7000")
resp = client.search(engine="google", text="openserp", limit=5)
print(resp["results"])

ドキュメントとAPIエクスプローラー

ライセンス

  • MITライセンス – ソフトウェアを自由に変更、再配布、または組み込むことができます。

コミュニティ

  • GitHubでの問題報告と機能リクエスト。
  • メールまたはTelegramチャンネルでのフィードバック。
  • CONTRIBUTING.mdガイドを通じての貢献を歓迎します。

OpenSERPは、開発者にプライバシーを保護し、コストフリーでAIエージェント、ボット、データパイプラインにライブウェブ検索を追加する方法を提供します。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト