duckduckgo
A Model Context Protocol (MCP) server that provides two capabilities: Search the web using DuckDuckGo Fetch and convert web content using Jina Reader
claude mcp add --transport stdio cyranob-duckduckgo-mcp uvx --python >=3.10,<3.14 web-forager serve
How to use
Web Forager is an MCP server that exposes web search and fetch capabilities powered by DuckDuckGo, packaged as a reusable MCP toolset. It provides three primary tools for MCP clients: duckduckgo_search to perform web searches and return results (JSON by default, with an option for plain text), duckduckgo_news_search to fetch recent news articles with source attribution, and web_fetch to retrieve and convert a URL into markdown or JSON (with a direct HTTP fetch attempt first and a Jina Reader fallback if needed). These tools enable integrated knowledge retrieval and content processing within MCP-enabled agents and workflows. To use the server, run it via an MCP client using the configured stdio transport; then call the exposed tools from your client code to perform searches, retrieve news, or fetch and format web pages for downstream processing by your AI models.
How to install
Prerequisites:
- Python 3.10 or higher
- uv (recommended) or pip
Install from PyPI (recommended):
# Using uv (preferred)
uv pip install web-forager
# Or using pip
pip install web-forager
Install with UVX (for Claude Desktop):
# Install UVX if you haven't already
pip install uvx
# Install the Web Forager package
uvx install web-forager
Install from source (for development):
# Clone the repository
git clone https://github.com/CyranoB/web-forager.git
cd web-forager
# Install with uv (recommended)
uv pip install -e .
# Or with pip
pip install -e .
Docker deployment (optional):
# Build the image (uses version from latest git tag)
docker build --build-arg VERSION=$(git describe --tags --abbrev=0 | sed 's/^v//') -t web-forager .
# Run the server (MCP clients use STDIO)
docker run -i web-forager
Additional notes
Notes:
- The MCP server runs in STDIO mode and is designed to be used with MCP clients that support the standard tool interface.
- You can customize Python versions via the MCP config (e.g., --python constraints in uvx) to ensure compatibility with your environment.
- The web_fetch tool attempts a direct HTTP fetch first; if that fails or is insufficient, it will fall back to Jina Reader for content extraction.
- When using Docker, ensure your MCP client can connect to the container's STDIO or adapt the entrypoint as needed for your environment.
- If you need to adjust output formats, you can pass output_format parameters to the tools (e.g., json, text, markdown) depending on the MCP client capabilities.
- The server exposes additional internal tools (duckduckgo_search, duckduckgo_news_search, web_fetch) for integration into larger agent workflows.
Related MCP Servers
web-eval-agent
An MCP server that autonomously evaluates web applications.
mcp-neo4j
Neo4j Labs Model Context Protocol servers
Gitingest
mcp server for gitingest
zotero
Model Context Protocol (MCP) server for the Zotero API, in Python
fhir
FHIR MCP Server – helping you expose any FHIR Server or API as a MCP Server.
unitree-go2
The Unitree Go2 MCP Server is a server built on the MCP that enables users to control the Unitree Go2 robot using natural language commands interpreted by a LLM.