NS

netlops/sosearch

Developer tools

이 페이지는 AI로 자동 번역되었습니다. 기술적인 세부 사항은 원문을 확인하세요. 원문 보기

133 stars 17 forks 품질 68 트렌드 30NOASSERTION

🔎 한 번의 쿼리. 세 개의 검색 엔진. HTTP API 또는 MCP를 통한 AI 에이전트 자체 호스팅 웹 검색. DuckDuckGo, Brave, Yahoo를 집계. Rust로 구축됨. API 키가 필요 없음.

개요

AI 에이전트용 AI 에이전트용으로도 작동하는 번개처럼 빠른 의사 웹 검색 엔진 API가 작성되었습니다. 이 프로젝트는 공식 및 비싼 API 키 없이도 SerpAPI나 Tavily와 같은 인기 있는 API를 직접 인기 있는 엔진에 다중화하고 결과를 동시에 스크랩하여 에뮬레이션합니다. - : tokio가 비동기 동시 I/O를 지원합니다. - : TLS 모조(예: TLS/HTTP2 계층에서 Chrome 124 브라우저 사용량을 시뮬레이션)로 rquest를 활용해 표준 HTTP 클라이언트(Rust의 curl_cffi 대응)에 비해 차단을 최소화합니다. - : DuckDuckGo, Yahoo, Brave HTML 결과를 표준화된 SearchResult JSON 배열로 정규화합니다. * (기본 표준 검색) * (빙 제공) * (독립 색인) 이 프로젝트에는 .agents/ 관습을 따르는 도구들에 대한 내장 AI 에이전트 지원이 포함되어 있습니다. SoSearch를 AI 에이전트(Claude, Gemini, Cursor 등)용 MCP 서버로 실행하세요: 이로 인해 AI 에이전트가 웹 검색을 위해 호출할 수 있는 web_search 도구가 공개됩니다.

개요(AI 번역)

Rust로 작성된 번개처럼 빠른 의사 웹 검색 엔진 API는 AI 에이전트를 위한 MCP 서버로도 작동합니다. 이 프로젝트는 공식 및 비싼 API 키가 필요 없이도 SerpAPI나 Tavily 같은 인기 있는 API를 직접 다중 재생하여 결과를 동시에 스크랩하여 에뮬레이션합니다.

철학

  • 성능: tokio로 구동되어 비동기 동시 I/O를 지원합니다.
  • 봇 우회: TLS 모방(예: TLS/HTTP2 계층에서 Chrome 124 브라우저 사용 공간을 시뮬레이션)과 함께 rquest를 활용해 표준 HTTP 클라이언트(Rust의 curl_cffi에 해당)보다 차단을 최소화합니다.
  • 표준화: DuckDuckGo, Yahoo, Brave HTML 결과를 표준화된 SearchResult JSON 배열로 정규화합니다.

코어 스택

  • 악숨
  • 도쿄
  • RQUEST
  • 스크레이퍼

🔍 지원되는 검색 엔진

  • DuckDuckGo (기본 표준 검색)
  • 야후 (빙 제공)
  • 브레이브 서치 (독립 색인)

📁 프로젝트 구조

🤖 요원 기술 및 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"] } } }