Skip to Content
MCP ServersCommunitymcp-duckduckgo-search

mcp-duckduckgo-search

View original on GitHub 

A Model Context Protocol (MCP) server for integrating DuckDuckGo search capabilities with LLMs. This server provides comprehensive web search functionality with support for various result types and filtering options.

Features

  • πŸ” Comprehensive web search using DuckDuckGo’s search engine
  • πŸ“Š Rich result types including:
    • Knowledge graph information
    • Organic search results
    • News articles
    • Video content
    • Image results
    • Related searches
  • 🌍 Region-specific search support
  • πŸ›‘οΈ Configurable safe search levels
  • πŸ“… Date-based filtering options
  • πŸ“„ Pagination support
  • πŸ’Ύ Built-in result caching
  • πŸ”’ Safe search options (off, moderate, strict)

Configuration

This server requires configuration through your MCP client. Here are examples for different environments:

Cline Configuration

Add this to your Cline MCP settings:

{ "mcpServers": { "mcp-duckduckgo-search": { "command": "npx", "args": ["-y", "mcp-duckduckgo-search"], "env": { "SERPAPI_KEY": "your-serpapi-api-key" } } } }

Claude Desktop with WSL Configuration

For WSL environments, add this to your Claude Desktop configuration:

{ "mcpServers": { "mcp-duckduckgo-search": { "command": "wsl.exe", "args": [ "bash", "-c", "source ~/.nvm/nvm.sh && SERPAPI_KEY=your-serpapi-api-key /home/username/.nvm/versions/node/v20.12.1/bin/npx mcp-duckduckgo-search" ] } } }

Environment Variables

The server requires the following environment variable:

  • SERPAPI_KEY: Your SerpAPI key (required)

API

The server implements a single MCP tool with configurable parameters:

Perform web searches using the DuckDuckGo search engine.

Parameters:

  • query (string, required): Search query
  • region (string, optional): Region code (e.g., us-en, uk-en) (default: us-en)
  • safe_search (string, optional): Safe search level (off, moderate, strict) (default: moderate)
  • date_filter (string, optional): Filter results by date:
    • β€˜d’: past day
    • β€˜w’: past week
    • β€˜m’: past month
    • β€˜y’: past year
    • Custom range: β€˜2023-01-01..2023-12-31’
  • start (number, optional): Result offset for pagination
  • no_cache (boolean, optional): Bypass cache for fresh results (default: false)

Response includes:

  • Knowledge graph data when available
  • Organic search results
  • News articles
  • Video content
  • Image results
  • Related searches
  • Search metadata

Development

Setup

  1. Clone the repository
  2. Install dependencies:
pnpm install
  1. Build the project:
pnpm build
  1. Run in development mode:
pnpm dev

Publishing

The project uses changesets for version management. To publish:

  1. Create a changeset:
pnpm changeset
  1. Version the package:
pnpm changeset version
  1. Publish to npm:
pnpm release

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

MIT License - see the LICENSE file for details.

Acknowledgments

Last updated on