mcp-omnisearch
by: spences10
๐ A Model Context Protocol (MCP) server providing unified access to multiple search engines (Tavily, Brave, Kagi), AI tools (Perplexity, FastGPT), and content processing services (Jina AI, Kagi). Combines search, AI responses, content processing, and enhancement features through a single interface.
๐Overview
Purpose: To provide a unified server for accessing multiple search providers and AI tools through a single interface, enhancing search and content processing capabilities.
Overview: MCP Omnisearch integrates various AI and search capabilities, combining functionalities from providers like Tavily, Perplexity, Kagi, Jina AI, Brave, and Firecrawl. This offers users a streamlined experience for search, AI response generation, content processing, and enhancement.
Key Features:
-
Comprehensive Search Tools: Access to multiple search engines such as Tavily for fact-based queries, Brave for privacy-focused results, and Kagi for high-quality searches with less advertisement influence.
-
AI Response Generation: Features like Perplexity AI for advanced responses and Kagi FastGPT for quick, citation-based answers improve the efficiency of obtaining information.
-
Robust Content Processing: Tools like Jina AI Reader for content extraction, Firecrawl for web crawling and scraping, and Kagi Universal Summarizer for summarizing various media ensure effective handling of information.
-
Enhancement Tools: Integrate supplementary content and real-time fact verification through the Kagi Enrichment API and Jina AI Grounding for accurate information validation.
mcp-omnisearch
A Model Context Protocol (MCP) server that provides unified access to multiple search providers and AI tools. It combines capabilities from Tavily, Perplexity, Kagi, Jina AI, Brave, and Firecrawl to offer comprehensive search, AI responses, content processing, and enhancement features through a single interface.
Features
Search Tools
- Tavily Search: Optimized for factual information with strong citation support. Supports domain filtering through API parameters.
- Brave Search: Privacy-focused search with good technical content coverage, supporting native search operators.
- Kagi Search: High-quality search results with minimal advertising, focused on authoritative sources, supporting search operators.
Search Operators
MCP Omnisearch supports powerful query operators and parameters:
- Domain filtering (site: and -site: for Brave & Kagi; API params for Tavily)
- File type filtering (filetype:)
- Title and URL filtering (intitle:, inurl:)
- Date filtering (before:, after:)
- Exact phrase matching ("phrase")
Example usage:
// Brave or Kagi with query string
{
"query": "filetype:pdf site:microsoft.com typescript guide"
}
// Tavily with API parameters
{
"query": "typescript guide",
"include_domains": ["microsoft.com"],
"exclude_domains": ["github.com"]
}
AI Response Tools
- Perplexity AI: Advanced response generation combining real-time web search with GPT-4 Omni and Claude 3.
- Kagi FastGPT: Quick AI-generated answers with citations.
Content Processing Tools
- Jina AI Reader: Clean content extraction with image captioning and PDF support.
- Kagi Universal Summarizer: Summarizes pages, videos, and podcasts.
- Tavily Extract: Raw content extraction from web pages with configurable depth.
- Firecrawl Scrape: Extracts LLM-ready data from URLs with enhanced formatting.
- Firecrawl Crawl: Deep crawling of accessible subpages with depth limits.
- Firecrawl Map: Fast URL collection for site mapping.
- Firecrawl Extract: Structured data extraction using AI.
- Firecrawl Actions: Page interactions before extraction for dynamic content.
Enhancement Tools
- Kagi Enrichment API: Provides supplementary content from specialized sources.
- Jina AI Grounding: Real-time fact verification against web knowledge.
Flexible API Key Requirements
MCP Omnisearch works with whichever API keys you have; you donโt need to provide keys for all providers. The server automatically detects available API keys and enables corresponding providers.
Configuration
Configure your MCP client with appropriate commands, environment variables, and API keys.
Environment Variables
TAVILY_API_KEY
: Tavily SearchPERPLEXITY_API_KEY
: Perplexity AIKAGI_API_KEY
: Kagi servicesJINA_AI_API_KEY
: Jina AI servicesBRAVE_API_KEY
: Brave SearchFIRECRAWL_API_KEY
: Firecrawl services
Add only the keys for providers you intend to use.
API Overview
Search Tools
-
search_tavily
Search using Tavily API for factual content.
Parameters:query
(string)
Example:{ "query": "latest developments in quantum computing" }
-
search_brave
Privacy-focused search with technical content coverage.
Parameters:query
(string)
Example:{ "query": "rust programming language features" }
-
search_kagi
Authoritative search results with minimal ads.
Parameters:query
(string),language
(optional),no_cache
(optional)
Example:{ "query": "latest research in machine learning", "language": "en" }
AI Response Tools
-
ai_perplexity
AI response with real-time web search.
Parameters:query
(string)
Example:{ "query": "Explain the differences between REST and GraphQL" }
-
ai_kagi_fastgpt
Quick AI answers with citations.
Parameters:query
(string)
Example:{ "query": "What are the main features of TypeScript?" }
Content Processing Tools
-
process_jina_reader
Extracts clean, LLM-friendly text from URLs.
Parameters:url
(string)
Example:{ "url": "https://example.com/article" }
-
process_kagi_summarizer
Summarizes content from URLs.
Parameters:url
(string)
Example:{ "url": "https://example.com/long-article" }
-
process_tavily_extract
Extract raw content from one or multiple web pages.
Parameters:url
(string|string[]),extract_depth
(optional: 'basic' or 'advanced')
Example:{ "url": [ "https://example.com/article1", "https://example.com/article2" ], "extract_depth": "advanced" }
-
firecrawl_scrape_process
LLM-ready clean content extraction from URLs.
Parameters:url
,extract_depth
Example:{ "url": "https://example.com/article", "extract_depth": "basic" }
-
firecrawl_crawl_process
Deep crawl site subpages.
Parameters:url
,extract_depth
Example:{ "url": "https://example.com", "extract_depth": "advanced" }
-
firecrawl_map_process
URL collection for site maps.
Parameters:url
,extract_depth
Example:{ "url": "https://example.com", "extract_depth": "basic" }
-
firecrawl_extract_process
Structured data extraction with AI prompts.
Parameters:url
,extract_depth
Example:{ "url": "https://example.com", "extract_depth": "basic" }
-
firecrawl_actions_process
Page interactions (click, scroll) before extraction.
Parameters:url
,extract_depth
Example:{ "url": "https://news.ycombinator.com", "extract_depth": "basic" }
Enhancement Tools
-
enhance_kagi_enrichment
Supplement content from specialized indexes.
Parameters:query
(string)
Example:{ "query": "emerging web technologies" }
-
enhance_jina_grounding
Fact verification against web knowledge.
Parameters:statement
(string)
Example:{ "statement": "TypeScript adds static typing to JavaScript" }
Development
Setup
Clone the repository and install dependencies:
pnpm install
pnpm run build
pnpm run dev
Publishing
Update version, build, and publish:
pnpm run build
pnpm publish
Troubleshooting
API Keys and Access
Each provider requires an API key. Some have specific requirements:
- Tavily: Developer portal key
- Perplexity: Developer program access
- Kagi: Business (Team) plan needed for some features
- Jina AI: API key required
- Brave: Developer portal key
- Firecrawl: Developer portal key
Rate Limits
Providers enforce rate limits; the server handles these gracefully with proper error messages.
Contributing
Contributions are welcome! Please submit a Pull Request.
License
MIT License - see the LICENSE file for details.
Acknowledgments
Built on:
- Model Context Protocol
- Tavily Search
- Perplexity AI
- Kagi Search
- Jina AI
- Brave Search
- Firecrawl