duckduckgo-mcp-server-sse


Nameduckduckgo-mcp-server-sse JSON
Version 0.1.1.post1 PyPI version JSON
download
home_pageNone
SummaryMCP Server (SSE) for searching via DuckDuckGo
upload_time2025-07-16 06:03:23
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseNone
keywords duckduckgo http mcp search sse web-search
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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:

```bash
pip install duckduckgo-mcp-server-sse
```

### Startup

You can start the server using the following command:

```bash
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:

```bash
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:

```json
{
    "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

```python
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

```python
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.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "duckduckgo-mcp-server-sse",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "duckduckgo, http, mcp, search, sse, web-search",
    "author": null,
    "author_email": "Nick Clyde <nick@clyde.tech>, wildoranges <zkd18cjb@mail.ustc.edu.cn>",
    "download_url": "https://files.pythonhosted.org/packages/4d/4c/4f4a5099df424486579109f1c4587030b38f3ee4284fc35653820c7ed22c/duckduckgo_mcp_server_sse-0.1.1.post1.tar.gz",
    "platform": null,
    "description": "# DuckDuckGo Search MCP Server (SSE)\n\nA Model Context Protocol (MCP) server that provides web search capabilities through DuckDuckGo, with additional features for content fetching and parsing, running over HTTP (SSE).\n\n## Features\n\n- **Web Search**: Search DuckDuckGo with advanced rate limiting and result formatting\n- **Content Fetching**: Retrieve and parse webpage content with intelligent text extraction\n- **Rate Limiting**: Built-in protection against rate limits for both search and content fetching\n- **Error Handling**: Comprehensive error handling and logging\n- **LLM-Friendly Output**: Results formatted specifically for large language model consumption\n\n## Usage\n\n### Installation\n\nYou can install the server using pip:\n\n```bash\npip install duckduckgo-mcp-server-sse\n```\n\n### Startup\n\nYou can start the server using the following command:\n\n```bash\nduckduckgo-mcp-server-sse --host <your-host> --port <your-port>\n```\n\n- `--host`: The host to bind the server to. Defaults to `0.0.0.0`.\n- `--port`: The port to run the server on. Defaults to `8000`.\n\nFor example:\n\n```bash\nduckduckgo-mcp-server-sse --host 127.0.0.1 --port 8080\n```\n\n### Settings in CLINE\n\nAdd the following configuration, adjusting the host and port to match your server setup:\n\n```json\n{\n    \"mcpServers\": {\n        \"ddg-search-sse\": {\n            \"disabled\": false,\n            \"timeout\": 60,\n            \"type\": \"sse\",\n            \"url\": \"http://127.0.0.1:8000/sse\",\n            \"headers\": {\n                \"Accept\": \"application/json, text/event-stream\"\n            }\n        }\n    }\n}\n```\n\n## Available Tools\n\n### 1. Search Tool\n\n```python\nasync def search(query: str, max_results: int = 10) -> str\n```\n\nPerforms a web search on DuckDuckGo and returns formatted results.\n\n**Parameters:**\n- `query`: Search query string\n- `max_results`: Maximum number of results to return (default: 10)\n\n**Returns:**\nFormatted string containing search results with titles, URLs, and snippets.\n\n### 2. Content Fetching Tool\n\n```python\nasync def fetch_content(url: str) -> str\n```\n\nFetches and parses content from a webpage.\n\n**Parameters:**\n- `url`: The webpage URL to fetch content from\n\n**Returns:**\nCleaned and formatted text content from the webpage.\n\n## Features in Detail\n\n### Rate Limiting\n\n- Search: Limited to 30 requests per minute\n- Content Fetching: Limited to 20 requests per minute\n- Automatic queue management and wait times\n\n### Result Processing\n\n- Removes ads and irrelevant content\n- Cleans up DuckDuckGo redirect URLs\n- Formats results for optimal LLM consumption\n- Truncates long content appropriately\n\n### Error Handling\n\n- Comprehensive error catching and reporting\n- Detailed logging through MCP context\n- Graceful degradation on rate limits or timeouts\n\n## Contributing\n\nIssues and pull requests are welcome! Some areas for potential improvement:\n\n- Additional search parameters (region, language, etc.)\n- Enhanced content parsing options\n- Caching layer for frequently accessed content\n- Additional rate limiting strategies\n\n## License\n\nThis project is licensed under the MIT License.\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "MCP Server (SSE) for searching via DuckDuckGo",
    "version": "0.1.1.post1",
    "project_urls": {
        "Homepage": "https://github.com/wildoranges/duckduckgo-mcp-server-sse",
        "Issues": "https://github.com/wildoranges/duckduckgo-mcp-server-sse/issues"
    },
    "split_keywords": [
        "duckduckgo",
        " http",
        " mcp",
        " search",
        " sse",
        " web-search"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "bdb76aa9afd56bc7ab1c4d6bf66c638035908636df33e6c12d4ad8827bd3ac49",
                "md5": "c9dbf49a25ca63f31f6ee97a104a980b",
                "sha256": "c5c2a4261956e0af31b5a76cf798183fdc5a7b698abdf9c4f78b1acb7ccd6926"
            },
            "downloads": -1,
            "filename": "duckduckgo_mcp_server_sse-0.1.1.post1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "c9dbf49a25ca63f31f6ee97a104a980b",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 6895,
            "upload_time": "2025-07-16T06:03:21",
            "upload_time_iso_8601": "2025-07-16T06:03:21.956084Z",
            "url": "https://files.pythonhosted.org/packages/bd/b7/6aa9afd56bc7ab1c4d6bf66c638035908636df33e6c12d4ad8827bd3ac49/duckduckgo_mcp_server_sse-0.1.1.post1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4d4c4f4a5099df424486579109f1c4587030b38f3ee4284fc35653820c7ed22c",
                "md5": "0f39a432c4c9b20fb6329947aa90d108",
                "sha256": "0b2b3d9a550c28dd4a1e8cd6bfdb0e8d83d8bdde26baafe8f136f9f20406c48a"
            },
            "downloads": -1,
            "filename": "duckduckgo_mcp_server_sse-0.1.1.post1.tar.gz",
            "has_sig": false,
            "md5_digest": "0f39a432c4c9b20fb6329947aa90d108",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 22647,
            "upload_time": "2025-07-16T06:03:23",
            "upload_time_iso_8601": "2025-07-16T06:03:23.496793Z",
            "url": "https://files.pythonhosted.org/packages/4d/4c/4f4a5099df424486579109f1c4587030b38f3ee4284fc35653820c7ed22c/duckduckgo_mcp_server_sse-0.1.1.post1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-16 06:03:23",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "wildoranges",
    "github_project": "duckduckgo-mcp-server-sse",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "duckduckgo-mcp-server-sse"
}
        
Elapsed time: 3.39623s