NS

netlops/sosearch

Developer tools

Эта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал

133 stars 17 forks Качество 68 Тренд 30NOASSERTION

🔎 Один запрос. Три поисковые системы. Самостоятельный веб-поиск для AI-агентов через HTTP API или MCP. Агрегатирует DuckDuckGo, Brave и Yahoo. Создано с Rust. Ключи API не требуются.

Обзор

Молниеносно быстрый псевдо-поисковый API веб-поисковой системы, вписанный — также работает для агентов ИИ. Этот проект эмулирует популярные API, такие как SerpAPI или Tavily, без необходимости в официальных и дорогих ключах API, напрямую мультиплексируя запросы к популярным движкам и одновременно собирая результаты. - : Работает на tokio для асинхронного одновременного ввода-вывода. - : Использует rquest с TLS-имитацией (например, имитация присутствия браузера Chrome 124 на уровне TLS/HTTP2) для минимизации блокировки по сравнению со стандартными HTTP-клиентами (аналог curl_cffi в Rust). - : Нормализует результаты HTML DuckDuckGo, Yahoo и Brave в стандартизированный JSON-массив SearchResult. * (Основной стандартный поиск) * (Работает на Bing) * (Независимый индекс) Этот проект включает встроенную поддержку AI-агентов для обоих инструментов и других инструментов, соответствующих конвенции .agents/. Запустите SoSearch как MCP-сервер для ИИ-агентов (Claude, Gemini, Cursor и др.): Это раскрывает web_search инструмент, который агенты ИИ могут использовать для поиска в интернете.

Обзор (машинный перевод)

Молниеносный псевдо-поисковый API веб-поиска, написанный на Rust — также работает как MCP-сервер для AI-агентов. Этот проект эмулирует популярные API, такие как SerpAPI или Tavily, без необходимости в официальных и дорогих API-ключах, напрямую мультиплексируя запросы к популярным движкам и одновременно собирая результаты.

Философия

  • Performance: Питание от tokio для асинхронного одновременного ввода-вывода.
  • Обход бота: Использует rquest с использованием TLS-имитации (например, имитация присутствия браузера Chrome 124 на уровне TLS/HTTP2) для минимизации блокировки по сравнению со стандартными HTTP-клиентами (аналог curl_cffi в Rust).
  • Standardized: Нормализует DuckDuckGo, Yahoo и Brave HTML приводит в стандартизированный SearchResult JSON-массивы.

Основной стек

  • Axum
  • Токио
  • RQUEST
  • скребок

🔍 Поддерживаемые поисковые системы

  • DuckDuckGo (Основной стандартный поиск)
  • Yahoo (На базе Bing)
  • Brave Search (Независимый индекс)

📁 Структура проекта

🤖 Навыки агентов и поддержка MCP

Проект включает встроенную поддержку AI-агентов как для Gemini CLI, так и для других инструментов, соответствующих конвенции .agents/.

Доступные навыки

Навык Описание

Эта страница переведена автоматически. Технические детали смотрите в оригинале.

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

Открыть полный README на GitHub

Установка

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"] } } }