Data as of

DuckDuckGo Search MCP Server for Claude Code: Setup & Config

Claude Code: Give MCP assistants DuckDuckGo search and webpage text retrieval.

What you can do with DuckDuckGo Search in Claude Code

Choose it for DuckDuckGo discovery plus controlled page extraction in one MCP server.

  • Find sources for an assistant-led research task.
  • Apply administrator-controlled SafeSearch filtering.

Before you start: DuckDuckGo Search in Claude Code

  • uvx available to the MCP client
  • An MCP-compatible client

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.

DuckDuckGo Search Claude Code configuration

  1. Choose Claude Code configuration scope

    For DuckDuckGo Search MCP Server, open Project scope: .mcp.json at the repository root. Project JSON: merge into mcpServers; user scope: use the CLI.

  2. Add DuckDuckGo Search MCP Server to Claude Code

    Use the duckduckgo-mcp-server entry below in mcpServers. Keep DuckDuckGo Search MCP Server's documented stdio connection fields and your other Claude Code entries.

  3. Check DuckDuckGo Search MCP Server in Claude Code

    DuckDuckGo Search MCP Server: Inspect claude mcp list and /mcp status.

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

JSON
{
  "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>"
      }
    }
  }
}

CLI (POSIX shell)
claude mcp add-json --scope project '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>"}}'

DuckDuckGo Search tools available to Claude Code

DuckDuckGo Search's stored tool list documents 2 tools; compare it with Claude Code's connected tool list, because the stored list is not a live check.

search

For DuckDuckGo Search's search, review the permission request and arguments in Claude Code before approval.

Query DuckDuckGo for titles, links, and snippets, with result-count and regional controls.

fetch_content

For DuckDuckGo Search's fetch_content, review the permission request and arguments in Claude Code before approval.

DuckDuckGo Search: full stored tool descriptions

Troubleshooting DuckDuckGo Search in Claude Code

  • If DuckDuckGo Search MCP Server fails to start, check uvx duckduckgo-mcp-server (from uv, for Python tools), the working directory, and Claude Code's selected scope; inspect claude mcp list and /mcp.
  • DuckDuckGo Search MCP Server: check DDG_REGION, DDG_SAFE_SEARCH; keep credentials out of shared .mcp.json.
  • DuckDuckGo Search MCP Server uses stdio here: Claude Code must keep the configured process running; protocol output belongs on stdout and diagnostics on stderr.
  • Known limitation: Browser fallback requires an additional dependency.
  • Known limitation: Search and fetch operations have separate rate limits.
  • Known limitation: Some sites block the default HTTP backend.
  • General Claude Code troubleshooting lives in the /clients/claude-code guide.

DuckDuckGo Search MCP Server — details. Claude Code guide

Frequently asked questions

Register DuckDuckGo Search MCP Server with the displayed claude mcp add-json --scope project command, or merge the JSON into .mcp.json at the repository root.

Claude Code's duckduckgo-mcp-server example uses stdio.

DuckDuckGo Search MCP Server's Claude Code configuration invokes uvx duckduckgo-mcp-server (from uv, for Python tools).

Claude Code's DuckDuckGo Search MCP Server example references DDG_REGION, DDG_SAFE_SEARCH. Check these names if startup or authentication fails; the example alone does not distinguish required from optional values.

DuckDuckGo Search MCP Server's stored list contains 2 tools, including search, fetch_content. Compare those names with Claude Code's connected tool list; the stored list is not a live check.

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

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