mcp-omnisearch

A Model Context Protocol (MCP) server for Tavily, Brave, Kagi, Exa,
GitHub, Linkup, and Firecrawl. Two tools, search and execute,
expose schema-generated native provider functions through Pi’s local
QuickJS sandbox. Requires Node.js 22.19+.
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.
search
Discover available functions and their compact TypeScript
declarations. A provider-scoped lookup returns names and schemas
together:
{ "query": "tavily" }
Use an exact name such as tavily_search for a smaller lookup, or
{} for a catalog without declarations. Only configured providers
appear.
execute
Run JavaScript against the discovered native provider functions:
{
"code": "const r = await tools.tavily_search({ query: 'MCP code mode', max_results: 3 }); return r.results.map(({ title, url }) => ({ title, url }));"
}
Compose calls with await and Promise.all, filter intermediate
data, and return only what the client needs. Credentials stay on the
host; the sandbox has no filesystem or arbitrary network access.
Arguments and responses use native provider formats, not a normalized
search contract. See
Code Mode
for functions, limits and benchmark findings.
Upgrading
The consolidated web_search, ai_search, web_extract and
github_search tools have been removed. Provider keys stay the same,
but existing tool calls and client instructions need migration. See
the
breaking-change migration guide.
Documentation
- Migration
— move from consolidated tools to Code Mode.
- Code Mode
— native provider functions, schema generation, local testing, and
benchmark findings.
- Provider selection
— choose providers by task, key, mode, and capability.
- Search operators
— native query syntax and provider-specific filters.
- 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_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.
评论