/ Directory / Playground / mcp-omnisearch
● Community spences10 ⚡ Instant

mcp-omnisearch

by spences10 · spences10/mcp-omnisearch

One MCP, every search engine — Tavily, Brave, Kagi, Exa, plus Firecrawl for extraction. Mix providers without juggling 5 MCPs.

mcp-omnisearch unifies web search, AI-search, GitHub search, and content extraction behind four tools. Bring keys for whichever providers you pay for; unkeyed providers are skipped silently. Great when you want redundancy across search backends or cost optimization per query type.

Why use it

Key features

Live Demo

What it looks like in practice

omnisearch.replay ▶ ready
0/0

Install

Pick your client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "omnisearch": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-omnisearch"
      ],
      "_inferred": true
    }
  }
}

Open Claude Desktop → Settings → Developer → Edit Config. Restart after saving.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "omnisearch": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-omnisearch"
      ],
      "_inferred": true
    }
  }
}

Cursor uses the same mcpServers schema as Claude Desktop. Project config wins over global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "omnisearch": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-omnisearch"
      ],
      "_inferred": true
    }
  }
}

Click the MCP Servers icon in the Cline sidebar, then "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "omnisearch": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-omnisearch"
      ],
      "_inferred": true
    }
  }
}

Same shape as Claude Desktop. Restart Windsurf to pick up changes.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "omnisearch",
      "command": "npx",
      "args": [
        "-y",
        "mcp-omnisearch"
      ]
    }
  ]
}

Continue uses an array of server objects rather than a map.

~/.config/zed/settings.json
{
  "context_servers": {
    "omnisearch": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "mcp-omnisearch"
        ]
      }
    }
  }
}

Add to context_servers. Zed hot-reloads on save.

claude mcp add omnisearch -- npx -y mcp-omnisearch

One-liner. Verify with claude mcp list. Remove with claude mcp remove.

Use Cases

Real-world ways to use mcp-omnisearch

Research a topic with fallback across multiple search engines

👤 Researchers, analysts, anyone who's been burned by a single engine's bias ⏱ ~15 min beginner

When to use: A fresh topic where one engine's top-10 often differs from another's.

Prerequisites
  • At least one search API key (Tavily free tier is easiest) — tavily.com/signup — free tier is 1000 req/month
Flow
  1. Run a search with the cheapest provider first
    Search Tavily for 'latest MCP protocol changes 2026'. Summarize the top 5 results.✓ Copied
    → Summary with citations
  2. Cross-check on a different provider
    Now search the same query on Brave. Which results show up in both? Which are unique?✓ Copied
    → Overlap analysis
  3. Extract full content for the most promising result
    Use web_extract on the top result and give me the actual useful text, not nav boilerplate.✓ Copied
    → Clean markdown of the article

Outcome: A cross-validated research answer with confidence boosted by multi-engine agreement.

Pitfalls
  • Per-provider quotas vary — Tavily is generous, Kagi costs per query — Route exploratory searches to Tavily, save Kagi for high-signal 'give me the answer' queries via FastGPT
  • web_extract fails on JS-heavy sites — Use Firecrawl (JS-rendering) for SPAs; Tavily extract for static pages
Combine with: notion

Get a cited quick answer with AI search

👤 Anyone who wants 'what's the answer' not 'here are 10 blue links' ⏱ ~5 min beginner

When to use: A specific factual question where you want reasoning with sources.

Prerequisites
  • At least one AI-search key: KAGI_API_KEY, EXA_API_KEY, or LINKUP_API_KEY — Kagi FastGPT is the cheapest per query
Flow
  1. Ask via ai_search
    Use ai_search (Kagi FastGPT) for: what's the default rate limit for the GitHub Models API as of Q1 2026?✓ Copied
    → Direct answer with citations
  2. Verify the citation
    Open the top citation with web_extract and confirm the claim.✓ Copied
    → Quoted source text

Outcome: A verified quick answer, cheaper and faster than a free-search round-trip.

Pitfalls
  • AI search can confidently misquote sources — Always web_extract the top citation for claims that matter

Search public GitHub for reference implementations

👤 Devs evaluating libraries or looking for code patterns ⏱ ~15 min intermediate

When to use: 'Has anyone solved X in Rust?' type questions.

Prerequisites
  • GITHUB_API_KEY with no scopes (public only) — github.com/settings/tokens — classic token with empty scope list is fine
Flow
  1. Search with code operators
    github_search for fn main() language:rust path:src/ 'tokio::select!' — top 20 repos.✓ Copied
    → Repo list with file hits
  2. Pull specific files worth reading
    For the top 3 hits, use web_extract on the raw.githubusercontent URLs and show me the tokio::select! patterns they use.✓ Copied
    → Code excerpts with context

Outcome: A focused reading list of real-world implementations you can learn from.

Combine with: github

Combinations

Pair with other MCPs for X10 leverage

omnisearch + notion

Research a topic across engines, save distilled notes to Notion

Research 'post-quantum TLS 2026 state of play' across Tavily and Brave, extract the 3 best sources, and save a Notion page summarizing them.✓ Copied
omnisearch + github

Discover repos on GitHub public search, then do deep ops on the best one via the github MCP

github_search for rate-limiter libraries in Go, pick the top, then via the github MCP open its latest 3 issues.✓ Copied

Tools

What this MCP exposes

ToolInputsWhen to callCost
web_search query: str, provider?: tavily|brave|kagi|exa, options?: {site?, filetype?, time?, lang?} Broad web search with operator control 1 provider API call
ai_search query: str, provider?: kagi_fastgpt|exa|linkup You want a direct cited answer, not links 1 AI-search call (costlier than regular search)
github_search query: str, kind?: code|repo|user Code/repo/user discovery with GitHub syntax 1 GitHub API call (30/min code search limit)
web_extract url: str, provider?: firecrawl|tavily|kagi Get clean article text from a URL 1 extractor call

Cost & Limits

What this costs to run

API quota
Per-provider. Tavily: 1000 req/mo free. Brave: 2000/mo free. Kagi: pay-per-call. Exa: free tier ~1000/mo.
Tokens per call
Search results: 500-1500 tokens. AI search with citations: 1-3k. Extracted articles: 2-8k.
Monetary
Free to start (Tavily, Brave, Exa free tiers); Kagi pay-per-call; Firecrawl self-host = free
Tip
Route: cheap broad search → Tavily/Brave; high-signal answers → Kagi FastGPT; extraction → self-hosted Firecrawl.

Security

Permissions, secrets, blast radius

Minimum scopes: GitHub token: empty scopes (public only)
Credential storage: Env vars per provider: TAVILY_API_KEY, BRAVE_API_KEY, etc.
Data egress: Queries to each configured provider's API; results back through
Never grant: GitHub token with repo write — web_search is public-only Self-hosted Firecrawl without auth exposed to public internet

Troubleshooting

Common errors and fixes

Provider not configured

Set the env var for that provider, or pass provider= to route to a different one.

Verify: echo $TAVILY_API_KEY
Firecrawl extraction timeout

Heavy SPA; raise FIRECRAWL timeout, or fall back to tavily/kagi extract for static pages.

GitHub search returns 403

Unauthenticated code search is heavily rate-limited. Supply GITHUB_API_KEY even with empty scopes.

Verify: curl -H 'Authorization: Bearer $GITHUB_API_KEY' https://api.github.com/rate_limit

Alternatives

mcp-omnisearch vs others

AlternativeWhen to use it insteadTradeoff
brave-search MCPYou only need one engine and want a minimal configNo AI search, no multi-provider redundancy
searxng MCPYou want fully self-hosted metasearch with no API keysYou host the SearXNG instance
kindly-web-searchYou want fuller content retrieval baked in (full StackOverflow threads, GitHub issues)Smaller provider list

More

Resources

📖 Read the official README on GitHub

🐙 Browse open issues

🔍 Browse all 400+ MCP servers and Skills