Skip to main content

Multi-provider web search MCP server with intelligent auto-routing (Serper, Tavily, Exa)

Project description

web-search-plus-mcp

PyPI version Python 3.10+ MCP License: MIT

A Model Context Protocol (MCP) server that gives AI assistants access to multi-provider web search with intelligent auto-routing. Automatically selects the best search provider based on query intent — no manual switching needed.

Features

  • 🔍 Intelligent auto-routing — picks the right provider per query
  • Zero configuvx web-search-plus-mcp and you're done
  • 🔌 MCP-native — works with Claude Desktop, NanoBot, and any MCP host
  • 🔑 Bring your own keys — use whichever providers you have

Quick Start

# Run directly with uvx (no install needed)
uvx web-search-plus-mcp

# Or install globally
pip install web-search-plus-mcp
web-search-plus-mcp

Provider Routing

Provider Best For Required Key
Serper (Google) General search, news, current events SERPER_API_KEY
Tavily Research, deep content extraction TAVILY_API_KEY
Exa Neural / semantic / discovery search EXA_API_KEY

Auto-routing picks Serper for news/general queries, Tavily for research/analysis, and Exa for discovery-style or semantic queries. Falls back gracefully if a provider key is missing.

Claude Desktop Config

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "web-search-plus": {
      "command": "uvx",
      "args": ["web-search-plus-mcp"],
      "env": {
        "SERPER_API_KEY": "your_serper_key",
        "TAVILY_API_KEY": "your_tavily_key",
        "EXA_API_KEY": "your_exa_key"
      }
    }
  }
}

NanoBot Config

Add to your NanoBot config.json under mcp_servers:

{
  "mcp_servers": [
    {
      "name": "web-search-plus",
      "command": "uvx",
      "args": ["web-search-plus-mcp"],
      "env": {
        "SERPER_API_KEY": "your_serper_key",
        "TAVILY_API_KEY": "your_tavily_key",
        "EXA_API_KEY": "your_exa_key"
      }
    }
  ]
}

API Keys

Provider Free Tier Get Key
Serper 2,500 free searches/month serper.dev
Tavily 1,000 free searches/month tavily.com
Exa 1,000 free searches/month exa.ai

At least one provider key is required. All three recommended for best routing.

You can also drop a .env file next to the server script:

SERPER_API_KEY=xxx
TAVILY_API_KEY=xxx
EXA_API_KEY=xxx

Tool Reference

web_search

Parameter Type Default Description
query string required Search query
provider string "auto" Force provider: auto, serper, tavily, exa
count integer 5 Number of results to return

Credits

Built on the web-search-plus OpenClaw skill — a multi-provider search skill with intelligent auto-routing for AI assistants. The underlying search.py engine is extracted from that skill.

License

MIT © 2026 robbyczgw-cla

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

web_search_plus_mcp-0.1.0.tar.gz (29.9 kB view details)

Uploaded Source

Built Distribution

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

web_search_plus_mcp-0.1.0-py3-none-any.whl (31.9 kB view details)

Uploaded Python 3

File details

Details for the file web_search_plus_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: web_search_plus_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 29.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for web_search_plus_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d1c442f7644d2bbf26f7d096ab90af1353607d3fb394deb1bac1dc6c0ca34bed
MD5 3b2a59692e96bcff321351445345d1b2
BLAKE2b-256 f06df0457b5ef46928afd47ac84b93722c508436c41892dd9d418c69bf075fe1

See more details on using hashes here.

File details

Details for the file web_search_plus_mcp-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for web_search_plus_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6b9fca6b31bfa035922a95ce53907f822722f34a7c5ed424b9e9bc696f5a807d
MD5 d55fe60740b79f3d0375993439f6b608
BLAKE2b-256 5b52b29fe83314ec7b8b017bacc7797cf7b81b66f0e1d86e3d84454f54a7dec2

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