DuckDuckGo Web Search
About
Enables web search capabilities through DuckDuckGo, retrieving search results with titles, URLs, and snippets while offering optional content fetching with HTML-to-markdown conversion for real-time internet information access.
Details
- Author
- kouui
- Repository
- kouui/web-search-duckduckgo
- Categories
- Productivity, Developer Tools, Design, AI, Search, Infrastructure
- Tags
- #web
Jump to
Web Search: Search the web using DuckDuckGo.
Result Extraction: Extracts titles, URLs, and snippets from search results.
Content Fetching (Optional): Fetches the content of the URLs found in the search results and converts it to markdown format using jina api.
Parallel Fetching: Fetches multiple URLs concurrently for faster processing.
Error Handling: Gracefully handles timeouts and other potential errors during search and fetching.
Configurable: Allows you to set the maximum number of search results to return.
Jina API: using jina api to convert html to markdown.
MCP Compliant: This server is designed to be used with any MCP-compatible client.
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
DuckDuckGo Web SearchCommand (node, npx, python, etc.)uvArguments-
Argument 1
--directory -
Argument 2
/path/to/web-search-duckduckgo -
Argument 3
run -
Argument 4
main.py
Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
-
Argument 1
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
1. Prerequisites:
uvx package manager
2. Claude Desktop Configuration
If you are using Claude Desktop, you can add the server to the claude_desktop_config.json file.
{
"mcpServers": {
"web-search-duckduckgo": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/kouui/web-search-duckduckgo.git@main",
"main.py"
]
}
}
}
the above configuration is not working, you might need to clone the repository to local pc and use the following configuration
{
"mcpServers": {
"web-search-duckduckgo": {
"command": "uv",
"args": [
"--directory",
"/path/to/web-search-duckduckgo",
"run",
"main.py"
]
}
}
}
3. Tool
In your MCP client (e.g., Claude), you can now use the following tools:
search_and_fetch: Search the web and fetch the content of the URLs.
query: The search query string.
limit: The maximum number of results to return (default: 3, maximum: 10).
fetch: Fetch the content of a specific URL.
url: The URL to fetch.
search_and_fetch
Search the web and fetch the content of the URLs. Parameters: query (string), limit (optional integer, default: 3, maximum: 10)
fetch
Fetch the content of a specific URL. Parameters: url (string)
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"duckduckgo web search": {
"cwd": "/path/to/web-search-duckduckgo",
"env": {},
"args": [
"--directory",
"/path/to/web-search-duckduckgo",
"run",
"main.py"
],
"command": "uv"
}
}
}
Linux
{
"cwd": "/path/to/web-search-duckduckgo",
"env": [],
"args": [
"--directory",
"/path/to/web-search-duckduckgo",
"run",
"main.py"
],
"command": "uv"
}
Macos
{
"cwd": "/path/to/web-search-duckduckgo",
"env": [],
"args": [
"--directory",
"/path/to/web-search-duckduckgo",
"run",
"main.py"
],
"command": "uv"
}
Windows
{
"cwd": "/path/to/web-search-duckduckgo",
"env": [],
"args": [
"--directory",
"/path/to/web-search-duckduckgo",
"run",
"main.py"
],
"command": "uv"
}
DuckDuckGo Web Search MCP Server
This project provides an MCP (Model Context Protocol) server that allows you to search the web using the DuckDuckGo search engine and optionally fetch and summarize the content of the found URLs.
Features
Web Search: Search the web using DuckDuckGo.
Result Extraction: Extracts titles, URLs, and snippets from search results.
Content Fetching (Optional): Fetches the content of the URLs found in the search results and converts it to markdown format using jina api.
Parallel Fetching: Fetches multiple URLs concurrently for faster processing.
Error Handling: Gracefully handles timeouts and other potential errors during search and fetching.
Configurable: Allows you to set the maximum number of search results to return.
Jina API: using jina api to convert html to markdown.
MCP Compliant: This server is designed to be used with any MCP-compatible client.
Usage
1. Prerequisites:
uvx package manager
2. Claude Desktop Configuration
If you are using Claude Desktop, you can add the server to the claude_desktop_config.json file.
{
"mcpServers": {
"web-search-duckduckgo": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/kouui/web-search-duckduckgo.git@main",
"main.py"
]
}
}
}
the above configuration is not working, you might need to clone the repository to local pc and use the following configuration
{
"mcpServers": {
"web-search-duckduckgo": {
"command": "uv",
"args": [
"--directory",
"/path/to/web-search-duckduckgo",
"run",
"main.py"
]
}
}
}
3. Tool
In your MCP client (e.g., Claude), you can now use the following tools:
search_and_fetch: Search the web and fetch the content of the URLs.
query: The search query string.
limit: The maximum number of results to return (default: 3, maximum: 10).
fetch: Fetch the content of a specific URL.
url: The URL to fetch.
License
This project is licensed under the MIT License. (Add a license file if you want to specify a license).
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.





