Duckduckgo MCP Server
DuckDuckGo search queries and webpage content extraction for AI assistants.
Data last scanned last week · Reviewed 2 months ago
Overview
This server integrates DuckDuckGo search functionality directly into your MCP-compatible AI assistant. It allows models to perform web searches and retrieve parsed text content from external webpages, specifically formatted for LLM consumption.
Our verdict
With a security score of 55/100, this server is considered high-risk. The primary concern is that authentication methods, OAuth support, and read-only mode safety have not yet been reviewed, which is critical for tools interacting with the live web. Due to these unverified security interfaces, this server is best suited for experimental or low-stakes environments rather than production systems handling sensitive data.
- Zero direct dependencies minimize the supply-chain attack surface
- Active maintenance with a recent commit two days ago
- Supports customizable SafeSearch levels and regional search results
- Formatted outputs optimized for large language model ingestion
- Authentication mechanisms remain unreviewed
- Read-only mode implementation status is currently unknown
- Community-maintained project rather than an official vendor release
Tools
| Tool | Description | Risk |
|---|---|---|
| search | Performs a web search on DuckDuckGo and returns formatted results. | low |
| fetch_content | Fetches and parses content from a webpage. | low |
Compatibility
| Client | Local | Docker | Remote | Read-only |
|---|---|---|---|---|
| Claude Desktop | ||||
| Cursor | ||||
| VS Code | ||||
| Windsurf | ||||
| ChatGPT |
Frequently asked questions
›Does the server require any specific environment configurations?
You can optionally configure SafeSearch levels and regional search results by setting the DDG_SAFE_SEARCH and DDG_REGION environment variables in your MCP client configuration.
›What should I do if search results are returning empty?
DuckDuckGo's search endpoint may block the default httpx client due to TLS fingerprinting. You can resolve this by installing the browser extra with 'uv pip install duckduckgo-mcp-server[browser]' and using the 'auto' or 'curl' backend.
›Can I switch between different HTTP backends?
Yes, you can set a server-wide default using the --fetch-backend CLI flag, or override the backend on a per-call basis using the backend argument within the fetch_content tool.
›Does the server support transports other than stdio?
Yes, the server supports SSE and streamable-http transports, which you can enable using the --transport flag along with --host and --port options if needed.
›Is the browser-based backend required for all features?
The browser-based backend is optional and only required if you need to use the 'curl' or 'auto' backends to bypass TLS-fingerprint-based blocking.
Alternatives
Changelog
Badge
Maintain this server? Add the live badge to your README.