MCP Web Search Server

A web search server powered by DuckDuckGo, no API key required.

中文 | English


MCP Web Search Server

A free, API-key-free web search MCP (Model Context Protocol) server supporting DuckDuckGo, Bing, Google, and optional SerpAPI/Tavily for enhanced search quality.

Features

  • 🔍 Multi-Engine Search: DuckDuckGo + Bing + Google (free, no API key required)
  • 🔑 Optional API Keys: SerpAPI and Tavily for better search quality
  • 📄 Web Content Fetching: Get text content from any webpage
  • 🚀 Async Processing: High-performance asyncio-based async handling

Installation

PyPI (Recommended)

pip install heventure-search-mcp
heventure-search-mcp

uvx

uvx heventure-search-mcp

From Source

pip install git+https://github.com/HughesCuit/heventure-search-mcp.git
python -m server

Usage

MCP Client Config

{
  "mcpServers": {
    "web-search": {
      "command": "python",
      "args": ["/path/to/server.py"]
    }
  }
}

Trae AI

{
  "mcpServers": {
    "heventure-search-mcp": {
      "command": "uvx",
      "args": ["heventure-search-mcp"]
    }
  }
}

Available Tools

web_search

Search web content with multiple engines.

Parameters:

  • query (string, required): Search query
  • max_results (integer, optional): Max results (default: 10, range: 1-20)
  • search_engine (string, optional): Engine choice (default: "both")
    • "duckduckgo": DuckDuckGo only
    • "bing": Bing only
    • "google": Google only
    • "both": DuckDuckGo + Google + Bing

Optional API Keys (for Enhanced Search)

You can optionally set environment variables to enable paid search engines:

# SerpAPI (Google search results via API, 100 searches/month free)
export SERPAPI_KEY="your_serpapi_key"

# Tavily (AI-optimized search, 1000 searches/month free)
export TAVILY_API_KEY="your_tavily_api_key"

When API keys are configured, they will be automatically used alongside the free engines to improve search quality.

Example:

{
  "query": "Python tutorial",
  "max_results": 5,
  "search_engine": "both"
}

get_webpage_content

Get text content from a webpage.

Parameters:

  • url (string, required): Target webpage URL

Example:

{
  "url": "https://example.com"
}

Error Handling

  • Automatic retry on network failure
  • Graceful degradation on parse errors
  • User-friendly error messages

License

MIT License

Contributing

Issues and Pull Requests are welcome!

相关服务器

NotebookLM 网页导入器

一键将网页和 YouTube 视频导入 NotebookLM。超过 200,000 用户信赖。

安装 Chrome 扩展