Skip to main content
Glama

DuckDuckGo MCP Server

DuckDuckGo Search MCP Server

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

Features

  • Web Search: Search DuckDuckGo with advanced rate limiting and result formatting

  • Content Fetching: Retrieve and parse webpage content with intelligent text extraction

  • Rate Limiting: Built-in protection against rate limits for both search and content fetching

  • Error Handling: Comprehensive error handling and logging

  • LLM-Friendly Output: Results formatted specifically for large language model consumption

Related MCP server: Duck Duck MCP

Installation

Installing via Smithery

To install DuckDuckGo Search Server for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @nickclyde/duckduckgo-mcp-server --client claude

Installing via uv

Install directly from PyPI using uv:

uv pip install duckduckgo-mcp-server

Usage

Running with Claude Desktop

  1. Download Claude Desktop

  2. Create or edit your Claude Desktop configuration:

    • On macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

    • On Windows: %APPDATA%\Claude\claude_desktop_config.json

Add the following configuration:

{ "mcpServers": { "ddg-search": { "command": "uvx", "args": ["duckduckgo-mcp-server"] } } }
  1. Restart Claude Desktop

Development

For local development, you can use the MCP CLI:

# Run with the MCP Inspector mcp dev server.py # Install locally for testing with Claude Desktop mcp install server.py

Available Tools

1. Search Tool

async def search(query: str, max_results: int = 10) -> str

Performs a web search on DuckDuckGo and returns formatted results.

Parameters:

  • query: Search query string

  • max_results: Maximum number of results to return (default: 10)

Returns: Formatted string containing search results with titles, URLs, and snippets.

2. Content Fetching Tool

async def fetch_content(url: str) -> str

Fetches and parses content from a webpage.

Parameters:

  • url: The webpage URL to fetch content from

Returns: Cleaned and formatted text content from the webpage.

Features in Detail

Rate Limiting

  • Search: Limited to 30 requests per minute

  • Content Fetching: Limited to 20 requests per minute

  • Automatic queue management and wait times

Result Processing

  • Removes ads and irrelevant content

  • Cleans up DuckDuckGo redirect URLs

  • Formats results for optimal LLM consumption

  • Truncates long content appropriately

Error Handling

  • Comprehensive error catching and reporting

  • Detailed logging through MCP context

  • Graceful degradation on rate limits or timeouts

Contributing

Issues and pull requests are welcome! Some areas for potential improvement:

  • Additional search parameters (region, language, etc.)

  • Enhanced content parsing options

  • Caching layer for frequently accessed content

  • Additional rate limiting strategies

License

This project is licensed under the MIT License.

Deploy Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nickclyde/duckduckgo-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server