Skip to main content
Glama
ss0832

ddg-mcp-search

by ss0832

ddg-mcp-search

A minimal MCP server that exposes a single DuckDuckGo search tool.
Use this as a lean starting point for building your own MCP servers with a plugin architecture.

Features

  • search tool — DuckDuckGo full-text search with region, time-limit, and safe-search options

  • Plugin architecture — drop a new .py file into plugins/ and it is auto-discovered on startup

  • SSE transport (compatible with Claude Desktop and other MCP clients)

Related MCP server: local-websearch-mcp

Requirements

  • Python 3.10+

  • pip packages listed in requirements.txt

Installation

git clone https://github.com/ss0832/ddg-mcp-search.git
cd ddg-mcp-search
pip install -r requirements.txt

Usage

python main.py

The server starts on http://0.0.0.0:9500 by default.

Environment variable

Default

Description

MCP_HOST

0.0.0.0

Bind host

MCP_PORT

9500

Bind port

Connecting to Claude Desktop

Add the following to your claude_desktop_config.json:

{
  "mcpServers": {
    "ddg-mcp-search": {
      "url": "http://localhost:9500/sse"
    }
  }
}

Tool reference

Search the web using DuckDuckGo.

Parameter

Type

Required

Default

Description

query

string

Search query

region

string

jp-jp

Region code, e.g. us-en, jp-jp

timelimit

string

d = past day, w = past week, m = past month, y = past year

safesearch

string

moderate

on, moderate, or off

max_results

integer

20

Maximum number of results to return

Example response:

- DuckDuckGo — Privacy, simplified.
  URL: https://duckduckgo.com
  Snippet: The Internet privacy company that empowers you to seamlessly take control of your personal information online, without any tradeoffs.

Adding new tools

  1. Create plugins/my_tool.py

  2. Define a class inheriting MCPPlugin with get_tools() and call_tool() methods

  3. Restart the server — it is discovered automatically

See plugins/web_search.py for a complete example.

License

MIT © 2026 ss0832

Related MCP Connectors

Related MCP Servers