<!-- twin of https://specstream.ai/duckduckgo-mcp -->
# DuckDuckGo MCP server: setup, limits and search at $1 per 1,000

Compared on Nov 12, 2026. The page: https://specstream.ai/duckduckgo-mcp

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.

[Get an API key](https://specstream.ai/signup?src=alternatives-duckduckgo-mcp&utm_source=alternatives-md&utm_campaign=duckduckgo-mcp&returnTo=%2Fworkspace%2Fagents%3Ftab%3Dkeys) 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/mcp
```

Cursor, VS Code, ChatGPT and the other clients take the same address. The [MCP client guides](https://specstream.ai/docs/mcp/clients?utm_source=alternatives&utm_campaign=duckduckgo-mcp) 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](https://specstream.ai/benchmarks?utm_source=alternatives&utm_campaign=duckduckgo-mcp).

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](https://specstream.ai/migrate/searxng?utm_source=alternatives&utm_campaign=duckduckgo-mcp).

## 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/mcp
```

3. 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

### Is there an official DuckDuckGo MCP server?

The DuckDuckGo MCP servers are community projects: Docker's `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?

Run `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?

DuckDuckGo answers the server's default client with an empty HTTP 202 page, which reads as no results. Search works only with the server's `[browser]` extra installed, and without it search returns a message asking you to install it.

### Does the DuckDuckGo MCP server need an API key?

No. It needs no key and no account, and runs on your machine at up to 30 searches a minute by default. SpecStream's hosted server needs a free account, and a client that signs in with OAuth needs no key.

### What does SpecStream's MCP search cost?

$1 per 1,000 searches of up to 10 results on the fast search, $5 per 1,000 with the answer, and $0.80 per 1,000 pages read. New accounts get $10 of credit with no card.

## 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 README](https://github.com/nickclyde/duckduckgo-mcp-server), read Nov 12, 2026
- [duckduckgo-mcp-server on PyPI](https://pypi.org/project/duckduckgo-mcp-server/), read Nov 12, 2026
- [duckduckgo-mcp-server (npm) README](https://github.com/zhsama/duckduckgo-mcp-server), read Nov 12, 2026
- [Web Forager README](https://github.com/CyranoB/web-forager), read Nov 12, 2026
- [Docker mcp/duckduckgo](https://hub.docker.com/r/mcp/duckduckgo), read Nov 12, 2026
- [Exa MCP](https://docs.exa.ai/reference/exa-mcp), read Nov 12, 2026
- [Exa pricing](https://exa.ai/pricing), read Nov 12, 2026
- [Parallel MCP](https://parallel.ai/mcp), read Nov 12, 2026
- [Brave Search MCP server](https://github.com/brave/brave-search-mcp-server), read Nov 12, 2026
- [Brave Search API](https://brave.com/search/api/), read Nov 12, 2026
- [mcp-searxng README](https://github.com/ihor-sokoliuk/mcp-searxng), read Nov 12, 2026
- [SearXNG search API](https://docs.searxng.org/dev/search_api.html), read Nov 12, 2026
- [SpecStream benchmarks](https://specstream.ai/benchmarks), read Nov 12, 2026
- [SpecStream for agents](https://specstream.ai/agents.md), read Nov 12, 2026
