Duckduckgo MCP Server logo

Duckduckgo MCP Server

by nickclyde

Searches DuckDuckGo and fetches readable webpage content for MCP clients.

Install Duckduckgo MCP Server

Pick your client, then add it in one click or paste the config.

STDIOPython
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "nickclyde-duckduckgo-mcp-server": {
      "command": "uvx",
      "args": [
        "duckduckgo-mcp-server"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Automated check passed— started and listed 3 tools correctly (1mo ago).

Overview

The nickclyde/duckduckgo-mcp-server MCP server lets MCP clients search DuckDuckGo and retrieve parsed webpage text. Search requests support result limits and regional settings, while content retrieval supports character-based pagination and selectable HTTP backends. Use it when an agent needs web search plus follow-up page reading without a separate search API key. It runs locally over stdio by default and also supports SSE and Streamable HTTP transports.

Use cases

  • Search DuckDuckGo for current web information
  • Fetch readable text from result URLs
  • Read long webpages in character-based sections
  • Select a regional DuckDuckGo search setting

Key features

  • DuckDuckGo web search
  • Webpage content fetching and parsing
  • Regional search selection
  • Character-offset pagination
  • Configurable HTTP fetch backends
  • Rate limiting and LLM-friendly output

Tools3

What Duckduckgo MCP Server lets your agent do. Expand a tool for its parameters.

Verified live~998 tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked Today

Recent health check succeeded.

18/18 checks healthy over the last 78d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 7d ago via OSV.dev · duckduckgo-mcp-server (PyPI)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars1.6kStargazers on the source repository.
Last commit1mo agoMost recent push to the default branch.
Availability100%Our rolling endpoint + install checks that succeeded.
Install checkPassedOur sandbox started it and listed its tools.
Tools exposed3Callable tools this server registers over MCP.
Directory activity9 viewsConfig copies, upvotes, and views on AllMCPs.

How Duckduckgo MCP Server works

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

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.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Duckduckgo MCP Server

Run `uvx duckduckgo-mcp-server`, or install it from PyPI with `uv pip install duckduckgo-mcp-server`.

Yes. The README provides Claude Desktop configuration using the `uvx` command and the `duckduckgo-mcp-server` package.

Install the optional `[browser]` extra and use the `curl` or `auto` backend. The `auto` option retries with the curl-based backend after certain blocks or Cloudflare challenges.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewDuckduckgo MCP Server AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/nickclyde-duckduckgo-mcp-server?style=directory)](https://allmcps.com/mcp/nickclyde-duckduckgo-mcp-server)
HTML Embed
<a href="https://allmcps.com/mcp/nickclyde-duckduckgo-mcp-server"><img src="https://allmcps.com/api/badge/nickclyde-duckduckgo-mcp-server?style=directory" alt="Duckduckgo MCP Server on AllMCPs" /></a>