DuckDuckGo Search MCP server

Lightweight TypeScript-based DuckDuckGo search server that enables developers to retrieve search results programmatically using the duck-duck-scrape library with minimal configuration.
Back to servers
Provider
zhsama
Release date
Mar 10, 2025
Language
TypeScript
Package
Stats
1.2K downloads
41 stars

The DuckDuckGo MCP Server provides search functionality through the Model Context Protocol, enabling Claude and other compatible AI assistants to perform web searches using DuckDuckGo's search engine.

Installation

Prerequisites

  • Node.js version 18 or higher
  • pnpm version 8.0.0 or higher (recommended package manager)

Installing the Server

You can install the DuckDuckGo MCP server using npm:

# Install pnpm if not already installed
npm install -g pnpm

# Install project dependencies
pnpm install

Usage

Building the Server

To build the server before running:

pnpm run build

For development with automatic rebuilding when files change:

pnpm run watch

Setting Up in Claude Desktop

To use the DuckDuckGo search functionality with Claude Desktop, you need to configure the MCP server in Claude's configuration file.

Configuration file location:

  • MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%/Claude/claude_desktop_config.json

Add the following configuration:

For the published npm package:

{
  "mcpServers": {
    "duckduckgo-search": {
        "command": "npx",
        "args": [
          "-y",
          "duckduckgo-mcp-server"
        ]
    }
  }
}

For a local installation:

{
  "mcpServers": {
    "duckduckgo-search": {
      "command": "node",
      "args": [
        "/path/to/duckduckgo-search/build/index.js"
      ]
    }
  }
}

Using the Search Tool

Once configured, you can use the search tool with the following parameters:

  • Tool name: duckduckgo_search
  • Required parameter:
    • query: Your search query (max 400 characters)
  • Optional parameters:
    • count: Number of results to return (1-20, default 10)
    • safeSearch: Safety level (strict, moderate, or off, default is moderate)

Rate Limits

Be aware of the following rate limits when using the service:

  • Maximum 1 request per second
  • Maximum 15,000 requests per month

Debugging

If you need to debug the server, you can use the MCP Inspector:

pnpm run inspector

This will provide a URL to access debugging tools in your browser, which is helpful as MCP servers communicate over stdio.

How to add this MCP server to Cursor

There are two ways to add an MCP server to Cursor. The most common way is to add the server globally in the ~/.cursor/mcp.json file so that it is available in all of your projects.

If you only need the server in a single project, you can add it to the project instead by creating or adding it to the .cursor/mcp.json file.

Adding an MCP server to Cursor globally

To add a global MCP server go to Cursor Settings > MCP and click "Add new global MCP server".

When you click that button the ~/.cursor/mcp.json file will be opened and you can add your server like this:

{
    "mcpServers": {
        "cursor-rules-mcp": {
            "command": "npx",
            "args": [
                "-y",
                "cursor-rules-mcp"
            ]
        }
    }
}

Adding an MCP server to a project

To add an MCP server to a project you can create a new .cursor/mcp.json file or add it to the existing one. This will look exactly the same as the global MCP server example above.

How to use the MCP server

Once the server is installed, you might need to head back to Settings > MCP and click the refresh button.

The Cursor agent will then be able to see the available tools the added MCP server has available and will call them when it needs to.

You can also explictly ask the agent to use the tool by mentioning the tool name and describing what the function does.

Want to 10x your AI skills?

Get a free account and learn to code + market your apps using AI (with or without vibes!).

Nah, maybe later