MCP DuckDuckGo Search Server

by spences10
Verified
# 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. <a href="https://glama.ai/mcp/servers/v99lwtriyk"> <img width="380" height="200" src="https://glama.ai/mcp/servers/v99lwtriyk/badge" /> </a> ## 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: ```json { "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: ```json { "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: ```bash pnpm install ``` 3. Build the project: ```bash pnpm build ``` 4. Run in development mode: ```bash pnpm dev ``` ### Publishing The project uses changesets for version management. To publish: 1. Create a changeset: ```bash pnpm changeset ``` 2. Version the package: ```bash pnpm changeset version ``` 3. Publish to npm: ```bash pnpm release ``` ## Contributing Contributions are welcome! Please feel free to submit a Pull Request. ## License MIT License - see the [LICENSE](LICENSE) file for details. ## Acknowledgments - Built on the [Model Context Protocol](https://github.com/modelcontextprotocol) - Powered by [DuckDuckGo](https://duckduckgo.com) through [SerpAPI](https://serpapi.com)