← Discover MCPs and Agents
m
MCPAI & MLGitHub

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

built with vite+ tested with vitest

A Model Context Protocol (MCP) server that provides unified access to Tavily, Brave, Kagi, Exa AI, GitHub, Linkup, and Firecrawl through four consolidated tools.

Glama badge

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

Environment variables

  • TAVILY_API_KEY
  • KAGI_API_KEY
  • BRAVE_API_KEY
  • GITHUB_API_KEY
  • EXA_API_KEY
  • LINKUP_API_KEY
  • FIRECRAWL_API_KEY
  • FIRECRAWL_BASE_URL optional, for self-hosted Firecrawl
  • OMNISEARCH_LARGE_RESULT_MODE optional, file default or inline

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.