Server profile

DuckDuckGo Search MCP Server

Give MCP assistants DuckDuckGo search and webpage text retrieval. It suits research workflows that need regional results, readable page content, and configurable filtering.

Server facts

DuckDuckGo Search MCP Server

Tech

Runtime / language
pythonPython
Transports
stdio
Remote available
No
Authentication
Not specified

Activity

GitHub stars
1,538
Last commit
Data as of

Tags

  • Content Extraction
  • Duckduckgo
  • Python
  • Web Search

Overview

DuckDuckGo Search MCP Server connects an assistant to web search and page reading through two focused tools. Search results include titles, links, and snippets, while content retrieval turns a selected page into cleaned text. This makes it useful for research that moves from finding sources to examining their contents. Administrators can choose a SafeSearch level and a default region; individual searches can override the regional setting without changing the administrator's content filter.

The server runs over stdio by default, with SSE and streamable HTTP available for other clients. A uvx launch is documented, alongside installation through uv. Search and content retrieval have separate request limits and queue handling. For websites that reject the default HTTP client's TLS fingerprint, an optional browser dependency supplies Chrome impersonation. Search uses automatic fallback by default, but that fallback needs the extra dependency installed. Page fetching keeps the lightweight backend unless configured otherwise.

Content requests support character offsets and length limits, so an assistant can read a long page in sections. The fetch tool also blocks private and other unsafe destination addresses by default and checks redirects again. Trusted internal deployments can disable that protection explicitly. These controls make the project more configurable than a bare search wrapper, although access still depends on upstream sites accepting the selected backend.

Install & configure

Requirements

  • uvx available to the MCP client
  • An MCP-compatible client
Documented launch / install command
uvx duckduckgo-mcp-server

The README documents this default stdio launch. SSE and streamable HTTP are alternatives. Install the browser extra to enable curl-based fallback when search endpoints block httpx.

Config file · macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

Windows: %APPDATA%\Claude\claude_desktop_config.json

Use Settings → Developer → Edit Config when available. Do not assume a Linux configuration path; check the client documentation for your platform. Remote servers use the app’s connector flow when supported, not the local stdio file shown here. Merge this example with existing settings; do not overwrite unrelated servers.

Claude Desktop configuration
{
  "mcpServers": {
    "duckduckgo-mcp-server": {
      "command": "uvx",
      "args": [
        "duckduckgo-mcp-server"
      ],
      "env": {
        "DDG_SAFE_SEARCH": "<optional STRICT, MODERATE, or OFF filtering level>",
        "DDG_REGION": "<optional default region and language code>"
      }
    }
  }
}

Read the Claude Desktop setup guide

Config file · Project: .cursor/mcp.json

User: ~/.cursor/mcp.json

The project path is relative to the workspace root. The tilde denotes your user home directory. Use Cursor’s MCP settings to confirm which configuration and scope your installed version is reading. Merge this example with existing settings; do not overwrite unrelated servers.

Cursor configuration
{
  "mcpServers": {
    "duckduckgo-mcp-server": {
      "command": "uvx",
      "args": [
        "duckduckgo-mcp-server"
      ],
      "env": {
        "DDG_SAFE_SEARCH": "<optional STRICT, MODERATE, or OFF filtering level>",
        "DDG_REGION": "<optional default region and language code>"
      }
    }
  }
}

Read the Cursor setup guide

Config file · Workspace: .vscode/mcp.json

For user scope, use the “MCP: Open User Configuration” command if available. Do not guess a user configuration path across operating systems, profiles, containers, or remote workspaces; check the client documentation. Merge this example with existing settings; do not overwrite unrelated servers.

VS Code configuration
{
  "servers": {
    "duckduckgo-mcp-server": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "duckduckgo-mcp-server"
      ],
      "env": {
        "DDG_SAFE_SEARCH": "<optional STRICT, MODERATE, or OFF filtering level>",
        "DDG_REGION": "<optional default region and language code>"
      }
    }
  }
}

Read the VS Code setup guide

Config file · macOS/Linux: ~/.codeium/windsurf/mcp_config.json

Windows: %USERPROFILE%\.codeium\windsurf\mcp_config.json

Open the MCP configuration through Windsurf’s settings when possible to confirm the active file. Paths can differ in managed or future releases; check the client documentation if this location is not present. Merge this example with existing settings; do not overwrite unrelated servers.

Windsurf configuration
{
  "mcpServers": {
    "duckduckgo-mcp-server": {
      "command": "uvx",
      "args": [
        "duckduckgo-mcp-server"
      ],
      "env": {
        "DDG_SAFE_SEARCH": "<optional STRICT, MODERATE, or OFF filtering level>",
        "DDG_REGION": "<optional default region and language code>"
      }
    }
  }
}

Read the Windsurf setup guide

Config file · Project scope: .mcp.json at the repository root

The project file uses mcpServers. For user scope, use claude mcp add --scope user rather than assuming .mcp.json in your home directory is the user configuration. Check the client documentation for managed settings and storage details. Merge this example with existing settings; do not overwrite unrelated servers.

Claude Code configuration
{
  "mcpServers": {
    "duckduckgo-mcp-server": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "duckduckgo-mcp-server"
      ],
      "env": {
        "DDG_SAFE_SEARCH": "<optional STRICT, MODERATE, or OFF filtering level>",
        "DDG_REGION": "<optional default region and language code>"
      }
    }
  }
}

Read the Claude Code setup guide

Examples are translated from the published configuration. Supply your own credentials and verify requirements in the upstream README. Remote connectors are shown only where a supported configuration format is known.

Tools

Source: repository README. Tool descriptions are a documented snapshot, not a live capability check.

ToolWhat it does
searchQuery DuckDuckGo for titles, links, and snippets, with result-count and regional controls.
fetch_contentExtract readable webpage text with offset, length, and HTTP-backend options.

Names, permissions, and defaults can change. Check the current upstream documentation before granting access.

Use cases

  • Find sources for an assistant-led research task.
  • Read long webpages in bounded text segments.
  • Search for results targeted to a particular country or language.
  • Apply administrator-controlled SafeSearch filtering.

Strengths

  • Combines source discovery and page text extraction.
  • Supports stdio, SSE, and streamable HTTP.
  • Includes private-address checks for content fetching.
  • Offers an optional TLS-impersonating backend.

Limitations

  • Browser fallback requires an additional dependency.
  • Search and fetch operations have separate rate limits.
  • Some sites block the default HTTP backend.

Frequently asked questions

No. SafeSearch is selected at server startup; assistants can override the search region instead.

DuckDuckGo can reject httpx based on its TLS fingerprint. The browser extra enables the curl backend used for fallback.

Private-address fetching is blocked by default. Trusted deployments can explicitly allow private URLs.

Search is limited to 30 requests per minute, while content fetching is limited to 20.

Independent listing, not an affiliation or security review. Grant the least access needed and verify the upstream instructions before running code.

Related MCP servers

Firecrawl MCP Server

Search & Web Data

Firecrawl MCP connects AI agents to web search, scraping, crawling, and live browser interaction. It offers hosted access or a local server for collecting structured web context and running research tasks.

Tavily MCP Server

Search & Web Data

Tavily MCP Server connects AI clients to web search, page extraction, site mapping, and crawling. Run it locally with an API key or connect to the hosted service using API-key or OAuth authentication.

AgentQL MCP Server

Search & Web Data

AgentQL MCP Server extracts structured JSON from a web page using a natural-language description of the desired fields. It provides one focused extraction tool for MCP assistants.

Exa MCP Server

Search & Web Data

Exa MCP Server gives AI assistants web search and readable page retrieval, with optional advanced search and agent research tools. It supports hosted connections and a local npm package for research and coding context.

Perplexity API Platform MCP Server

Search & Web Data

The Perplexity API Platform MCP Server gives assistants web search, conversational answers, research, and reasoning tools. It connects to Perplexity’s Search API and Sonar models through local stdio or an HTTP deployment.

ArXiv MCP Server

Search & Web Data

Search arXiv, download papers, and read their contents through an AI assistant. Local storage and research prompts support repeatable literature review and paper analysis.

Bright Data Web MCP

Search & Web Data

Give AI assistants live web search, page extraction, and optional browser automation through Bright Data. Tool groups also provide structured datasets, package information, and AI brand-visibility queries.

Yargı MCP

Search & Web Data

Search Turkish court and regulatory decisions from MCP-compatible assistants. Yargı MCP retrieves decision texts as Markdown and offers both local execution and a hosted streamable HTTP endpoint.