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)に統合します。
はじめに
- Docker(最速)
docker run --rm -p 127.0.0.1:7000:7000 karust/openserp:latest serve -a 0.0.0.0 -p 7000 - Goでのインストール
go install github.com/karust/openserp@latest openserp search duckduckgo "open source serp api" --format markdown - ソースから
git clone https://github.com/karust/openserp.git cd openserp go build -o openserp . ./openserp serve - 最初の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エクスプローラー
- Swagger UI:
http://127.0.0.1:7000/docs - OpenAPI仕様:
http://127.0.0.1:7000/openapi.yaml - アーキテクチャ概要: https://openserp.org/docs/architecture/
ライセンス
- MITライセンス – ソフトウェアを自由に変更、再配布、または組み込むことができます。
コミュニティ
- GitHubでの問題報告と機能リクエスト。
- メールまたはTelegramチャンネルでのフィードバック。
CONTRIBUTING.mdガイドを通じての貢献を歓迎します。
OpenSERPは、開発者にプライバシーを保護し、コストフリーでAIエージェント、ボット、データパイプラインにライブウェブ検索を追加する方法を提供します。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト