mcp-omnisearch
Version:
MCP server for integrating Omnisearch with LLMs
183 lines (144 loc) • 4.36 kB
Markdown
[](https://viteplus.dev)
[](https://vitest.dev)
A Model Context Protocol (MCP) server that provides unified access to
Tavily, Brave, Kagi, Exa AI, GitHub, Linkup, and Firecrawl through
four consolidated tools.
<a href="https://glama.ai/mcp/servers/gz5wgmptd8">
<img width="380" height="200" src="https://glama.ai/mcp/servers/gz5wgmptd8/badge" alt="Glama badge" />
</a>
Install the published server with
[](https://github.com/spences10/mcpick):
```bash
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:
```bash
npx mcpick add \
--name mcp-omnisearch \
--command npx \
--args=-y,mcp-omnisearch \
--client vscode \
--scope project
```
See [Deployment](docs/deployment.md
secret-safe provider-key setup and the supported clients.
To run from source instead:
```bash
pnpm install
pnpm run build
node ./dist/index.js
```
You can also configure the server manually with whichever provider
keys you have. Providers without keys are skipped and the rest keep
working.
```json
{
"mcpServers": {
"mcp-omnisearch": {
"command": "node",
"args": ["/path/to/mcp-omnisearch/dist/index.js"],
"env": {
"TAVILY_API_KEY": "your-tavily-key",
"KAGI_API_KEY": "your-kagi-key",
"BRAVE_API_KEY": "your-brave-key",
"GITHUB_API_KEY": "your-github-token",
"EXA_API_KEY": "your-exa-key",
"LINKUP_API_KEY": "your-linkup-key",
"FIRECRAWL_API_KEY": "your-firecrawl-key"
}
}
}
}
```
Search the web with Tavily, Brave, Kagi, Exa, or Kagi Enrichment.
```json
{
"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.
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.
```json
{
"query": "Explain the differences between REST and GraphQL",
"provider": "kagi_fastgpt"
}
```
Search GitHub code, repositories, or users.
```json
{
"query": "filename:remote.ts @sveltejs/kit",
"search_type": "code",
"limit": 5
}
```
Extract, crawl, scrape, summarize, or find similar content with
Tavily, Kagi, Firecrawl, or Exa.
```json
{
"url": "https://example.com/long-article",
"provider": "tavily",
"mode": "extract",
"extract_depth": "advanced",
"query": "installation requirements",
"chunks_per_source": 3,
"format": "markdown"
}
```
- [Provider selection](docs/provider-selection.md) — choose providers
by task, key, mode, and capability.
- [Search operators](docs/search-operators.md) — operator support
matrix and tested examples.
- [Large results](docs/large-results.md) — inline vs file response
behavior and remote deployment caveats.
- [Deployment](docs/deployment.md) — MCP client, WSL, and Firecrawl
setup.
- [Troubleshooting](docs/troubleshooting.md) — keys, access,
validation, rate limits, and common failures.
- `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`
```bash
pnpm install
pnpm run build
pnpm test
```
Please read [CONTRIBUTING.md](CONTRIBUTING.md) before opening a PR.
MIT License - see [LICENSE](LICENSE).
Built on
[](https://github.com/modelcontextprotocol),
[](https://tavily.com), [Kagi](https://kagi.com),
[](https://search.brave.com), [Exa AI](https://exa.ai),
[](https://linkup.so), and [Firecrawl](https://firecrawl.dev).