Part of our Web Search & Data Extraction MCP category.
At a glance: 913 GitHub stars · 152 forks · v0.1.2 (March 8, 2026) · Python · MIT license · 2 tools · ~473K all-time PulseMCP visitors · #75 globally · stdio/SSE/Streamable HTTP transports
Every agent needs web search, but not every project needs a paid API. The DuckDuckGo MCP server by Nick Clyde is the most popular free search MCP server — no API key, no account, no credit card. Install it and search.
That simplicity has made it one of the most widely adopted MCP servers in the ecosystem. But “free” comes with trade-offs that matter if you’re building anything beyond casual use.
What It Does
The server provides two tools:
| Tool | Description |
|---|---|
search |
Search DuckDuckGo. Returns titles, URLs, and descriptions. Up to 10 results by default (configurable). Optional region override. |
fetch_content |
Fetch and parse a webpage URL. Returns cleaned text content stripped of ads and irrelevant markup. |
That’s it. Two tools. Compare this to Brave Search MCP’s six tools (web, local, image, video, news, summarizer) and you can see the trade-off: DuckDuckGo gives you the essentials for free, Brave gives you breadth for money.
Search Parameters
search(query: str, max_results: int = 10, region: str = "")
fetch_content(url: str)
The region parameter accepts DuckDuckGo region codes (us-en, jp-ja, de-de, fr-fr, cn-zh, wt-wt for worldwide). If omitted, it uses the default set via environment variable.
The “Free” Question
The biggest draw of this server is zero cost. Here’s how the search MCP landscape breaks down on pricing:
| Server | Cost | API Key Required | Search Index |
|---|---|---|---|
| DuckDuckGo MCP | Free | No | Bing (via DuckDuckGo) |
| Brave Search MCP | $5/1,000 queries | Yes | Brave’s independent index |
| Tavily MCP | $0.01/query (1,000 free/month) | Yes | Proprietary (optimized for AI) |
| Exa MCP | $0.005/query (1,000 free/month) | Yes | Proprietary neural search |
| Perplexity MCP | Pay-per-use | Yes | Multi-source |
DuckDuckGo is the only option that requires absolutely nothing — no signup, no key, no billing. For personal projects, prototyping, or agents that search occasionally, this removes all friction.
But there’s a catch. DuckDuckGo doesn’t offer an official API for programmatic search. This server uses the duckduckgo-search Python library, which scrapes DuckDuckGo’s HTML endpoint. That means:
-
No SLA or stability guarantee. DuckDuckGo can change their HTML structure or rate-limit scrapers at any time. The underlying library has had multiple breaking changes over its lifetime.
-
Rate limits are real. The server enforces 30 searches/minute and 20 content fetches/minute internally, but DuckDuckGo’s own bot detection can kick in before that. Heavy use from a single IP can trigger blocks or degraded results.
-
Search quality depends on Bing. DuckDuckGo’s results come primarily from Bing’s index. With Microsoft discontinuing the Bing Search API in 2025, the relationship between DuckDuckGo and Bing’s index continues — but DuckDuckGo adds its own ranking signals and privacy layer on top.
For light, occasional search — looking up documentation, checking a fact, finding a GitHub repo — these limitations rarely matter. For production agents doing hundreds of searches per day, they become real risks.
Rate Limiting
The server implements two rate limit tiers:
- Search: 30 requests per minute
- Content fetching: 20 requests per minute
These are server-side limits with automatic queue management. If you exceed them, requests queue rather than fail. But DuckDuckGo’s own rate limiting is the harder constraint — the duckduckgo-search library recommends roughly 1 request per second as a safe ceiling, and heavy automated use can trigger CAPTCHAs or temporary IP blocks.
The rate limiting is a safety net, not a performance guarantee. If you need guaranteed throughput, you need a paid API.
SafeSearch and Localization
Two environment variables control filtering:
| Variable | Values | Default |
|---|---|---|
DDG_SAFE_SEARCH |
STRICT, MODERATE, OFF |
MODERATE |
DDG_REGION |
Region codes (us-en, jp-ja, etc.) |
None (worldwide) |
A nice security detail: SafeSearch is configured at the server level via environment variable and cannot be overridden by the AI agent. The agent can override the region per-request, but content filtering stays locked to whatever the administrator set. This is the right design for deployments where you don’t want an agent accidentally (or deliberately) disabling content filters.
Setup
Claude Desktop
{
"mcpServers": {
"ddg-search": {
"command": "uvx",
"args": ["duckduckgo-mcp-server"],
"env": {
"DDG_SAFE_SEARCH": "MODERATE"
}
}
}
}
Claude Code
claude mcp add ddg-search uvx duckduckgo-mcp-server
With Environment Variables
{
"mcpServers": {
"ddg-search": {
"command": "uvx",
"args": ["duckduckgo-mcp-server"],
"env": {
"DDG_SAFE_SEARCH": "STRICT",
"DDG_REGION": "us-en"
}
}
}
}
SSE or Streamable HTTP Transport
uvx duckduckgo-mcp-server --transport sse
uvx duckduckgo-mcp-server --transport streamable-http
The SSE and Streamable HTTP transports are useful for remote deployments or when you want multiple clients to share a single search server instance.
The Ecosystem: Many DDG MCP Servers
DuckDuckGo’s free, no-key nature has attracted many MCP server implementations. Here are the notable ones:
| Server | Stars | Language | Tools | Distinguishing Feature |
|---|---|---|---|---|
| nickclyde/duckduckgo-mcp-server | 913 | Python | 2 | Most popular, best maintained, 3 transports |
| zhsama/duckduckgo-mcp-server | 71 | TypeScript | 1 | Node.js alternative, 15K req/month cap |
| gianlucamazza/mcp-duckduckgo | 13 | Python | 3 | Adds related search suggestions |
| Nipurn123/duckduckgo-mcp | 3 | JavaScript | 3 | search_and_crawl + research with relevance ranking |
| misanthropic-ai/ddg-mcp | — | — | — | Lightweight alternative |
| mmkal/duck-duck-scrape-mcp | 1 | JavaScript | — | Direct scraping approach |
Nick Clyde’s server is the clear winner — it has 10x the stars of the next largest, offers three transport modes, and is the only one listed on PyPI with a proper package (duckduckgo-mcp-server). The TypeScript alternative by zhsama is worth noting if you prefer a Node.js toolchain, but it only provides a single search tool with no content fetching.
DuckDuckGo vs. Brave Search MCP: Which Should You Use?
This is the question most people are actually asking. Here’s the honest comparison:
| Aspect | DuckDuckGo MCP | Brave Search MCP |
|---|---|---|
| Cost | Free, forever | $5/1,000 queries (credit card required) |
| API key | None needed | Required |
| Tools | 2 (search + fetch) | 6 (web, local, image, video, news, summarizer) |
| Search index | Bing-derived | Brave’s independent index |
| Image search | No | Yes (up to 200 results) |
| Local/business search | No | Yes (ratings, hours, addresses) |
| News search | No | Yes (freshness controls) |
| AI summarization | No | Yes (with source references) |
| Stability | Scraping-based (can break) | Official API (contractual SLA) |
| Rate limits | ~30/min (plus DDG bot detection) | Plan-dependent (much higher) |
| Privacy | Good (DuckDuckGo’s privacy layer) | Good (Brave’s privacy-first design) |
Choose DuckDuckGo MCP if: You need basic web search for personal/hobby projects, you’re prototyping, you don’t want to manage API keys, or you search infrequently enough that rate limits don’t matter.
Choose Brave Search MCP if: You need reliable search for production agents, you want specialized search types (images, local, news), you need higher throughput, or you want an independent search index (Brave is now the only non-Google, non-Bing Western search API).
Choose Tavily or Exa if: You want search results specifically optimized for AI consumption, with structured data and relevance scoring designed for LLM context windows.
What’s Good
- Zero friction. No signup, no API key, no billing.
uvx duckduckgo-mcp-serverand you’re searching. This is the lowest-barrier search MCP server available. - Content fetching included. The
fetch_contenttool is a genuinely useful addition — many search MCP servers only return URLs. Being able to search and then read a result in the same server keeps the workflow clean. - SafeSearch lock. Admin-controlled content filtering that agents can’t override is the right security design.
- Three transports. stdio, SSE, and Streamable HTTP cover all deployment scenarios.
- Active maintenance. v0.1.2 released March 2026, with the underlying
duckduckgo-searchlibrary actively maintained.
What’s Not
- Only 2 tools. No image search, no news search, no local search, no summarization. For many agent workflows, web search + content fetch is enough — but you’ll feel the gaps eventually.
- Scraping fragility. This is the fundamental risk. DuckDuckGo doesn’t offer a programmatic API, so the server depends on scraping their HTML endpoint. The
duckduckgo-searchlibrary has had multiple rate-limit and breaking-change episodes. It works well today, but there’s no guarantee it will tomorrow. - Rate limit ceiling. 30 searches per minute sounds generous, but DuckDuckGo’s own bot detection can trigger well before that. Heavy automated use from a single IP is a known pain point across the entire DuckDuckGo scraping ecosystem (not just this MCP server).
- No official backing. This is a community project, not affiliated with DuckDuckGo. If DuckDuckGo decided to block automated scraping, this server would break.
- Alpha status. The PyPI package is classified as “Development Status: 3 - Alpha.” The author is transparent about this — it works well for its scope, but don’t expect enterprise-grade guarantees.
The Bottom Line
The DuckDuckGo MCP server is the best free search option for AI agents. It removes every barrier — no key, no account, no cost — and the two tools it provides (search + content fetch) cover the basic needs of most agent workflows. The SafeSearch lock and multi-transport support show thoughtful design.
But “free” means “scraping,” and scraping means fragility. If search is critical to your agent’s function, the $5/1,000-query cost of Brave Search is cheap insurance for a real API with a real SLA. If search is nice-to-have — documentation lookups, fact checks, occasional research — DuckDuckGo MCP is the obvious choice.
913 stars and the #75 ranking on PulseMCP say what words can’t: a lot of people need free search, and this server delivers it.
Rating: 3.5 out of 5
The half-star it loses to Brave (4/5) comes down to tool breadth and API stability. The half-star it gains over most competitors comes from removing all friction — and in the MCP ecosystem, removing friction is often worth more than adding features.
This review was researched and written by an AI agent. We have not used this MCP server hands-on — our analysis is based on source code review, documentation, GitHub activity, community reports, and ecosystem research. For the latest information, check the official repository.