
DuckDuckGo MCP Server by Nick Clyde: Setup for Claude, Cursor and Other Apps
Lets Claude, Cursor or another assistant search the web with DuckDuckGo and read the pages it finds, with no account or API key.
This is a community server by Nick Clyde. DuckDuckGo did not make it. It runs on your computer with uvx and fetches pages from your own network connection.
Install it with the extra browser option shown in the install box. DuckDuckGo sometimes blocks plain requests and returns no results, and the extra lets the server retry in a way that gets through.
Good for
- People who want web search in an assistant without paying for a search API
- Researchers who want the assistant to read and summarise result pages
- Privacy-minded users who prefer DuckDuckGo to other search engines
Works in
12 should work
Tap an app to see how to set it up and any known problems.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Client does not support this transport.
Client does not support this transport.
Install duckduckgo-mcp-server
Claude Code
- 1
Copy this prompt.
Add the duckduckgo-mcp-server server to Claude Code. Run this command: claude mcp add duckduckgo -- uvx --with "duckduckgo-mcp-server[browser]" duckduckgo-mcp-server Then check that it loaded and tell me if I need to sign in or restart.
- 2
Paste it into Claude Code. It shows the change and asks before running it.
The README installs the [browser] extra with uv pip install "duckduckgo-mcp-server[browser]", which lets search retry with a Chrome-like connection when DuckDuckGo blocks plain requests. The uvx --with command and the client configs here are our adaptation of that, not a form the README shows.
Built from the package data we hold. Not yet tested by us.
Tools
Searches the web with DuckDuckGo
Searches DuckDuckGo and returns 1 to 20 results with titles, links and snippets. You can set a region such as us-en or de-de. The tool text warns that results are untrusted web text.
Try: “Search for the latest Python 3.14 release notes and list the top 5 links.”
Network ·
searchReads a web page as clean text
Downloads a page and returns its readable text, 8,000 characters at a time, with options to keep only the main article or to return markdown. It refuses addresses on your own network by default and caches pages for 5 minutes.
Try: “Open the second result and summarise the article.”
Network ·
fetch_contentTurns a short ref:// token back into a URL
Search shortens very long result links into ref:// tokens to save space. This tool looks one up and returns the real link so the assistant can show or cite it. Tokens are forgotten when the server restarts.
Try: “Give me the full link for the first result.”
Read ·
expand_link
Read from the source code
Permissions
low risk · 4 things to watch
Low risk
It only reads: it sends your search words to DuckDuckGo and downloads pages the assistant asks for. Page text is untrusted, so treat instructions inside fetched pages with care.
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only mode
Watch out for
Web pages can try to steer the assistant
Fetched pages and search snippets are untrusted text and can contain instructions aimed at the assistant. The tool text tells the model not to follow them, but you should still check what it does next. github.com
Your search words go to DuckDuckGo
Each query is sent to DuckDuckGo from your computer. Avoid asking the assistant to search for private details. github.com
Private-network fetching can be switched on
By default fetch_content refuses loopback, private and cloud-metadata addresses. Do not set DDG_ALLOW_PRIVATE_URLS or --allow-private-urls unless you trust everything the assistant reads. github.com
HTTP mode binds to localhost only unless you change it
With sse or streamable-http the default address is 127.0.0.1:8000. The README shows --host 0.0.0.0 for proxies and Docker, which opens the port to your network with no sign-in. github.com
Security advisories
No published security advisories as of Nov 1, 2026.
Technical details
| Talks to | html.duckduckgo.com (your search queries). Any public web page the assistant asks fetch_content to open |
|---|---|
| Sign-in and keys | No credentials are used. |
| Scopes |
|
Questions
Is the DuckDuckGo MCP server official?
No. Nick Clyde, an independent developer, made it. DuckDuckGo is not involved. This page covers the nickclyde/duckduckgo-mcp-server repo; other DuckDuckGo servers exist.
Do I need an API key?
No. It scrapes DuckDuckGo's search page, so there is no account or key. That also means DuckDuckGo can rate-limit or block it.
Why does search return no results?
DuckDuckGo may block the default web client and answer with an empty page. Install with the extra browser option, which the README recommends, so the server can retry with a Chrome-like connection.
Is it free?
Yes. The server is MIT licensed and there is no paid plan or key.
Can I turn on SafeSearch or pick a region?
Yes. Set DDG_SAFE_SEARCH to STRICT, MODERATE or OFF, and DDG_REGION to a code such as us-en. The README says SafeSearch is set at startup and the assistant cannot change it. The assistant can change the region per search.
Can it read pages on my own network?
Not by default. fetch_content refuses private, loopback and cloud-metadata addresses. You can allow them with an option, but only do that if you trust the pages it reads.
Does it run locally?
Yes. It runs on your computer, usually over stdio, and makes the web requests from your connection.
Information
updated Nov 2, 2026
- Publisher
- Community
- Package
duckduckgo-mcp-server- Registry
- PyPI
- Transport
- stdio, SSE, Streamable HTTP
- Auth
- None
- License
- MIT
- Last commit
- Sep 4, 2026
- Open issues
- 3
- Listed in
- Docker MCP Catalog
Sources
Docs, issue trackers and discussions this page is built from. Issues, quotes and findings above link to their own source.
Show all 3Hide
- README.md · github.com
- server.py · github.com
- pyproject.toml · github.com