Skip to main content

Multi-provider web search, Parallel-aware extraction, and onboarding for MCP clients

Project description

🔍 web-search-plus-mcp

web search plus logo

PyPI version Python 3.10+ MCP License: MIT Glama

Multi-provider web search and Parallel-aware URL extraction for MCP clients.

web-search-plus-mcp is the standalone MCP packaging of Web Search Plus. It gives Claude Desktop, Cursor, NanoBot, Hermes native MCP, and other MCP-compatible hosts the same provider family used by the Hermes/OpenClaw Web Search Plus tools.

Version note: web-search-plus-mcp uses its own MCP package version (0.9.0) while tracking the Web Search Plus v2.2 engine family. The plugin package is versioned separately as hermes-web-search-plus v2.2.x.

✨ Features

  • 13 search providers — Serper, Brave, Tavily, Exa, Linkup, Firecrawl, Parallel, native Perplexity, Kilo Perplexity, You.com, SearXNG, SerpBase, Querit
  • 6 extract providers — Tavily, Exa, Linkup, Parallel, Firecrawl, You.com
  • Routing v2 auto-routing — class-aware routing for multilingual/current, docs/API, arXiv, CVE/security, local/shopping, OSS discovery, and answer/synthesis queries
  • Quality reports — optional routing/result diagnostics
  • Research mode — opt-in multi-provider search + top-source extraction with a time budget
  • Onboarding CLIstatus, list, setup, and persistent routing config helpers for MCP env/config wiring
  • Zero-install runuvx web-search-plus-mcp
  • MCP-native — stdio server exposing stable web_search and web_extract tools

🚀 Quick Start

# Run the MCP server instantly with uvx
uvx web-search-plus-mcp

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

At least one provider credential is required for search. Extraction needs at least one extraction-capable provider key.

🧭 Easier onboarding

Check configured providers:

web-search-plus-mcp status

List providers or presets:

web-search-plus-mcp list providers
web-search-plus-mcp list presets

Write a starter .env template and print a canonical MCP stdio snippet:

web-search-plus-mcp setup --preset starter

The recommended starter preset is You.com + Serper + Linkup. It gives a practical Routing v2 baseline for fast current search, Google-style discovery, and extraction workflows without wiring every provider on day one.

status returns a non-zero exit code when no search provider is configured, which makes it usable as a config check in scripts.

Persistent routing preferences live in config.json rather than .env:

web-search-plus-mcp config show
web-search-plus-mcp config set-default you        # strict fixed-provider mode
web-search-plus-mcp config set-routing on         # restore Routing v2 auto-routing
web-search-plus-mcp config set-priority you,serper,exa,firecrawl,tavily,linkup,parallel
web-search-plus-mcp config set-fallback serper
web-search-plus-mcp config disable perplexity
web-search-plus-mcp config enable perplexity
web-search-plus-mcp config disable kilo-perplexity
web-search-plus-mcp config set-threshold 0.45
web-search-plus-mcp config reset --yes

Use --config-path /path/to/config.json or WEB_SEARCH_PLUS_CONFIG=/path/to/config.json for isolated MCP host installs. Provider secrets stay in environment variables; routing behavior stays in config.json.

Other presets:

  • minimal — You.com only
  • lean — You.com + Linkup
  • starter — You.com + Serper + Linkup
  • all — every supported provider env var

⚙️ MCP host config

Canonical stdio snippet for Claude Desktop, Cursor, NanoBot, or Hermes native MCP:

{
  "mcpServers": {
    "web-search-plus": {
      "command": "uvx",
      "args": ["web-search-plus-mcp"],
      "env": {
        "YOU_API_KEY": "your_you_key",
        "SERPER_API_KEY": "your_serper_key",
        "LINKUP_API_KEY": "your_linkup_key"
      }
    }
  }
}

Common places to paste this snippet:

  • Claude Desktop macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Claude Desktop Windows: %APPDATA%\\Claude\\claude_desktop_config.json
  • Claude Desktop Linux: ~/.config/Claude/claude_desktop_config.json
  • Cursor: project/user MCP config using the same mcpServers shape
  • Hermes native MCP: ~/.hermes/config.yaml under mcp_servers with equivalent command/env fields

You can also place a .env file next to the package/project with the same variables.

🔎 Search Providers

  • You.com — fast Routing v2 core provider for current, multilingual, and answer-shaped snippets
  • Serper — Google-style facts, news, shopping, local queries
  • Exa — semantic discovery, GitHub/docs, arXiv/academic, and OSS discovery
  • Firecrawl — web search plus scrape-ready content
  • Parallel — explicit-only LLM-ready web search with long excerpts (PARALLEL_API_KEY, auto_allow=false)
  • Tavily — research and analysis
  • Linkup — source-backed grounding/citations
  • Brave — explicit-only independent web index by default (BRAVE_API_KEY, auto_allow=false)
  • Perplexity — explicit-only native Perplexity API synthesized answers (PERPLEXITY_API_KEY, sonar-pro, auto_allow=false)
  • Kilo Perplexity — explicit-only Perplexity via Kilo gateway (KILOCODE_API_KEY, perplexity/sonar-pro, auto_allow=false)
  • SearXNG — privacy-first self-hosted meta-search
  • SerpBase — explicit-only Google SERP API (SERPBASE_API_KEY, auto_allow=false)
  • Querit — explicit-only multilingual, real-time AI search (QUERIT_API_KEY, auto_allow=false)

📄 Extract Providers

  • Tavily — default first choice; fastest reliable extraction in the v2.1 benchmark
  • Exa — fast contents API, strong for docs/academic pages
  • Linkup — clean markdown and source-grounded fetches
  • Parallel — fast excerpt-rich docs fallback with optional full-content extraction
  • Firecrawl — robust scrape fallback, useful for JS-heavy/blocked pages
  • You.com — LLM-ready snippets/content where available

🛠 MCP Tool Reference

This MCP server exposes stable web_search and web_extract tools. The old beta web_answer tool was removed to match Web Search Plus v2.1: use web_search for source discovery and let the MCP host synthesize from results when needed.

The Hermes plugin exposes the same stable capability as web_search_plus and web_extract_plus; the names differ because MCP and Hermes use different tool surfaces.

web_search

Use for source discovery, current events, prices, weather, sports lineups, schedules, and whenever you want the raw search landscape first.

Parameters:

  • query — required search query
  • providerauto, serper, brave, tavily, exa, linkup, firecrawl, parallel, perplexity, kilo-perplexity, you, searxng, serpbase, querit
  • count — results to return, default 5, max 20
  • depth — Exa depth: normal, deep, deep-reasoning
  • time_rangehour, day, week, month, year
  • include_domains / exclude_domains — domain allow/deny lists
  • modenormal or research
  • quality_report — include routing/result diagnostics
  • research_time_budget — best-effort wall-clock budget for research mode

Example MCP arguments:

{
  "query": "latest AI hardware news",
  "provider": "auto",
  "count": 5,
  "quality_report": true
}

web_extract

Parameters:

  • urls — required list of URLs
  • providerauto, tavily, exa, linkup, parallel, firecrawl, you
  • formatmarkdown or html
  • include_images — include image metadata when supported
  • include_raw_html — include raw HTML when supported
  • render_js — render JavaScript before extraction when supported

Example MCP arguments:

{
  "urls": ["https://example.com"],
  "provider": "auto",
  "format": "markdown"
}

🧠 Routing v2 Examples

  • 東京 AI ニュース 今日 → You.com multilingual/current search
  • arXiv 2024 LLM scaling laws → Exa academic discovery
  • CVE-2025 openssl advisory → Serper security/current search
  • best bookshelf speakers under 1000 EUR Austria → Serper/Firecrawl shopping/local search
  • open source alternatives to Linear → Exa/Firecrawl OSS discovery
  • summarize the tradeoffs of RAG vs fine-tuning → You.com with synthesis hint metadata for the MCP host

Guarded providers can still be called explicitly. To let one participate in provider="auto", opt in:

web-search-plus-mcp config set-auto-allow parallel on
web-search-plus-mcp config set-auto-allow parallel off

Credits

Built on the Web Search Plus routing engine and packaged as a standalone MCP server.

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.9.0.tar.gz (956.5 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.9.0-py3-none-any.whl (56.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: web_search_plus_mcp-0.9.0.tar.gz
  • Upload date:
  • Size: 956.5 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.9.0.tar.gz
Algorithm Hash digest
SHA256 1ba1331532907378554e407b1d925712f981c7eebb9779df89c66d510dfb014c
MD5 df3c214a8f5ce1cd0f56289db6b822df
BLAKE2b-256 3624945a7b744b264dd8eef84f26769409d104c3ec5aa0588e4966851c2c0fa4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for web_search_plus_mcp-0.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0a8045cccecc28d3b6259495d2849043604b0d67f2e8e297cf275e102aa29c95
MD5 7649f641193916ec8ce8272831574c29
BLAKE2b-256 ded11836c0e95b1e712e7add06ee397eda8763e03aa9e2c06ce45d744114eca9

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