DuckDuckGo Search MCP Server
A free, unlimited web search MCP server for LLM agents. Uses DuckDuckGo to search the web and returns full extracted page content.
How it works
- Your LLM agent calls the
web_searchtool with a query - The server searches DuckDuckGo and gets the top results
- It concurrently fetches each result page and extracts the main content, stripping ads, navigation, and boilerplate
- Clean, structured Markdown is returned — ready for the LLM to reason over and cite
Results are sorted with full page extracts first, falling back to snippets for pages that can't be fetched (paywalls, bot blocks, etc.). A summary header tells the agent how many full extracts vs snippets were returned.
Requirements
- Claude desktop app
- uv installed
Installation
claude mcp add web-search uvx ddg-search-mcp
That's it. No virtual environments, no pip installs, no API keys. uvx handles everything automatically in an isolated environment.
Verify it's connected:
claude mcp list
You should see web-search with a ✓ connected status.
Usage
Once installed, just talk to Claude naturally:
"Search for the latest news on AI regulation"
"Find recent benchmarks comparing Claude and GPT-4"
"Look up how to configure a Next.js app router"
Claude will automatically call the web_search tool when it needs current information from the web.
You can also explicitly ask:
"Use web search to find..."
Tool parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
query |
string | required | Natural language search query |
num_results |
int | 5 | Number of results to fetch (1–10) |
Performance
- Pages are fetched concurrently — 5 results take roughly the same time as 1
- Pages that take longer than 8 seconds are dropped automatically
- Known bot-blocking domains (YouTube, Twitter, Reddit, LinkedIn, etc.) are skipped to avoid wasting time
- DuckDuckGo lite endpoint is used as primary, with the HTML endpoint as fallback
Privacy
All searches go through DuckDuckGo, which does not track users or build profiles. No data is sent to any third-party API.
Limitations
- Results depend on DuckDuckGo's index — not Google
- Some sites block automated fetching (paywalls, Cloudflare protection) and will fall back to snippet-only
- DuckDuckGo may throttle very high-frequency automated requests
Updating
uv cache clean
claude mcp remove web-search
claude mcp add web-search uvx ddg-search-mcp
License
MIT
Metadata
Release files for ddg-search-mcp 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| ddg_search_mcp-0.1.3.tar.gz | 85.6 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ddg_search_mcp-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 176.0 kB
Release files / ddg_search_mcp-0.1.3.tar.gz
| Download URL | ddg_search_mcp-0.1.3.tar.gz |
|---|---|
| Size | 85.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2641b51619d22a60eed44eaeb42cb758eb222c68b32cb2b6e95d278f320a0c93
|
|
BLAKE2b-256 checksum How to use checksums |
24d4ba260277c09adf95cf3d618eeb094281eda053b7d54677a6de9625c8dfe0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.7
|
Release files / ddg_search_mcp-0.1.3-py3-none-any.whl
| Download URL | ddg_search_mcp-0.1.3-py3-none-any.whl |
|---|---|
| Size | 90.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5b5070fd06cb2d32a4c43670b00cf44e0e8a9f57a83b43fb7f3f990673cebaf2
|
|
BLAKE2b-256 checksum How to use checksums |
e9e4e126f249882d51c63d2a47b33d53f41958cb42f8523599a4110ac31d3392
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.7
|
Security for ddg-search-mcp 0.1.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.