
Mcp Omnisearch provides unified access to multiple search and content processing providers including Tavily, Brave, Kagi, Exa AI, GitHub, Linkup, and Firecrawl through four consolidated tools: web_search for general web queries, ai_search for AI-powered answers with citations, github_search for code and repository discovery, and web_extract for content extraction and summarization. The server consolidates disparate APIs into a single interface, allowing users to leverage different search providers' strengths—such as Tavily's citation support, Brave's privacy focus, Exa's semantic search, and Firecrawl's scraping capabilities—without managing multiple integrations. This solves the problem of having to implement and maintain connections to multiple search APIs separately.
A Model Context Protocol (MCP) server that provides unified access to Tavily, Brave, Kagi, Exa AI, GitHub, Linkup, and Firecrawl through four consolidated tools.
Install the published server with MCPick:
npx mcpick add \
--name mcp-omnisearch \
--command npx \
--args=-y,mcp-omnisearch
MCPick defaults to Claude Code. Use --client and --scope to target
another client or add the server to the current repository:
npx mcpick add \
--name mcp-omnisearch \
--command npx \
--args=-y,mcp-omnisearch \
--client vscode \
--scope project
See Deployment for supported clients and provider credential storage options.
To run from source instead:
pnpm install
pnpm run build
node ./dist/index.js
Providers without keys are skipped and the rest keep working. If your client supports environment-variable expansion, reference keys instead of storing their values in the MCP configuration:
{
"mcpServers": {
"mcp-omnisearch": {
"command": "npx",
"args": ["-y", "mcp-omnisearch"],
"env": {
"TAVILY_API_KEY": "${TAVILY_API_KEY}",
"EXA_API_KEY": "${EXA_API_KEY}"
}
}
}
}
Add only the provider keys you use. Expansion syntax and secret storage are client-specific; see Deployment for secure options and plaintext fallback guidance.
web_searchSearch the web with Tavily, Brave, Kagi, Exa, or Kagi Enrichment.
{
"query": "latest SvelteKit releases",
"provider": "tavily",
"limit": 10,
"search_depth": "advanced",
"topic": "news",
"time_range": "month",
"safe_search": true,
"include_raw_content": false,
"auto_parameters": false
}
Search controls apply when supported by the selected provider.
ai_searchGet sourced AI answers with Kagi FastGPT, Exa Answer, Linkup, or
Tavily Research. Tavily Research returns a task ID first; pass it back
as research_id to retrieve the report.
{
"query": "Explain the differences between REST and GraphQL",
"provider": "kagi_fastgpt"
}
github_searchSearch GitHub code, repositories, or users.
{
"query": "filename:remote.ts @sveltejs/kit",
"search_type": "code",
"limit": 5
}
web_extractExtract, crawl, scrape, summarize, or find similar content with Tavily, Kagi, Firecrawl, or Exa.
{
"url": "https://example.com/long-article",
"provider": "tavily",
"mode": "extract",
"extract_depth": "advanced",
"query": "installation requirements",
"chunks_per_source": 3,
"format": "markdown"
}
TAVILY_API_KEYKAGI_API_KEYBRAVE_API_KEYGITHUB_API_KEYEXA_API_KEYLINKUP_API_KEYFIRECRAWL_API_KEYFIRECRAWL_BASE_URL optional, for self-hosted FirecrawlOMNISEARCH_LARGE_RESULT_MODE optional, file default or inlinepnpm install
pnpm run build
pnpm test
Please read CONTRIBUTING.md before opening a PR.
MIT License - see LICENSE.
Built on Model Context Protocol, Tavily, Kagi, Brave Search, Exa AI, Linkup, and Firecrawl.