---
title: "DuckDuckGo MCP Server: Free Web Search With No API Key"
url: "https://mcpshelf.co/servers/duckduckgo"
description: "A small community server that gives an assistant DuckDuckGo search and a page reader, with no account or key. Setup with uvx and the browser extra."
updated: "2026-10-27"
site: "MCP Shelf"
---

# DuckDuckGo Search MCP

> Web search and a page reader through DuckDuckGo, with no account or API key.

Source: https://mcpshelf.co/servers/duckduckgo  
Markdown: https://mcpshelf.co/servers/duckduckgo.md  
Generated: 2026-10-28T19:08:58.439Z

## Facts

- **Name:** DuckDuckGo Search MCP
- **Tagline:** Web search and a page reader through DuckDuckGo, with no account or API key.
- **Description:** DuckDuckGo Search MCP is a free community server by Nick Clyde that lets an assistant search DuckDuckGo and read web pages, with no account or API key.
- **Repository:** https://github.com/nickclyde/duckduckgo-mcp-server
- **Package:** duckduckgo-mcp-server 0.7.0 (PyPI)
- **Install:** `claude mcp add duckduckgo -- uvx --with 'duckduckgo-mcp-server[browser]' duckduckgo-mcp-server`
- **Transport:** stdio (local)
- **Auth:** No required keys or settings listed
- **Tools exposed:** 3: `search`, `fetch_content`, `expand_link`
- **Category:** Browser and web data (https://mcpshelf.co/categories/browser-and-web)
- **Stats:** 1.6K GitHub stars, 27.7K downloads a week, last commit 4 Sept 2026, 0 upvotes on MCP Shelf
- **Install check:** Started in our test
- **Listed:** 2026-10-27
- **Page updated:** 2026-10-27

## Full description

### What is DuckDuckGo Search MCP?

**DuckDuckGo Search MCP is a free community server by Nick Clyde that lets an assistant search DuckDuckGo and read web pages, with no account or API key.**

Nick Clyde's server is one of the simplest ways to let an assistant search the web: there is no sign-up and no key. It sends your query to DuckDuckGo, returns a tidy list of results, and can fetch a page and turn it into plain text, the main article only, or Markdown, a chunk at a time.

Because it scrapes DuckDuckGo's HTML results rather than calling a paid API, heavy use can get blocked. The server slows itself down to stay under a request limit, and an optional extra lets it imitate a real browser when DuckDuckGo turns plain requests away. A guard stops it from fetching addresses on your own network unless you allow that.

|  |  |
| --- | --- |
| Made by | Nick Clyde (nickclyde/duckduckgo-mcp-server) |
| GitHub | https://github.com/nickclyde/duckduckgo-mcp-server |
| Licence | MIT |
| PyPI package | [duckduckgo-mcp-server](https://pypi.org/project/duckduckgo-mcp-server/) 0.7.0 (4 Sept 2026) |
| GitHub stars | 1.6K |
| Downloads | 27.7K a week |
| Last commit | 4 Sept 2026 |
| Tools | 3 |
| Runs on | Your computer |
| Install check | Started in our test |
| Category | [Browser and web data](https://mcpshelf.co/categories/browser-and-web) |
| Setup checked | 27 Oct 2026 |
| Page updated | 27 Oct 2026 |

**Our check:** We ran this exact config on 27 Oct 2026: it started and answered with 3 tools.

#### MCP Shelf take

> We started DuckDuckGo Search on our own test machine on 27 Oct 2026 and it answered with 3 tools. 2 of the 3 only read; the other 1 can change things. Every tool comes with a useful description, none says whether they change things, and the tool list costs about 800 tokens of context before you ask a thing. It sits 11th of 13 in its category on our shelf by GitHub stars (1.6K, with 27.7K downloads a week).

— MCP Shelf tests (numbers from our own runs), tested on 27 Oct 2026

### What tools does DuckDuckGo Search MCP have?

We listed 3 tools on 27 Oct 2026. 2 only read; the rest can change things or run commands.

| Tool | Kind | What it is for |
| --- | --- | --- |
| `search` | reads | Searches DuckDuckGo and returns titles, links and snippets. Takes an optional region and result count. |
| `fetch_content` | reads | Downloads a page and returns its text, the main article only, or Markdown, in chunks you can page through. |
| `expand_link` | changes | Turns a shortened ref:// link from the results back into the full address. |

#### How clearly it describes its tools

3 of 3 tools have a description and 0 of 3 say whether they change things. The tool list takes at least ~800 tokens of context. No tool says whether it only reads or can change things, so your client treats them all alike: keep approvals on.

### How do I install DuckDuckGo Search MCP?

#### What you need first

- uv, for uvx
- Nothing else: no account or key

#### Claude Code

Where: Your terminal, in the project folder

```bash
claude mcp add duckduckgo -- uvx --with 'duckduckgo-mcp-server[browser]' duckduckgo-mcp-server
```

The README's own example is claude mcp add ddg-search uvx duckduckgo-mcp-server. The version here adds the [browser] extra so searches still work when DuckDuckGo blocks plain requests.

#### Cursor

Where: ~/.cursor/mcp.json, or .cursor/mcp.json in a project

```json
{
  "mcpServers": {
    "duckduckgo": {
      "command": "uvx",
      "args": [
        "--with",
        "duckduckgo-mcp-server[browser]",
        "duckduckgo-mcp-server"
      ]
    }
  }
}
```

#### Claude Desktop

Where: claude_desktop_config.json (Settings → Developer → Edit Config)

```json
{
  "mcpServers": {
    "duckduckgo": {
      "command": "uvx",
      "args": [
        "--with",
        "duckduckgo-mcp-server[browser]",
        "duckduckgo-mcp-server"
      ]
    }
  }
}
```

#### VS Code

Where: .vscode/mcp.json in your project

```json
{
  "servers": {
    "duckduckgo": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "--with",
        "duckduckgo-mcp-server[browser]",
        "duckduckgo-mcp-server"
      ]
    }
  }
}
```

#### Windsurf

Where: ~/.codeium/windsurf/mcp_config.json

```json
{
  "mcpServers": {
    "duckduckgo": {
      "command": "uvx",
      "args": [
        "--with",
        "duckduckgo-mcp-server[browser]",
        "duckduckgo-mcp-server"
      ]
    }
  }
}
```

#### ChatGPT

Where: Not supported

ChatGPT only connects to remote servers by URL. This one runs on your computer, so use Claude, Cursor or VS Code.

The [browser] extra lets searches fall back to a Chrome-like client when DuckDuckGo blocks plain requests, which happens often. You can drop the first two arguments for a lighter install that may return no results while blocked. Set DDG_REGION (for example "us-en") and DDG_SAFE_SEARCH in "env" if you want defaults.

Checked against the project's own install docs on 27 Oct 2026: https://github.com/nickclyde/duckduckgo-mcp-server#readme

### How do I configure DuckDuckGo Search MCP?

| Setting | Kind | Required | What it does |
| --- | --- | --- | --- |
| `DDG_SAFE_SEARCH` | env | no | SafeSearch level: STRICT, MODERATE (the default) or OFF. Example: `STRICT` |
| `DDG_REGION` | env | no | Default region and language for searches. Example: `us-en` |
| `DDG_SEARCH_BACKEND` | env | no | auto (the default) tries a plain request and falls back to a Chrome-like client when blocked; httpx or curl force one. curl and the fallback need the [browser] extra. Example: `auto` |
| `DDG_SEARCH_RPM` | env | no | Searches allowed per minute. Default 30. Example: `30` |
| `DDG_FETCH_RPM` | env | no | Page fetches allowed per minute. Default 20. Example: `20` |
| `DDG_PARSE_MODE` | env | no | Default output of fetch_content: text, main or markdown. Example: `markdown` |
| `DDG_CA_CERTS` | env | no | Path to a CA bundle, for networks that re-sign HTTPS traffic. Example: `/path/to/company-ca.pem` |
| `--fetch-backend` | flag | no | Which client fetch_content uses by default: httpx, curl or auto. Example: `--fetch-backend auto` |

### What can DuckDuckGo Search MCP read and change?

**It can read**

- DuckDuckGo search results
- Any public web page the model asks to fetch

**It can change**

- Nothing. It only reads.

**Safer setup:** It is read-only already. Leave DDG_ALLOW_PRIVATE_URLS unset so the model cannot fetch addresses on your own network.

### Good for

- Adding web search to a local assistant without paying for an API
- Reading an article or a docs page found in the results
- Quick fact checks where a handful of results is enough

### DuckDuckGo Search MCP not working? Common fixes

**Searches come back empty**
DuckDuckGo is probably blocking plain requests. Start the server with the [browser] extra, as in the config here, so it can fall back to a Chrome-like client.

**Certificate verification errors**
You are behind a proxy that re-signs HTTPS. Set DDG_CA_CERTS to your company's CA bundle.

**421 errors when running over HTTP in Docker**
The SDK's DNS-rebinding guard only trusts localhost. Add your host name with --allowed-hosts and --allowed-origins.

**Rate limit messages**
The server holds back to avoid getting blocked. Lower your request rate, or raise DDG_SEARCH_RPM carefully.

### What are the alternatives to DuckDuckGo Search MCP?

| Server | What it does | Tools | Runs on | Licence | Stars |
| --- | --- | --- | --- | --- | --- |
| [DuckDuckGo Search MCP](https://mcpshelf.co/servers/duckduckgo) | Web search and a page reader through DuckDuckGo, with no account or API key. | 3 | Your computer | MIT | 1.6K |
| [Brave Search MCP](https://mcpshelf.co/servers/brave-search) | Web, news, image, video and place search from Brave's own index. | 8 | Your computer | MIT | 1.5K |
| [Playwright MCP](https://mcpshelf.co/servers/playwright) | Microsoft's browser automation server: navigate, click, type, read. | 25 | Your computer | Apache-2.0 | 38.8K |
| [Firecrawl](https://mcpshelf.co/servers/firecrawl) | Scrape pages, crawl sites and search, returned as clean Markdown. | 28 | Your computer or hosted | MIT | 7.7K |
| [Exa](https://mcpshelf.co/servers/exa) | Search built for AI: web results, page contents and code examples. | 2 | Hosted or your computer | MIT | 5.2K |
| [Bright Data](https://mcpshelf.co/servers/bright-data) | Search and scraping through Bright Data, for sites that block ordinary requests. | 32 | Hosted or your computer | MIT | 2.7K |

### DuckDuckGo Search MCP FAQ

#### How do I add DuckDuckGo Search MCP to Claude Code?

Install uv, then run claude mcp add with uvx and duckduckgo-mcp-server. Adding the [browser] extra, as in the command on this page, keeps results coming when DuckDuckGo blocks plain requests.

#### How do I use DuckDuckGo search in Claude Desktop?

Add an entry to claude_desktop_config.json that runs uvx duckduckgo-mcp-server, then restart Claude. Set DDG_SAFE_SEARCH and DDG_REGION in env if you want defaults.

#### Does DuckDuckGo Search MCP need an API key?

No. It reads DuckDuckGo's public results pages, so there is nothing to sign up for and nothing to pay.

#### Is it made by DuckDuckGo?

No. It is a community project that DuckDuckGo does not support, so results can break when DuckDuckGo changes its pages or limits requests.

#### Why does DuckDuckGo search return nothing?

DuckDuckGo is likely blocking plain requests. Install the server with the [browser] extra so it falls back to a Chrome-like client, and keep the request rate low.

#### Can it read the pages it finds?

Yes. fetch_content downloads a page and returns its text, main content or Markdown, and it pages through long articles. It fetches as an anonymous visitor, so pages behind a login are out of reach.

#### Does it work with ChatGPT?

Not as set up here. It runs on your computer, and ChatGPT only connects to servers by public URL. It has an HTTP mode, but you would have to host it yourself.

#### Is DuckDuckGo Search MCP free?

Yes. It is MIT licensed and uses DuckDuckGo's free public search, so there is no bill from either side.

Full docs on GitHub: https://github.com/nickclyde/duckduckgo-mcp-server

## Notes for agents

Fetch these instead of parsing the HTML page:

- llms.txt: https://mcpshelf.co/llms.txt
- llms-full.txt: https://mcpshelf.co/llms-full.txt
- ai.txt: https://mcpshelf.co/ai.txt
- Full catalog (.md): https://mcpshelf.co/catalog.md
- API spec: https://mcpshelf.co/openapi.json
- MCP server: https://mcpshelf.co/mcp
- MCP manifest: https://mcpshelf.co/.well-known/mcp.json
- Developer docs: https://mcpshelf.co/developers

MCP endpoint (Streamable HTTP, no key): https://mcpshelf.co/mcp. REST API: https://mcpshelf.co/api/v1.

