# nickclyde/duckduckgo-mcp-server [Health: Active]

**Category:** 🔎 Search & Data Extraction  
**Repository:** https://github.com/nickclyde/duckduckgo-mcp-server  
**GitHub Stars:** 1468  
**Views:** 4  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/nickclyde-duckduckgo-mcp-server

## Description
A Model Context Protocol (MCP) server that provides web search capabilities through DuckDuckGo, with additional features for content fetching and parsing.

## Tools
Capabilities this server exposes over MCP:

- **query** — Search query string
- **max_results** — Maximum number of results to return (default: 10)
- **region** — (Optional) Region/language code to override the default. Leave empty to use the configured default region.
- **us-en** — United States (English)
- **cn-zh** — China (Chinese)
- **jp-ja** — Japan (Japanese)
- **de-de** — Germany (German)
- **fr-fr** — France (French)
- **wt-wt** — No specific region
- **url** — The webpage URL to fetch content from
- **start_index** — Character offset to start reading from (for pagination)
- **max_length** — Maximum number of characters to return
- **backend** — Optional per-call override of the default fetch backend (`"httpx"`, `"curl"`, or `"auto"`). When omitted, uses whatever was set via `--fetch-backend` at server startup.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `uvx` (confidence: high):

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

## Documentation

## What nickclyde/duckduckgo-mcp-server MCP server does

The nickclyde/duckduckgo-mcp-server MCP server exposes DuckDuckGo search and webpage content retrieval through MCP. It is intended for agents that need to discover web pages, inspect result links, and read extracted text from selected URLs.

Search accepts a query, an optional maximum result count, and an optional region code. Supported region examples include `us-en`, `cn-zh`, `jp-ja`, `de-de`, `fr-fr`, and `wt-wt`. If no region is supplied for a request, the server uses its configured default or DuckDuckGo's default behavior.

The content-fetching capability accepts a URL and returns parsed page content. Callers can set a starting character offset and maximum response length, which makes it possible to read long pages in sections.

## How it works

The nickclyde/duckduckgo-mcp-server MCP server uses `httpx` by default for HTTP requests. Its fetch operation can instead use a `curl` backend based on `curl_cffi`, or `auto`, which starts with `httpx` and falls back when a 403 response or Cloudflare challenge is detected. The optional browser extra is required for the `curl` and `auto` backends.

Search has its own backend setting and defaults to `auto`. If the optional browser dependency is unavailable and the HTTP client is blocked, search may return a message directing the operator to install that extra. Built-in rate limiting applies to search and content fetching, and responses are formatted for consumption by language models.

The default MCP transport is stdio. The process can also run with SSE or Streamable HTTP. HTTP transports bind to `127.0.0.1:8000` unless a different host and port are supplied.

## Setup and configuration

Install or run the package from PyPI with `uv`:

```bash
uvx duckduckgo-mcp-server
```

Claude Desktop can launch it with `uvx` and the package name in its MCP server configuration. Claude Code can add the same command through `claude mcp add`. The repository also documents SSE and Streamable HTTP launch options.

Optional environment variables include `DDG_SAFE_SEARCH` for `STRICT`, `MODERATE`, or `OFF` filtering, `DDG_REGION` for the default region, and `DDG_SEARCH_BACKEND` for the search backend. `DDG_CA_CERTS` points to a PEM CA bundle for TLS-intercepting proxies. HTTP deployments can use `DDG_ALLOWED_HOSTS` and `DDG_ALLOWED_ORIGINS` to configure DNS-rebinding protection.

## Tools and capabilities

The nickclyde/duckduckgo-mcp-server MCP server provides capabilities for:

- Searching DuckDuckGo with a query and result limit.
- Selecting a search region per request or through a default setting.
- Fetching and parsing text from a webpage URL.
- Paginating fetched content with character offsets and length limits.
- Choosing `httpx`, `curl`, or `auto` for an individual content-fetch request.

## Limitations and notes

No paid search credential is described in the supplied material. Results and page retrieval depend on the target site's availability and bot-detection behavior. The `curl` and `auto` options require installation with the `[browser]` extra. Setting `--no-ssl-verify` or `DDG_SSL_VERIFY=0` disables certificate verification and is documented only as a last resort.

When using HTTP transports behind a reverse proxy or in a container, the proxy's host and origin may need to be added to the allow-list. Disabling DNS-rebinding protection is available, but the documentation recommends allow-listing instead.

_Full upstream README: https://allmcps.com/mcp/nickclyde-duckduckgo-mcp-server/readme_

