Daedra

Daedra

Self-contained web search MCP server. 14 unkeyed backends with automatic fallback. Mwmbl and Marginalia answer from any IP. Brave HTML may rate-limit. Works from any IP. Pure Rust.

crates.io 14 backends MIT
$ cargo install daedra

Multi-Backend Fallback

14 unkeyed backends run each query. Results merge by relevance. Mwmbl → Brave → Marginalia → Bing RSS → Bing → Google News → HN → Google → Wikipedia → StackOverflow → GitHub → Wiby → DDG Instant → DuckDuckGo HTML.

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-inspector, Office documents via anydoc. Responses classified as Html, Pdf, Document, Text, or Binary before Markdown conversion.

Works From Any IP

Mwmbl, Marginalia, 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?
MwmblPublic JSON APINoneAlways
BraveHTML scrapingNoneSometimes
MarginaliaPublic JSON APINone / MARGINALIA_API_KEYAlways
Bing RSSRSSNoneAlways
BingHTML scrapingNoneSometimes
Google NewsNews RSSNoneAlways
Hacker NewsAlgolia JSONNoneAlways
GoogleHTML scrapingNoneRarely
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