Agentic web search

One search.
Every source.

Web Search Plus routes live web search, research mode and URL extraction across the right providers — now security-hardened for Hermes Agent, OpenClaw, NanoClaw, Claude Code, Cursor, NanoBot and any MCP client.

13 search providers 6 extraction providers research mode · canonical rerank · SSRF guards Built by Robby Czesany @robbyczgw-cla
routing-preview.jsonlive
latest model pricing
fresh broad query
Brave
compare RAG papers
research query
Tavily
extract docs URL
content fetch + fallback
Exa → Linkup
similar OSS projects
semantic discovery
Exa
13search providers
6extraction providers
4install paths
1interface to learn

Why it exists

Stop hardcoding one search backend.

Agents need different sources for different jobs. Web Search Plus picks the route, keeps fallbacks warm, and returns clean structured results without turning every project into provider glue code.

01

Intent routing

Research, shopping, news, local, semantic discovery and extraction each get routed to providers that are actually good at that job.

02

Failure-tolerant

Missing key, provider hiccup or empty result? It falls through instead of making the agent faceplant like a demo on conference Wi‑Fi.

03

Debuggable + safer

Quality reports explain provider choice, canonical-domain boosts, errors, timing and extraction path; SSRF guards block private and metadata URLs by default.

One hardcoded backendWeb Search Plus
Provider outage = every agent run breaks
Automatic fallback chain keeps answers flowing
Same engine forced on news, research, shopping and code
Each intent routes to a provider that is actually good at it
New client or runtime = new provider glue code
One engine across Hermes, OpenClaw and any MCP client
Empty results fail silently mid-task
Quality reports show who answered, why and how fast
Mirrors and SEO sludge outrank primary sources
Canonical-source reranking boosts official docs, releases, policy and security sources
User-supplied URLs can wander into private networks
SSRF protection blocks loopback, private ranges and cloud metadata endpoints by default

Provider mesh

Coverage without the mess.

Use one interface; route across search, discovery, extraction and self-hosted privacy paths.

Serper Google-style results Brave broad web Tavily research Exa semantic discovery Querit multilingual Linkup grounded citations Firecrawl scrape-ready content Perplexity summarized web Kilo Perplexity gateway route You.com web + code SerpBase Google SERP Parallel explicit search + extract SearXNG self-hosted

Under the hood

Every query gets a plan.

No black box. Each request is classified, routed, retried, canonical-reranked when intent calls for it, and — if you ask — explained back to you.

01

Classify intent

The query is read first: research, news, shopping, local, semantic discovery or URL extraction.

02

Pick the provider

The best provider for that intent is chosen from the keys you actually have configured — one key works, more keys route smarter.

03

Fall through on failure

Missing key, provider error or empty result set? The chain moves to the next candidate instead of surfacing a dead end to the agent.

04

Return the receipts

Pass quality_report=true and the response explains provider choice, fallback chain, canonical-domain hits, timings and any reranking taken.

quality-report.json
{
  // example quality report
  "query_intent": "research",
  "provider_used": "tavily",
  "reason": "research intent + key available",
  "fallback_chain": ["brave", "serper"],
  "fallbacks_taken": 0,
  "results_returned": 8,
  "metadata": { "intent_rerank": true },
  "authority_signals": {
    "canonical_top_result": true,
    "canonical_domain_hits": 3
  },
  "elapsed_ms": 742
}

Install paths

Pick your runtime.

Hermes Agent and OpenClaw Plugin are both primary flagship paths. NanoClaw gets its own utility-skill front-end, and the MCP server keeps every other client on the same routing engine.

NanoClaw Utility Skill

GitHub

NanoClaw front-end for Web Search Plus: a self-contained utility skill that installs the wsp CLI into agent containers, no MCP required, no metered WebSearch pool.

/add-web-search-plus

MCP Server

PyPI v0.11.0

Standalone Python MCP server for Claude Desktop, Cursor, NanoBot and other clients. Current PyPI line carries the shared routing engine, 13 search providers, 6 extraction providers and registry-backed diagnostics.

uvx web-search-plus-mcp

OpenClaw Skill

v3.2.0

Portable skill workflow with research mode, canonical-source reranking, SSRF-protected URL extraction, hardened caching disclosures and narrow SkillSpector-clean triggers.

openclaw skills install web-search-plus

Quickstart

Paste once, search everywhere.

Choose your client. Copy button included because typing config JSON on mobile is cruel and unusual punishment.

# OpenClaw Plugin
openclaw plugins install clawhub:web-search-plus-plugin-v2

# Configure at least one provider key in plugin config
plugins.entries.web-search-plus-plugin-v2.config.braveApiKey=your-brave-key
plugins.entries.web-search-plus-plugin-v2.config.tavilyApiKey=your-tavily-key
plugins.entries.web-search-plus-plugin-v2.config.exaApiKey=your-exa-key
plugins.entries.web-search-plus-plugin-v2.config.linkupApiKey=your-linkup-key
# Hermes Agent
hermes plugins install robbyczgw-cla/hermes-web-search-plus --enable
python ~/.hermes/plugins/web-search-plus/setup.py setup

# Restart/reload Hermes, then use:
web_search_plus(query="latest AI model releases", quality_report=true)
web_extract_plus(urls=["https://example.com/docs"])
{
  "mcpServers": {
    "web-search-plus": {
      "command": "uvx",
      "args": ["web-search-plus-mcp"],
      "env": {
        "YOU_API_KEY": "your-key",
        "SERPER_API_KEY": "your-key",
        "LINKUP_API_KEY": "your-key"
      }
    }
  }
}
{
  "mcpServers": {
    "web-search-plus": {
      "command": "uvx",
      "args": ["web-search-plus-mcp"],
      "env": {
        "YOU_API_KEY": "your-key",
        "SERPER_API_KEY": "your-key",
        "LINKUP_API_KEY": "your-key"
      }
    }
  }
}
{
  "tools": {
    "mcpServers": {
      "web-search-plus": {
        "command": "uvx",
        "args": ["web-search-plus-mcp"],
        "env": {
          "YOU_API_KEY": "your-key",
          "SERPER_API_KEY": "your-key",
          "LINKUP_API_KEY": "your-key"
        }
      }
    }
  }
}

Current state

Fresh, not fossilized.

The page tracks the current mainline surface: Hermes v2.4.0, OpenClaw Plugin v3.1.0, OpenClaw Skill v3.2.0 and MCP v0.11.0 — no fossilized release copy.

OpenClaw Skill v3.2.0June 10, 2026

Feature sync with Hermes v2.4.0 plus SkillSpector fixes: narrow triggers, privacy disclosures, hardened local cache permissions, SSRF URL guard, permission metadata and credential redaction.

OpenClaw Plugin v3.1.0June 10, 2026

Native plugin release adds research mode, authority reranking, quality signals and retry jitter; ClawHub artifact verified and install-smoked through OpenClaw.

Hermes v2.4.0June 8, 2026

In-process Hermes tool calls remove subprocess startup overhead, research mode fans providers out concurrently, and CLI/config helpers now load keys from the active Hermes profile .env.

MCP v0.11.0current PyPI

Standalone MCP package keeps Claude Desktop, Cursor, NanoBot and other clients on the same shared routing engine and provider registry.

NanoClaw utility skillGitHub

Dedicated NanoClaw front-end packages the shared engine as a self-contained wsp CLI skill for agent containers — search and extract, no MCP bridge required.

FAQ

Quick answers.

Do I need API keys for all 13 providers?

No. One provider key is enough to get started — routing adapts to whichever keys are present and simply gets smarter as you add more. SearXNG even works self-hosted with no commercial key at all.

Which clients does it work with?

Hermes Agent and OpenClaw natively as flagship plugins, NanoClaw through a dedicated utility-skill front-end, plus Claude Desktop, Claude Code, Cursor, NanoBot and any other MCP-compatible client through the standalone web-search-plus-mcp server on PyPI.

What happens when a provider fails?

The router falls through the chain: a missing key, provider error or empty result set moves the request to the next candidate automatically. The quality report records every fallback that was taken, so nothing fails silently.

Does it extract page content too, or just search?

Both. web_search_plus handles live search across 13 providers, and web_extract_plus pulls clean content from URLs across 6 extraction providers with the same fallback behavior.

What does it cost?

The router itself is free and open source on GitHub. You only pay the providers you choose to configure — many offer generous free tiers, and the self-hosted SearXNG path costs nothing.