NS

netlops/sosearch

Developer tools

このページは AI により自動翻訳されています。技術的な詳細は原文をご確認ください。 原文を見る

133 stars 17 forks 品質 68 トレンド 30NOASSERTION

🔎 1つのクエリ。3つの検索エンジン。HTTP APIまたはMCPを使ったAIエージェントのセルフホスト型ウェブ検索。DuckDuckGo、Brave、Yahooを集約。Rustで構築。APIキーは不要。

概要

高速な疑似ウェブ検索エンジンAPIが組み込まれており、AIエージェント用のAPIとしても機能します。このプロジェクトは、SerpAPIやTavilyのような人気APIを公式で高価なAPIキーを必要とせず、人気エンジンへのリクエストを直接多重化し、結果を同時にスクレイピングすることでエミュレートしています。 - : tokioによって非同期I/Oを駆動。- : rquestをTLS模倣(例:TLS/HTTP2層でChrome 124ブラウザのフットプリントをシミュレート)を活用し、標準HTTPクライアント(Rust版curl_cffi)に比べてブロックを最小限に抑えます。- : DuckDuckGo、Yahoo、Brave HTMLの結果を標準化されたSearchResult JSON配列に正規化します。 *(一次標準検索)*(Bing提供)*(独立索引) このプロジェクトには、両者および.agents/の規則に従う他のツールに対する組み込みのAIエージェントサポートが含まれています。 SoSearchをAIエージェント(Claude、Gemini、Cursorなど)用のMCPサーバーとして運用する: これにより、AIエージェントがウェブ検索に呼び出せるweb_searchツールが公開されます。

概要(AI 翻訳)

Rustで書かれた超高速の疑似ウェブ検索エンジンAPIは、AIエージェントのMCPサーバーとしても機能します。 このプロジェクトは、公式で高価なAPIキーを必要とせず、人気エンジンへのリクエストを直接多重化し結果をスクレイピングすることで、SerpAPIやTavilyのような人気APIをエミュレートします。

哲学

  • パフォーマンス:非同期I/O用にtokioで駆動。
  • ボットバイパス:TLS模倣(例:TLS/HTTP2層でChrome 124ブラウザのフットプリントをシミュレート)と組み合わせた[[T1]を活用し、標準的なHTTPクライアント(Rust版curl_cffi)と比べてブロッキングを最小限に抑えます。
  • Standardized:DuckDuckGo、Yahoo、BraveのHTML結果を標準化されたSearchResultのJSON配列に正規化します。

コアスタック

  • アクサム
  • 東京
  • RQUEST
  • スクレーパー

🔍 サポート検索エンジン

  • DuckDuckGo(一次標準検索)
  • Yahoo(Bing提供)
  • 勇敢な探求(インディペンデント索引)

📁 プロジェクト構成

🤖 エージェントスキル&MCPサポート

このプロジェクトには、Gemini CLIおよび.agents/の規則に従う他のツールの両方に対する組み込みのAIエージェントサポートが含まれています。

利用可能なスキル

スキル 説明

このページは AI により自動翻訳されています。技術的な詳細は原文をご確認ください。

README

以下は原文 README の抜粋です。原文を見る。

SoSearch API

A lightning-fast pseudo Web Search Engine API written in Rust — also works as an MCP server for AI agents. This project emulates popular APIs like SerpAPI or Tavily without needing official and expensive API keys, by multiplexing requests to popular engines directly and scraping the results concurrently.

Philosophy

  • Performance: Powered by tokio for async concurrent I/O.
  • Bot Bypass: Leverages rquest with TLS impersonation (e.g., simulating a Chrome 124 browser footprint at the TLS/HTTP2 layer) to minimize blocking vs standard HTTP clients (the Rust equivalent of curl_cffi).
  • Standardized: Normalizes DuckDuckGo, Yahoo, and Brave HTML results into a standardized SearchResult JSON array.

Core Stack

🔍 Supported Search Engines

  • DuckDuckGo (Primary standard search)
  • Yahoo (Powered by Bing)
  • Brave Search (Independent index)

📁 Project Structure

src/
├── main.rs              # Entry point: HTTP server or MCP mode (--mcp)
├── search.rs            # Shared concurrent search logic
├── mcp.rs               # MCP stdio server (JSON-RPC 2.0)
├── models.rs            # SearchResultItem, SearchResponse structs
└── engines/
    ├── mod.rs            # SearchEngine enum + trait dispatch
    ├── duckduckgo.rs     # DuckDuckGo scraper
    ├── yahoo.rs          # Yahoo scraper (Bing-powered)
    └── brave.rs          # Brave Search scraper
examples/
├── fetch_html.rs        # Download raw HTML for offline debugging
└── test_parser.rs       # Offline CSS selector iteration
.gemini/                 # Gemini CLI agent config
├── GEMINI.md            # Project-level system prompt
├── settings.json        # MCP server configuration
└── skills/              # Project-level agent skills
    ├── sosearch-engine-dev/  # Scraper development workflow
    └── sosearch-api-ops/     # API operations & deployment
.agents/                 # Generic agent config (compatible with multiple AI tools)
└── skills/              # Same skills, alternative discovery path
    ├── sosearch-engine-dev/
    └── sosearch-api-ops/

🤖 Agent Skills & MCP Support

This project includes built-in AI agent support for both Gemini CLI and other tools that follow the .agents/ convention.

Available Skills

Skill Description
sosearch-engine-dev Full workflow for adding/debugging search engine scrapers: fetch HTML → test selectors offline → decode URLs → integrate
sosearch-api-ops Operations guide: build, run, test, deploy (local + Docker), troubleshoot

MCP Servers

Configured in .gemini/settings.json:

Server Package Purpose
filesystem @modelcontextprotocol/server-filesystem Scoped file access to project directory

Usage with Gemini CLI

GitHub で README 全文を見る

インストール

This server does not publish a one-line install command.

Open the repository installation guide MCP 初心者?mcpskill.org のガイドから始めましょう →

設定

{ "mcpServers": { "sosearch": { "command": "/path/to/SoSearch", "args": ["--mcp"] } } }