← all repositories
nickclyde/duckduckgo-mcp-server

Your LLM's search engine, now with a fake Chrome fingerprint

An MCP server that plugs DuckDuckGo into Claude Desktop, with a sneaky TLS-impersonation mode for scraping sites that hate bots.

1.3k stars Python Coding AssistantsAgents
duckduckgo-mcp-server
Not currently ranked — collecting fresh signals.
star history

What it does

Exposes two tools to any MCP client (Claude Desktop, Claude Code, or custom): search for DuckDuckGo queries and fetch_content for pulling and cleaning webpage text. Results are formatted for LLM consumption, with rate limits baked in (30 searches, 20 fetches per minute).

The interesting bit

The real craft is in the optional curl fetch backend. The default httpx client gets blocked by Cloudflare and friends because its TLS fingerprint is unmistakably “not a browser” — the JA3 signature betrays it regardless of User-Agent. The opt-in curl backend uses curl_cffi to impersonate Chrome 131’s TLS handshake, and an auto mode will retry with the disguise when httpx hits a 403. Search itself doesn’t need this; DuckDuckGo is friendly enough.

Key highlights

  • Per-call backend override: an MCP client can choose httpx, curl, or auto for any single fetch_content call, independent of the server default
  • SafeSearch and region are locked at server startup via env vars (DDG_SAFE_SEARCH, DDG_REGION), so the AI assistant can’t disable filters on its own
  • Supports stdio, sse, and streamable-http transports
  • Optional [browser] extra keeps the base install lightweight if you don’t need TLS impersonation

Caveats

  • The search tool always uses httpx; no TLS impersonation there (the README says DuckDuckGo doesn’t require it)
  • Rate limits are hardcoded, not configurable from the sources shown
  • No caching layer yet; the README lists it as a future improvement

Verdict

Worth a look if you’re running Claude Desktop or another MCP client and want your LLM to search the web without signing up for yet another API key. The TLS-impersonation trick is genuinely useful for research workflows. Skip it if you already have a preferred search API with proper rate limits and don’t need the bot-evasion.

Frequently asked

What is nickclyde/duckduckgo-mcp-server?
An MCP server that plugs DuckDuckGo into Claude Desktop, with a sneaky TLS-impersonation mode for scraping sites that hate bots.
Is duckduckgo-mcp-server open source?
Yes — nickclyde/duckduckgo-mcp-server is open source, released under the MIT license.
What language is duckduckgo-mcp-server written in?
nickclyde/duckduckgo-mcp-server is primarily written in Python.
How popular is duckduckgo-mcp-server?
nickclyde/duckduckgo-mcp-server has 1.3k stars on GitHub.
Where can I find duckduckgo-mcp-server?
nickclyde/duckduckgo-mcp-server is on GitHub at https://github.com/nickclyde/duckduckgo-mcp-server.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.