DuckDuckGo MCP server
Setup, limits and search at $1 per 1,000.
The DuckDuckGo MCP server on PyPI installs with uvx duckduckgo-mcp-server, needs no key and gives your agent search and fetch_content. It holds itself to 30 searches a minute, and DuckDuckGo blocks its default client unless you add the [browser] extra.
SpecStream is the live web data engine for teams and agents. Its hosted MCP server, https://api.specstream.ai/mcp, gives your agent the most accurate web search API in the world at $1 per 1,000 searches, with nothing to install and $10 of free credit.
New accounts get $10 of credit, no card. It covers 10,000 fast searches.
Three DuckDuckGo MCP servers and two hosted servers, side by side
| SpecStream | duckduckgo-mcp-server (Python) | duckduckgo-mcp-server (npm) | Web Forager | Exa MCP | |
|---|---|---|---|---|---|
| Install line or address | https://api.specstream.ai/mcp over Streamable HTTP, with OAuth or an API key | uvx duckduckgo-mcp-server, or claude mcp add ddg-search uvx duckduckgo-mcp-server in Claude Code | npx -y duckduckgo-mcp-server in the client's config | uvx --python ">=3.10,<3.14" web-forager serve | https://mcp.exa.ai/mcp |
| Key and account | A free account, no card. A client that signs in with OAuth opens the browser once, and no key sits in a file | None in the config | None in the config | None in the config | None at the free rate limit. From IPv6 or a proxied network, sign in with OAuth or add a key |
| Where the search runs | On SpecStream's servers, across several search engines. Nothing runs on your machine | On your machine. DuckDuckGo blocks the default client with an empty HTTP 202 page, and search needs the [browser] extra to pass | On your machine | On your machine. Web search falls back to Brave when DuckDuckGo fails | On Exa's servers |
| Limits | The spending limit you set on each key | 30 searches and 20 page fetches a minute by default | 1 request a second and 15,000 a month | No retry loop or rate limiting of its own | A free rate limit |
| Tools your agent gets | search_web, read_pages, and Deep Search through compile, quote_capacity_work and authorize_capacity_work | search, fetch_content and expand_link | duckduckgo_search, 1 to 20 results a call | duckduckgo_search, duckduckgo_news_search and web_fetch | Search and fetch. Exa Agent needs sign in or a key |
| What a search returns | Ranked sources with title, URL and snippet. The default search adds the answer with the page it was read from and the read time | Titles, URLs and snippets as formatted text | Markdown search results | JSON by default, or text | Search results, and page text through fetch |
| What it costs | $1 per 1,000 searches of up to 10 results on the fast search, $5 with the answer, $0.80 per 1,000 pages read. $10 of credit to start, no card | Free software under the MIT License | Free to run | Free to run | Free at the rate limit. Past it, from $4 per 1,000 requests |
Why agents search through SpecStream
No empty results when DuckDuckGo blocks
A DuckDuckGo server reads DuckDuckGo's results page from your machine. DuckDuckGo now answers its default client with an empty HTTP 202 page, which the server reads as no results, and the fix is a second install, the [browser] extra. A SpecStream search runs on SpecStream's servers across several search engines, and a search that returns nothing costs nothing.
One line in Claude Code
Run this and sign in to SpecStream when the browser opens. There is no Python, no Node.js and no browser extra to install:
claude mcp add --transport http specstream https://api.specstream.ai/mcpCursor, VS Code, ChatGPT and the other clients take the same address. The MCP client guides show where each one keeps it.
The most accurate web search API in the world, as one tool call
search_web runs SpecStream's Search API. It scores 97.9 F-score on all 1,000 official SimpleQA Verified questions (978 correct), and 64.0 item F1 and 43.4 row F1 on all 200 official WideSearch tasks. The Extract API behind read_pages scores 0.908 F1 on WCXB. The scores and the method are on the benchmarks page.
A results page hands your agent ten links to open. The default search hands it the answer, with the page it was read from and the read time, when the pages agree on a value, and null when they do not.
Whole pages, PDFs included
fetch_content returns 8,000 characters a call by default and pages through the rest. read_pages reads up to 20 URLs a call, PDF, Word and Excel files included, and returns each page's main text as Markdown with its title and the date it says it was published, at $0.80 per 1,000 pages. A page with no text is not charged.
Search operators hold on every result
site:, -site:, filetype:, quoted phrases and after: or before: hold on every result SpecStream returns. A result that breaks one is left out, and SpecStream searches the engines' next pages to fill the list.
Your agent asks for data and gets rows
When the job is a list, the same connection runs Deep Search. compile reads the request into conditions and facts you can edit, quote_capacity_work prices it, and authorize_capacity_work runs it under the maximum you approve. Rows cost 5¢, 15¢ or $1 each, with the source URL and read time on every value, and a run that finds nothing costs nothing.
Other DuckDuckGo MCP alternatives
Docker's mcp/duckduckgo image
Docker's MCP catalog carries mcp/duckduckgo, which its page calls a community maintained server, not published by or affiliated with DuckDuckGo. It runs in a container on your machine. SpecStream's server is hosted, so there is no container to run.
Parallel MCP
Parallel's hosted server at https://mcp.parallel.ai/mcp needs no account and no key, and web_search, web_fetch and web_decisions are free at lower rate limits. SpecStream's free start is $10 of credit with no daily allowance, spent at $1 per 1,000 fast searches.
Brave Search MCP
Brave's official server runs on your machine and needs a BRAVE_API_KEY. The Search API costs $5 per 1,000 requests and includes $5 in free credits every month. SpecStream's fast search is $1 per 1,000, with page reading on the same server.
SearXNG MCP
mcp-searxng searches through a SearXNG instance you name in SEARXNG_URL, and the instance must answer in JSON: SearXNG's docs say an unset format returns 403 Forbidden and that many public instances have it turned off. SpecStream answers SearXNG's own address, so a tool built for SearXNG works with no server to run. See moving off SearXNG.
How SpecStream scores
The same numbers as the benchmarks page, from the official tasks and scorers.
How to move from a DuckDuckGo server to SpecStream
1. Sign up at specstream.ai. The account starts with $10 of credit, no card.
2. In Claude Code, remove the DuckDuckGo server and add SpecStream, then sign in when the browser opens:
claude mcp remove ddg-search
claude mcp add --transport http specstream https://api.specstream.ai/mcp3. In Claude Desktop, delete the ddg-search entry from claude_desktop_config.json and add https://api.specstream.ai/mcp as a custom connector.
4. In Cursor, create a key under Agents & API in the workspace, put it in SPECSTREAM_API_KEY, and replace the DuckDuckGo entry in mcp.json with this:
{
"mcpServers": {
"specstream": {
"url": "https://api.specstream.ai/mcp",
"headers": { "Authorization": "Bearer ${env:SPECSTREAM_API_KEY}" }
}
}
}5. Your agent calls search_web where it called search, and read_pages where it called fetch_content.
Frequently asked questions
Something we didn't answer? Talk to a human
Is there an official DuckDuckGo MCP server?
mcp/duckduckgo image says it is not published by or affiliated with DuckDuckGo. The one on PyPI, duckduckgo-mcp-server, is MIT licensed.How do I install the DuckDuckGo MCP server?
uvx duckduckgo-mcp-server, or claude mcp add ddg-search uvx duckduckgo-mcp-server in Claude Code. Use uvx --with "duckduckgo-mcp-server[browser]" duckduckgo-mcp-server so search still works when DuckDuckGo blocks the default client.Why does the DuckDuckGo MCP server return no results?
[browser] extra installed, and without it search returns a message asking you to install it.Does the DuckDuckGo MCP server need an API key?
What does SpecStream's MCP search cost?
Sources
SpecStream wrote this page. Each install line, limit and price comes from the project's own README or the company's own page, read on Nov 12, 2026.
- duckduckgo-mcp-server READMEgithub.com/nickclyde/duckduckgo-mcp-server, read Nov 12, 2026
- duckduckgo-mcp-server on PyPIpypi.org/project/duckduckgo-mcp-server/, read Nov 12, 2026
- duckduckgo-mcp-server (npm) READMEgithub.com/zhsama/duckduckgo-mcp-server, read Nov 12, 2026
- Web Forager READMEgithub.com/CyranoB/web-forager, read Nov 12, 2026
- Docker mcp/duckduckgohub.docker.com/r/mcp/duckduckgo, read Nov 12, 2026
- Exa MCPdocs.exa.ai/reference/exa-mcp, read Nov 12, 2026
- Exa pricingexa.ai/pricing, read Nov 12, 2026
- Parallel MCPparallel.ai/mcp, read Nov 12, 2026
- Brave Search MCP servergithub.com/brave/brave-search-mcp-server, read Nov 12, 2026
- Brave Search APIbrave.com/search/api/, read Nov 12, 2026
- mcp-searxng READMEgithub.com/ihor-sokoliuk/mcp-searxng, read Nov 12, 2026
- SearXNG search APIdocs.searxng.org/dev/search_api.html, read Nov 12, 2026
- SpecStream benchmarksspecstream.ai/benchmarks, read Nov 12, 2026
- SpecStream for agentsspecstream.ai/agents.md, read Nov 12, 2026




