Home / MCP / DuckDuckGo MCP Server
Provides web search and content extraction via DuckDuckGo with LLM-friendly output.
Configuration
View docs{
"mcpServers": {
"ddg_search": {
"command": "uvx",
"args": [
"duckduckgo-mcp-server"
]
}
}
}You deploy a DuckDuckGo-based MCP server that lets you perform web searches and fetch web content, with results formatted for efficient use by large language models. It handles rate limiting, error handling, and clean output to integrate search and content parsing into your workflows.
You can use this MCP server with any MCP client by running the local SDP (stdio) configuration that points to the DuckDuckGo MCP server and then using the client to perform searches or fetch content. The server exposes two core capabilities: a search tool that queries DuckDuckGo and returns formatted results, and a content fetching tool that retrieves and cleans text from webpages. Use these tools to rapidly obtain search results and extract readable content for downstream tasks.
Prerequisites you need before installing are Node.js and Python tooling. You will install a CLI tool to wire up MCP servers and then run the DuckDuckGo MCP server locally for development or use an automatic installer if you prefer.
# Install the MCP server via Smithery for Claude Desktop automatically
npx -y @smithery/cli install @nickclyde/duckduckgo-mcp-server --client claude
# Install the server directly for development using uv
uv pip install duckduckgo-mcp-serverTo run the server with Claude Desktop, add this MCP server entry to your Claude Desktop configuration. The runtime command uses the stdio approach with a local server process.
{
"mcpServers": {
"ddg-search": {
"command": "uvx",
"args": ["duckduckgo-mcp-server"]
}
}
}For local development and testing, you can use the MCP CLI. Run the server in development mode or install it locally for Claude Desktop testing.
# Run with the MCP Inspector
mcp dev server.py
# Install locally for testing with Claude Desktop
mcp install server.pyPerforms a web search on DuckDuckGo and returns formatted results including titles, URLs, and snippets.
Fetches and parses content from a webpage, returning cleaned and formatted text suitable for reading or model consumption.