duckduckgo-mcp-server

MCP.Pizza Chef: nickclyde

The duckduckgo-mcp-server is an MCP server that integrates DuckDuckGo web search capabilities with advanced content fetching and parsing. It features intelligent text extraction, rate limiting to prevent overuse, and error handling, delivering LLM-optimized search results and webpage content for seamless AI workflows.

Use This MCP server To

Perform web searches via DuckDuckGo with structured results Fetch and parse webpage content for LLM consumption Implement rate-limited web search in AI applications Extract clean text from web pages for analysis Integrate real-time web search into chatbots or agents Provide LLMs with up-to-date web context during conversations

README

DuckDuckGo Search MCP Server

smithery badge

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

DuckDuckGo Server MCP server

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

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.

duckduckgo-mcp-server FAQ

How does the duckduckgo-mcp-server handle rate limiting?
It includes built-in rate limiting to protect against excessive requests during both search and content fetching.
Can this server parse webpage content for LLMs?
Yes, it intelligently extracts and formats webpage text specifically for large language model consumption.
What happens if a search or fetch request fails?
The server has comprehensive error handling and logging to manage failures gracefully.
Is the output optimized for AI models?
Yes, results are formatted to be LLM-friendly, facilitating easy integration with AI workflows.
How do I install the duckduckgo-mcp-server?
It can be installed via Smither, a package manager for MCP servers.
Does this server support advanced search features?
Yes, it supports advanced rate limiting and result formatting for enhanced search capabilities.
Can it be used in real-time AI applications?
Absolutely, it is designed to provide real-time web search and content fetching for AI agents and copilots.