A free, unlimited web search MCP server for LLM agents using DuckDuckGo
Project description
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
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ddg_search_mcp-0.1.3.tar.gz.
File metadata
- Download URL: ddg_search_mcp-0.1.3.tar.gz
- Upload date:
- Size: 85.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2641b51619d22a60eed44eaeb42cb758eb222c68b32cb2b6e95d278f320a0c93
|
|
| MD5 |
c15623c0482013f0c1f2eaf9c1639eca
|
|
| BLAKE2b-256 |
24d4ba260277c09adf95cf3d618eeb094281eda053b7d54677a6de9625c8dfe0
|
File details
Details for the file ddg_search_mcp-0.1.3-py3-none-any.whl.
File metadata
- Download URL: ddg_search_mcp-0.1.3-py3-none-any.whl
- Upload date:
- Size: 90.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b5070fd06cb2d32a4c43670b00cf44e0e8a9f57a83b43fb7f3f990673cebaf2
|
|
| MD5 |
78d0f56e73f1efa75a6d3db99267a71b
|
|
| BLAKE2b-256 |
e9e4e126f249882d51c63d2a47b33d53f41958cb42f8523599a4110ac31d3392
|