Skip to main content

DuckDuckGo Search MCP Server with full page content extraction

Project description

DDGS MCP Server

A Model Context Protocol (MCP) server that provides DuckDuckGo Search capabilities to AI agents.

Features

  • search_text: Advanced metasearch using bing, brave, duckduckgo, google, mojeek, yahoo, yandex, wikipedia.
    • Full Content Extraction: Optionally fetch complete page content (not just snippets) for comprehensive context.
  • search_news: Find latest updates, releases, and tech news.

Full Content Extraction

For coding agents that need complete context from search results, enable full page content fetching:

Usage

{
  "query": "python async programming tutorial",
  "fetch_full_content": true,
  "max_content_length": 50000,
  "max_results": 5
}

Parameters

Parameter Type Default Description
fetch_full_content boolean false Enable full page content extraction
max_content_length integer 50000 Maximum characters per page (when fetch_full_content is true)

Response Structure

When fetch_full_content is enabled, each result includes a full_content field:

[
  {
    "title": "Python Async Programming Guide",
    "href": "https://example.com/python-async",
    "body": "Brief snippet from search results...",
    "full_content": "Complete extracted article text with all paragraphs, code examples, and detailed explanations..."
  }
]

Performance Notes

  • Content extraction adds ~1-3 seconds latency per page
  • Up to 5 pages are fetched concurrently to minimize total time
  • Failed fetches return [Content extraction failed or blocked] without breaking the search
  • Uses Trafilatura for high-quality text extraction

Installation & Usage

You can run this server directly using uvx without installing it globally.

VS Code (Claude Desktop / Cline)

Add this to your MCP settings file (e.g., cline_mcp_settings.json or claude_desktop_config.json):

{
  "mcpServers": {
    "ddgs-search": {
      "command": "uvx",
      "args": [
        "ddgs-mcp-server"
      ],
      "disabled": false,
      "alwaysAllow": []
    }
  }
}

Manual Execution

uvx ddgs-mcp-server

Secrets & Configuration

This project technically does not require API keys to run locally, as it scrapes DuckDuckGo. However, for publishing or proxy usage, you should configure your environment.

1. Set up Secrets

Copy the example file:

cp .env.example .env

2. Required Tokens

Token Purpose How to Get It
PyPI API Token Publishing to PyPI 1. Go to PyPI Account Settings
2. Select "Add API Token"
3. Scope to "Entire account" (for first publish)
4. Set as TWINE_PASSWORD in .env
Proxy URL Bypassing Blocks (Optional) Use any HTTP/SOCKS5 proxy provider if you encounter rate limits.

Development / Publishing

To build and publish this package to PyPI (using the secrets from above):

  1. Build:

    pip install build twine
    python -m build
    
  2. Publish (loads secrets from .env if you export them, or prompts you):

    # If using .env variables (PowerShell)
    # $env:TWINE_USERNAME = "__token__"
    # $env:TWINE_PASSWORD = "pypi-..."
    
    python -m twine upload dist/*
    

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

ddgs_mcp_server-0.5.1.tar.gz (9.4 kB view details)

Uploaded Source

Built Distribution

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

ddgs_mcp_server-0.5.1-py3-none-any.whl (6.9 kB view details)

Uploaded Python 3

File details

Details for the file ddgs_mcp_server-0.5.1.tar.gz.

File metadata

  • Download URL: ddgs_mcp_server-0.5.1.tar.gz
  • Upload date:
  • Size: 9.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for ddgs_mcp_server-0.5.1.tar.gz
Algorithm Hash digest
SHA256 8b0281c60f1a622587c5a6215491b543a3915963c50082f5fdf5e13cb3ddb704
MD5 0fc598a1832d02f669728c8c2deac11c
BLAKE2b-256 5ca04e552ec9d61964b87bd2eae5cde6ea5baa49836033c8a4186b1bca64d469

See more details on using hashes here.

File details

Details for the file ddgs_mcp_server-0.5.1-py3-none-any.whl.

File metadata

File hashes

Hashes for ddgs_mcp_server-0.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b6b8b614472dfa2a706ac4e8970bd64275e775b7bd7e61a6a91f387666212c8d
MD5 1a1f05a294964b8227c22cc9309cfed1
BLAKE2b-256 c49af645d8ac41c29760165f751e95c0be243008e17ec1aeed43d76d99384900

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