mcp-omnisearch
🔍 A Model Context Protocol (MCP) server providing unified access to multiple search engines (Tavily, Brave, Kagi, Exa), AI tools (Kagi FastGPT, Exa, Linkup), and content extraction services (Firecrawl, Tavily, Kagi). Includes GitHub search. All through a single interface.
Links
README
From the repo.
mcp-omnisearch
A Model Context Protocol (MCP) server that provides unified access to Tavily, Brave, Kagi, Exa AI, GitHub, Linkup, and Firecrawl through four consolidated tools.
Quick start
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.
Tools
web_search
Search 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_search
Get 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_search
Search GitHub code, repositories, or users.
{
"query": "filename:remote.ts @sveltejs/kit",
"search_type": "code",
"limit": 5
}
web_extract
Extract, 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"
}
Documentation
- Provider selection — choose providers by task, key, mode, and capability.
- Search operators — operator support matrix and tested examples.
- Large results — inline vs file response behavior and remote deployment caveats.
- Deployment — MCP client, WSL, and Firecrawl setup.
- Troubleshooting — keys, access, validation, rate limits, and common failures.
Environment variables
TAVILY_API_KEYKAGI_API_KEYBRAVE_API_KEYGITHUB_API_KEYEXA_API_KEYLINKUP_API_KEYFIRECRAWL_API_KEYFIRECRAWL_BASE_URLoptional, for self-hosted FirecrawlOMNISEARCH_LARGE_RESULT_MODEoptional,filedefault orinline
Development
pnpm install
pnpm run build
pnpm test
Please read CONTRIBUTING.md before opening a PR.
License
MIT License - see LICENSE.
Acknowledgments
Built on Model Context Protocol, Tavily, Kagi, Brave Search, Exa AI, Linkup, and Firecrawl.
Collected info
- ★ 349 stars
- ⎇ 51 forks
- Language: TypeScript
- Source updated: 9/24/2026
Config for your environment
Replace {MCP_ENDPOINT_URL} with this MCP’s endpoint URL (from its repo or docs above). No API key — you connect directly.
Tool
OS
Config file: ~/.cursor/mcp.json
{
"mcpServers": {
"mcp-server": {
"url": "{MCP_ENDPOINT_URL}"
}
}
}Paste into mcpServers in the config file. Restart Cursor after saving.
If this MCP is also published on mcpchannel.ai, you can subscribe from Browse and use the gateway config there instead.