Labsco
MCP SERVER

DuckDuckGo Search

by nickclyde

Search the web through DuckDuckGo and read the page you picked, without an API key.

Web Search EnginesVerified
Summary
The model can look something up and then actually read it.

What it takes off you is the snippet ceiling: a search alone gives three lines of context, and the second call turns the chosen result into clean text the model can reason over. Both calls label their output as untrusted input, which is the right posture for text that arrives from a page nobody vetted.

What it is

Two calls: a DuckDuckGo search that returns titles, URLs and snippets, and a fetch that strips a page down to its readable text. Both mark what they return as untrusted input.

What you get
  • Web results with titles, URLs and snippets — ten by default, and narrowed by region on the call or through DDG_REGION
  • One page fetched and reduced to its main text, with navigation, headers, footers, scripts and styles removed
  • Pagination over a long page, through a start index and a maximum length that starts at 8000 characters
  • SafeSearch set for the whole server through DDG_SAFE_SEARCH — STRICT, MODERATE or OFF
  • A curl backend that impersonates a real Chrome TLS handshake, chosen per call or as the server default, for sites that block a plain HTTP client
  • Stdio by default, with --transport sse or streamable-http, and --allowed-hosts for running it behind a reverse proxy
  • A CA bundle through --ca-certs or DDG_CA_CERTS, for networks whose proxy re-signs HTTPS
Requirements

Uv and network access — no account and no API key. Install the browser extra, `uvx --with "duckduckgo-mcp-server[browser]" duckduckgo-mcp-server`: DuckDuckGo's search endpoint fingerprint-blocks the plain HTTP client, and the fallback that gets past it needs that extra. Without it, a blocked search returns a message telling you to install it rather than results.

Setup effort

One command — uvx duckduckgo-mcp-server