Skip to main content

MCP Server (SSE) for searching via DuckDuckGo

Project description

DuckDuckGo Search MCP Server (SSE)

A Model Context Protocol (MCP) server that provides web search capabilities through DuckDuckGo, with additional features for content fetching and parsing, running over HTTP (SSE).

Features

  • Web Search: Search DuckDuckGo with advanced rate limiting and result formatting
  • Content Fetching: Retrieve and parse webpage content with intelligent text extraction
  • Rate Limiting: Built-in protection against rate limits for both search and content fetching
  • Error Handling: Comprehensive error handling and logging
  • LLM-Friendly Output: Results formatted specifically for large language model consumption

Usage

Installation

You can install the server using pip:

pip install duckduckgo-mcp-server-sse

Startup

You can start the server using the following command:

duckduckgo-mcp-server-sse --host <your-host> --port <your-port>
  • --host: The host to bind the server to. Defaults to 0.0.0.0.
  • --port: The port to run the server on. Defaults to 8000.

For example:

duckduckgo-mcp-server-sse --host 127.0.0.1 --port 8080

Settings in CLINE

Add the following configuration, adjusting the host and port to match your server setup:

{
    "mcpServers": {
        "ddg-search-sse": {
            "disabled": false,
            "timeout": 60,
            "type": "sse",
            "url": "http://127.0.0.1:8000/sse",
            "headers": {
                "Accept": "application/json, text/event-stream"
            }
        }
    }
}

Available Tools

1. Search Tool

async def search(query: str, max_results: int = 10) -> str

Performs a web search on DuckDuckGo and returns formatted results.

Parameters:

  • query: Search query string
  • max_results: Maximum number of results to return (default: 10)

Returns: Formatted string containing search results with titles, URLs, and snippets.

2. Content Fetching Tool

async def fetch_content(url: str) -> str

Fetches and parses content from a webpage.

Parameters:

  • url: The webpage URL to fetch content from

Returns: Cleaned and formatted text content from the webpage.

Features in Detail

Rate Limiting

  • Search: Limited to 30 requests per minute
  • Content Fetching: Limited to 20 requests per minute
  • Automatic queue management and wait times

Result Processing

  • Removes ads and irrelevant content
  • Cleans up DuckDuckGo redirect URLs
  • Formats results for optimal LLM consumption
  • Truncates long content appropriately

Error Handling

  • Comprehensive error catching and reporting
  • Detailed logging through MCP context
  • Graceful degradation on rate limits or timeouts

Contributing

Issues and pull requests are welcome! Some areas for potential improvement:

  • Additional search parameters (region, language, etc.)
  • Enhanced content parsing options
  • Caching layer for frequently accessed content
  • Additional rate limiting strategies

License

This project is licensed under the MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

duckduckgo_mcp_server_sse-0.1.1.post1.tar.gz (22.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file duckduckgo_mcp_server_sse-0.1.1.post1.tar.gz.

File metadata

File hashes

Hashes for duckduckgo_mcp_server_sse-0.1.1.post1.tar.gz
Algorithm Hash digest
SHA256 0b2b3d9a550c28dd4a1e8cd6bfdb0e8d83d8bdde26baafe8f136f9f20406c48a
MD5 0f39a432c4c9b20fb6329947aa90d108
BLAKE2b-256 4d4c4f4a5099df424486579109f1c4587030b38f3ee4284fc35653820c7ed22c

See more details on using hashes here.

File details

Details for the file duckduckgo_mcp_server_sse-0.1.1.post1-py3-none-any.whl.

File metadata

File hashes

Hashes for duckduckgo_mcp_server_sse-0.1.1.post1-py3-none-any.whl
Algorithm Hash digest
SHA256 c5c2a4261956e0af31b5a76cf798183fdc5a7b698abdf9c4f78b1acb7ccd6926
MD5 c9dbf49a25ca63f31f6ee97a104a980b
BLAKE2b-256 bdb76aa9afd56bc7ab1c4d6bf66c638035908636df33e6c12d4ad8827bd3ac49

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page