duckduckgo-mcp-server
by: nickclyde
A Model Context Protocol (MCP) server that provides web search capabilities through DuckDuckGo, with additional features for content fetching and parsing.
📌Overview
Purpose: The DuckDuckGo Search MCP server aims to provide efficient web search capabilities through DuckDuckGo along with enhanced content fetching and parsing features.
Overview: This Model Context Protocol (MCP) server enables users to perform web searches and retrieve content from DuckDuckGo, with built-in features that ensure compliance with rate limits and optimize results for large language models (LLMs).
Key Features:
-
Web Search: Implements advanced rate limiting and formatting, allowing users to search DuckDuckGo effectively and receive organized results.
-
Content Fetching: Facilitates the retrieval and parsing of webpage content with intelligent text extraction, making it easier to access relevant information.
-
Rate Limiting: Provides built-in protection mechanisms against excessive requests for both search and content fetching to prevent service disruption.
-
Error Handling: Features comprehensive mechanisms for error reporting and logging, ensuring reliability during operations.
-
LLM-Friendly Output: Formats results specifically for seamless integration and consumption by large language models.
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 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
- Download Claude Desktop.
- 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
- On macOS:
Add the following configuration:
{
"mcpServers": {
"ddg-search": {
"command": "uvx",
"args": ["duckduckgo-mcp-server"]
}
}
}
- 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.
Result Processing
- Removes ads and irrelevant content.
- Cleans up DuckDuckGo redirect URLs.
- Formats results for optimal LLM consumption.
Error Handling
- Comprehensive error catching and reporting.
- Detailed logging through MCP context.
Contributing
Issues and pull requests are welcome! Potential areas for improvement include:
- Additional search parameters (region, language, etc.).
- Enhanced content parsing options.
- Caching layer for frequently accessed content.
License
This project is licensed under the MIT License.