Package detail

mcp-duckduckgo-search

spences1091MIT0.0.2

MCP server for DuckDuckGo search

mcp, model-context-protocol, duckduckgo, search

readme

mcp-duckduckgo-search

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:

ddg_search

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

changelog

mcp-perplexity-search

0.0.2

Patch Changes

  • add glama badge

0.0.1

Patch Changes

  • init

0.0.5

Patch Changes

  • docs: update README to include glama badge

0.0.4

Patch Changes

  • feat: expand features and documentation for PerplexityServer

0.0.3

Patch Changes

  • feat: enhance PerplexityServer with detailed parameter descriptions

0.0.2

Patch Changes

  • refactor: modularize prompt templates and enhance customization in PerplexityServer