Skip to main content

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.

Metadata

Release files for duckduckgo-mcp-server-sse 0.1.1.post1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for duckduckgo-mcp-server-sse 0.1.1.post1
File Size Uploaded
duckduckgo_mcp_server_sse-0.1.1.post1.tar.gz 22.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for duckduckgo-mcp-server-sse 0.1.1.post1
File Interpreter ABI Platform
duckduckgo_mcp_server_sse-0.1.1.post1-py3-none-any.whl Python 3 none any Details

Total release size: 29.5 kB

Release files / duckduckgo_mcp_server_sse-0.1.1.post1.tar.gz

Download URL duckduckgo_mcp_server_sse-0.1.1.post1.tar.gz
Size 22.6 kB
Tags Source
SHA-256 checksum
How to use checksums
0b2b3d9a550c28dd4a1e8cd6bfdb0e8d83d8bdde26baafe8f136f9f20406c48a
BLAKE2b-256 checksum
How to use checksums
4d4c4f4a5099df424486579109f1c4587030b38f3ee4284fc35653820c7ed22c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.12

Release files / duckduckgo_mcp_server_sse-0.1.1.post1-py3-none-any.whl

Download URL duckduckgo_mcp_server_sse-0.1.1.post1-py3-none-any.whl
Size 6.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c5c2a4261956e0af31b5a76cf798183fdc5a7b698abdf9c4f78b1acb7ccd6926
BLAKE2b-256 checksum
How to use checksums
bdb76aa9afd56bc7ab1c4d6bf66c638035908636df33e6c12d4ad8827bd3ac49
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.12

Release history Release notifications | RSS feed

This release

0.1.1.post1 This release

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page