PXSR

MCP Smart Searcher

Community PXSR
Updated

mcp-smart-searcher

MCP Smart Searcher

A smart MCP (Model Context Protocol) server for multi-engine web search with AI-powered results.

Features

  • Multi-engine search — Search across 6 engines simultaneously: DuckDuckGo, Baidu, Juejin, GitHub, GitHub Code, Tavily
  • Web content extraction — Fetch and extract clean text from any public URL, with noise removal and prompt-guided filtering
  • Rate limiting — Built-in concurrency control via semaphore
  • Proxy support — Per-engine proxy configuration
  • Engine allowlist — Restrict which engines can be used

Installation

# For users
pip install mcp-smart-searcher

# For development
pip install -e ".[dev]"

Usage

Run the server

# Direct command (after pip install)
mcp-smart-searcher

# Or via Python module
python -m mcp_smart_searcher

# Or via uvx (no install required)
uvx mcp-smart-searcher

MCP client configuration

Add to your MCP client config (e.g., Claude Desktop):

{
  "mcpServers": {
    "smart-searcher": {
      "command": "mcp-smart-searcher"
    }
  }
}

Or with uvx (no install required):

{
  "mcpServers": {
    "smart-searcher": {
      "command": "uvx",
      "args": ["mcp-smart-searcher"]
    }
  }
}

Development

# Run with MCP inspector
mcp dev src/mcp_smart_searcher/server.py

# Run tests
PYTHONPATH=src pytest

# Build
python -m build

Configuration

All settings are configured via environment variables:

Variable Description Default
DEFAULT_SEARCH_ENGINE Default engine when none specified duckduckgo
ALLOWED_SEARCH_ENGINES Comma-separated allowlist; unset = all allowed (all)
TAVILY_API_KEY Tavily AI Search API key (none)
GITHUB_TOKEN GitHub API token (for github/github_code engines) (none)
USE_PROXY Enable proxy for engines that need it true
PROXY_URL Proxy address http://127.0.0.1:10809
PROXY_ENGINES Override: comma-separated engines that use proxy (auto)
MAX_CONCURRENT_SEARCH Max parallel search requests 5
LOG_LEVEL Logging level (DEBUG/INFO/WARNING/ERROR) INFO

Proxy behavior

By default, domestic engines (baidu, juejin) skip proxy, while all others use proxy. You can override this with PROXY_ENGINES:

# Only use proxy for DuckDuckGo and GitHub
PROXY_ENGINES=duckduckgo,github,github_code

# Disable proxy entirely
USE_PROXY=false

MCP client configuration with env vars

{
  "mcpServers": {
    "smart-searcher": {
      "command": "mcp-smart-searcher",
      "env": {
        "TAVILY_API_KEY": "tvly-xxx",
        "GITHUB_TOKEN": "ghp_xxx",
        "PROXY_URL": "http://127.0.0.1:10809",
        "LOG_LEVEL": "INFO"
      }
    }
  }
}

Or with uvx (no install required):

{
  "mcpServers": {
    "smart-searcher": {
      "command": "uvx",
      "args": ["mcp-smart-searcher"],
      "env": {
        "TAVILY_API_KEY": "tvly-xxx",
        "GITHUB_TOKEN": "ghp_xxx"
      }
    }
  }
}

Quick Start

1. Install

pip install mcp-smart-searcher

2. Configure (optional)

Create a .env file or set environment variables:

# .env
TAVILY_API_KEY=tvly-your-key-here
GITHUB_TOKEN=ghp_your-token-here
PROXY_URL=http://127.0.0.1:10809
LOG_LEVEL=INFO

3. Add to your MCP client

{
  "mcpServers": {
    "smart-searcher": {
      "command": "mcp-smart-searcher"
    }
  }
}

4. Done!

Your AI agent can now search the web and fetch web pages.

License

Apache-2.0

MCP Server · Populars

MCP Server · New