DuckDuckGo MCP Server
Enables web searches through DuckDuckGo with customizable parameters like region, safe search, and time limits. Provides structured search results, recent search resources, and research planning prompts for comprehensive information gathering.
README
DuckDuckGo MCP / CLI
A Model Context Protocol (MCP) server and CLI that provide DuckDuckGo search functionality as MCP tools, resources, prompts, and a command-line interface.
Features
- Search Tool: Structured web, images, videos, and news search with parameters
- Prompts: Pre-built prompts for search analysis and research planning
- Resources: Discover supported DuckDuckGo region codes
- CLI: Run searches from your terminal with JSON output option
Use With MCP Clients
Configure via uvx (Claude Desktop)
Add this to ~/Library/Application Support/Claude/claude_desktop_config.json under mcpServers:
{
"mcpServers": {
"duckduckgo": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/varlabz/duckduckgo-mcp",
"duckduckgo-mcp"
]
}
}
}
Notes:
- Restart Claude Desktop after saving the config.
Configure via uvx (VS Code)
Add this to your workspace .vscode/mcp.json (or User settings JSON):
{
"servers": {
"duckduckgo": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/varlabz/duckduckgo-mcp",
"duckduckgo-mcp"
]
}
}
}
Quick sanity check (optional)
Run the server ad-hoc via uvx to verify it starts:
uvx --from git+https://github.com/varlabz/duckduckgo-mcp duckduckgo-mcp
MCP Capabilities
- Tools:
search— DuckDuckGo search acrosstext(default),images,videos, ornews.- Parameters:
query(string)max_results(1–50, default 10)categories(text|images|videos|news)region(e.g.,us-en; defaults tous-enwhen omitted)safesearch(on|moderate|off, defaultoff)timelimit(day|week|month|year)
- Returns:
query,total_results,results[{title, url, body}].
- Parameters:
- Resources:
duckduckgo://regions— JSON withnote,count, andregions[{code, name}]to discover supported region codes. - Prompts:
search_assistant(query, context="")— generates a prompt to analyze search results;research_planner(topic, depth="basic|intermediate|comprehensive")— generates a structured research plan.
Use as CLI Command
Run directly with uvx (no install):
uvx --from git+https://github.com/varlabz/duckduckgo-mcp duckduckgo-cli "python programming"
Or from this project (or after installing locally) using uv:
uv run duckduckgo-cli "python programming"
With options:
uv run duckduckgo-cli "python programming" \
--max-results 20 \
--region us-en \
--safesearch on \
--timelimit week \
--categories text \
--json
Available options:
--max-results,-m: Maximum number of results (default: 10)--region,-r: Region code (e.g.,us-en)--safesearch,-s:on,moderate, oroff(default:off)--timelimit,-t:day,week,month, oryear--categories,-c:text(default),images,videos, ornews--json: Output results as JSON array--resoure-regions: Print the supported regions resource and exit--prompt-search-assistant QUERY: Print thesearch_assistantprompt text and exit--prompt-search-assistant-context CTX: Optional context for search assistant prompt--prompt-research-planner TOPIC: Print theresearch_plannerprompt text and exit--prompt-research-planner-depth DEPTH: Depth for research planner (basic,intermediate,comprehensive)
Examples with uvx:
# JSON output for scripting
uvx --from git+https://github.com/varlabz/duckduckgo-mcp duckduckgo-cli \
"api documentation" --json | jq .
# Generate a prompt for analyzing results
uvx --from git+https://github.com/varlabz/duckduckgo-mcp duckduckgo-cli \
--prompt-search-assistant "best python web frameworks" \
--prompt-search-assistant-context "target: 2025 stack, perf+ecosystem"
# List supported regions (human-readable)
uvx --from git+https://github.com/varlabz/duckduckgo-mcp duckduckgo-cli --resoure-regions
# List supported regions as JSON
uvx --from git+https://github.com/varlabz/duckduckgo-mcp duckduckgo-cli --resoure-regions --json
# Pin to a branch/tag/commit for reproducibility
uvx --from git+https://github.com/varlabz/duckduckgo-mcp@main duckduckgo-cli "golang tutorials"
Development
Development Setup
- Fork the repository
- Clone your fork:
git clone https://github.com/yourusername/duckduckgo-mcp.git - Set up the development environment:
cd duckduckgo-mcp uv venv source .venv/bin/activate uv sync
Code Quality
- Linting:
uv run ruff check - Formatting:
uv run ruff format - Testing:
uv run pytest - Type checking: Ensure all code follows Python type hints
License
This project is licensed under the MIT License.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.