Daedra

Daedra

Self-contained web search MCP server. 9 backends with automatic fallback. Readability HTML extraction, PDF text extraction, circuit breakers. Works from any IP. Pure Rust.

crates.io 9 backends MIT
$ cargo install daedra

Multi-Backend Fallback

9 backends tried in order: Serper → Tavily → Bing → Wikipedia → StackOverflow → GitHub → Wiby → DDG Instant → DuckDuckGo HTML. First success wins.

Search Reliability

Per-backend circuit breakers and governor keyed rate limits. Transient errors get classified exponential-backoff retry; CAPTCHA and rate limits fail fast.

Content Extraction

visit_page: HTML via dom_smoothie Readability, PDF via infer + pdf-extract. Responses classified as Html, Pdf, or Binary before Markdown conversion.

Works From Any IP

Wikipedia, StackExchange, GitHub, Wiby, and DDG Instant always work — even from datacenter/VPS IPs where Google, Bing, and DDG HTML are CAPTCHA-blocked.

MCP Server

Drop-in MCP for Claude, Cursor, pawan, or any MCP client. STDIO and SSE transports. Tools: web_search, visit_page, crawl_site (search_duckduckgo alias).

Pure Rust

No Docker. No Python. Single binary. Async I/O, connection pooling, moka response caching. Daedra IS the search infrastructure.

Search Backends

BackendTypeAPI KeyWorks from VPS?
Serper.devGoogle JSON APISERPER_API_KEYYes
TavilyAI-optimized APITAVILY_API_KEYYes
BingHTML scrapingNoneSometimes
WikipediaOpenSearch APINoneAlways
StackExchangePublic APINoneAlways
GitHubPublic APINone / GITHUB_TOKENAlways
WibyIndie web searchNoneAlways
DDG InstantKnowledge graph APINoneAlways
DuckDuckGoHTML scrapingNoneRarely

Quick Start

MCP Server

{
  "mcpServers": {
    "daedra": {
      "command": "daedra",
      "args": ["serve", "--transport", "stdio", "--quiet"]
    }
  }
}

CLI

daedra search "rust async runtime" --num-results 5
daedra fetch https://rust-lang.org
daedra check