mcp-omnisearch
複数の検索プロバイダーとAIツールへの統合アクセスを提供するモデルコンテキストプロトコル(MCP)サーバー。Tavily、Perplexity、Kagi、Jina AI、Brave、Firecrawlの機能を統合し、包括的な検索、AIレスポンス、コンテンツ処理、拡張機能を単一のインターフェースで提供します。
特徴
🔍 検索ツール
Tavily Search :強力な引用サポートを備え、事実情報に最適化されています。APIパラメータ(include_domains/exclude_domains)によるドメインフィルタリングをサポートします。
Brave Search :プライバシーを重視し、幅広い技術コンテンツを網羅した検索機能。検索演算子(site:、-site:、filetype:、intitle:、inurl:、before:、after:、exact phrases)をネイティブサポート。
Kagi Search :広告の影響を最小限に抑え、信頼性の高い情報源に重点を置いた高品質な検索結果を提供します。クエリ文字列での検索演算子(site:、-site:、filetype:、intitle:、inurl:、before:、after:、完全一致フレーズ)をサポートします。
🎯 検索演算子
MCP Omnisearch は、演算子とパラメータを通じて強力な検索機能を提供します。
一般的な検索機能
ドメインフィルタリング: すべてのプロバイダーで利用可能
Tavily: APIパラメータ(include_domains/exclude_domains)を通じて
Brave & Kagi: site: と -site: 演算子を通じて
ファイルタイプのフィルタリング: Brave と Kagi で利用可能 (filetype:)
タイトルとURLフィルタリング:BraveとKagiで利用可能(intitle:、inurl:)
日付フィルタリング: Brave と Kagi で利用可能 (before:、after:)
完全フレーズ一致: Brave と Kagi で利用可能 (「フレーズ」)
使用例
プロバイダーの機能
Brave Search : クエリ文字列でのネイティブ演算子の完全サポート
Kagi Search : クエリ文字列での完全な演算子サポート
Tavily Search : APIパラメータによるドメインフィルタリング
🤖 AI対応ツール
Perplexity AI : リアルタイムウェブ検索とGPT-4 Omni、Claude 3を組み合わせた高度な応答生成
Kagi FastGPT : 引用付きの AI 生成の迅速な回答 (通常応答時間は 900 ミリ秒)
📄 コンテンツ処理ツール
Jina AI Reader :画像キャプションとPDFサポートによるクリーンなコンテンツ抽出
Kagi Universal Summarizer :ページ、ビデオ、ポッドキャストのコンテンツ要約
Tavily Extract :単一または複数のウェブページから、設定可能な抽出深度(「基本」または「詳細」)で生のコンテンツを抽出します。単語数や抽出統計などのメタデータとともに、結合コンテンツと個々のURLコンテンツの両方を返します。
Firecrawl Scrape : 強化されたフォーマットオプションを使用して、単一の URL からクリーンで LLM 対応のデータを抽出します。
Firecrawl クロール: 設定可能な深度制限を使用して、ウェブサイト上のアクセス可能なすべてのサブページをディープクロールします。
Firecrawl Map : ウェブサイトから URL を高速収集し、包括的なサイト マッピングを実現します
Firecrawl Extract : 自然言語プロンプトを使用した AI による構造化データ抽出
Firecrawl アクション: 動的コンテンツの抽出前のページ操作 (クリック、スクロールなど) のサポート
🔄 強化ツール
Kagi Enrichment API : 専門インデックス (Teclis、TinyGem) からの補足コンテンツ
Jina AI Grounding :Web知識に基づくリアルタイムの事実検証
Related MCP server: MCP2Tavily
柔軟なAPIキー要件
MCP Omnisearchは、利用可能なAPIキーで動作するように設計されています。すべてのプロバイダーのAPIキーを用意する必要はありません。サーバーが利用可能なAPIキーを自動的に検出し、それらのプロバイダーのみを有効にします。
例えば:
TavilyとPerplexityのAPIキーのみをお持ちの場合は、それらのプロバイダーのみが利用可能になります。
Kagi APIキーをお持ちでない場合、Kagiベースのサービスは利用できませんが、他のすべてのプロバイダーは正常に動作します。
サーバーは、設定したAPIキーに基づいて利用可能なプロバイダーを記録します。
この柔軟性により、1 つまたは 2 つのプロバイダーから簡単に開始し、必要に応じてさらに追加することができます。
構成
このサーバーはMCPクライアント経由で設定する必要があります。以下に、様々な環境における設定例を示します。
傾斜構成
Cline MCP 設定に以下を追加します:
WSL 構成の Claude デスクトップ
WSL 環境の場合は、Claude Desktop 構成に以下を追加します。
環境変数
サーバーは各プロバイダーのAPIキーを使用します。すべてのプロバイダーのキーは必要ありません。利用可能なAPIキーに対応するプロバイダーのみが有効化されます。
TAVILY_API_KEY: Tavily Search用PERPLEXITY_API_KEY: Perplexity AI用KAGI_API_KEY: Kagi サービス (FastGPT、Summarizer、Enrichment) 用JINA_AI_API_KEY: Jina AIサービス(Reader、Grounding)用BRAVE_API_KEY: Brave Search用FIRECRAWL_API_KEY: Firecrawl サービス (スクレイプ、クロール、マップ、抽出、アクション) 用
まずは1つか2つのAPIキーから始めて、必要に応じて後から追加できます。サーバーは起動時に利用可能なプロバイダーを記録します。
API
サーバーは、カテゴリ別に整理された MCP ツールを実装します。
検索ツール
search_tavily
Tavily Search APIを使ってウェブを検索します。信頼できる情報源や引用を必要とする事実検索に最適です。
パラメータ:
query(文字列、必須): 検索クエリ
例:
検索_勇敢
技術的なトピックを幅広くカバーした、プライバシー重視の Web 検索。
パラメータ:
query(文字列、必須): 検索クエリ
例:
検索カギ
広告の影響を最小限に抑えた高品質な検索結果。信頼できる情報源や研究資料を見つけるのに最適です。
パラメータ:
query(文字列、必須): 検索クエリlanguage(文字列、オプション): 言語フィルター (例: "en")no_cache(ブール値、オプション): 最新の結果を得るためにキャッシュをバイパスする
例:
AI対応ツール
ai_perplexity
リアルタイムの Web 検索統合による AI を活用した応答生成。
パラメータ:
query(文字列、必須): AI 応答の質問またはトピック
例:
ai_kagi_fastgpt
引用付きの AI 生成の迅速な回答。
パラメータ:
query(文字列、必須): 迅速な AI 応答を求める質問
例:
コンテンツ処理ツール
プロセス_jina_reader
URL を、画像キャプション付きのクリーンな LLM 対応テキストに変換します。
パラメータ:
url(文字列、必須): 処理するURL
例:
プロセスカギサマライザー
URL からコンテンツを要約します。
パラメータ:
url(文字列、必須): 要約するURL
例:
プロセス_tavily_extract
Tavily Extract を使用して、Web ページから生のコンテンツを抽出します。
パラメータ:
url(文字列 | 文字列[], 必須): コンテンツを抽出する単一のURLまたはURLの配列extract_depth(文字列、オプション): 抽出の深さ - 'basic' (デフォルト) または 'advanced'
例:
回答には以下が含まれます:
すべての URL の結合されたコンテンツ
各 URL の個別の生のコンテンツ
単語数、成功した抽出、失敗した URL を含むメタデータ
firecrawl_scrape_process
強化されたフォーマット オプションを使用して、単一の URL からクリーンな LLM 対応データを抽出します。
パラメータ:
url(文字列 | 文字列[], 必須): コンテンツを抽出する単一のURLまたはURLの配列extract_depth(文字列、オプション): 抽出の深さ - 'basic' (デフォルト) または 'advanced'
例:
回答には以下が含まれます:
クリーンなマークダウン形式のコンテンツ
タイトル、単語数、抽出統計などのメタデータ
firecrawl_crawl_process
設定可能な深度制限を使用して、Web サイト上のアクセス可能なすべてのサブページをディープ クロールします。
パラメータ:
url(文字列 | 文字列[], 必須): クロールの開始URLextract_depth(文字列、オプション): 抽出深度 - 'basic' (デフォルト) または 'advanced' (クロール深度と制限を制御)
例:
回答には以下が含まれます:
クロールされたすべてのページの結合されたコンテンツ
各ページの個別のコンテンツ
タイトル、単語数、クロール統計などのメタデータ
firecrawl_map_process
包括的なサイト マッピングのために、Web サイトから URL を高速に収集します。
パラメータ:
url(文字列 | 文字列[], 必須): マップするURLextract_depth(文字列、オプション): 抽出深度 - 'basic' (デフォルト) または 'advanced' (マップ深度を制御)
例:
回答には以下が含まれます:
検出されたすべてのURLのリスト
サイトのタイトルやURL数などのメタデータ
firecrawl_extract_process
自然言語プロンプトを使用した AI による構造化データ抽出。
パラメータ:
url(文字列 | 文字列[], 必須): 構造化データを抽出するURLextract_depth(文字列、オプション): 抽出の深さ - 'basic' (デフォルト) または 'advanced'
例:
回答には以下が含まれます:
ページから抽出された構造化データ
タイトル、抽出統計などのメタデータ
firecrawl_actions_process
動的コンテンツの抽出前のページ操作 (クリック、スクロールなど) をサポートします。
パラメータ:
url(文字列 | 文字列[], 必須): 対話してコンテンツを抽出するためのURLextract_depth(文字列、オプション): 抽出の深さ - 'basic' (デフォルト) または 'advanced' (インタラクションの複雑さを制御)
例:
回答には以下が含まれます:
インタラクション実行後に抽出されたコンテンツ
実行されたアクションの説明
ページのスクリーンショット(可能な場合)
タイトルや抽出統計などのメタデータ
強化ツール
鍵強化を強化する
専門のインデックスから補足コンテンツを取得します。
パラメータ:
query(文字列、必須): エンリッチメントのクエリ
例:
強化されたジナの接地
ウェブの知識に照らしてステートメントを検証します。
パラメータ:
statement(文字列、必須): 検証するステートメント
例:
発達
設定
リポジトリをクローンする
依存関係をインストールします:
プロジェクトをビルドします。
開発モードで実行:
出版
package.json のバージョンを更新する
プロジェクトをビルドします。
npm に公開:
トラブルシューティング
APIキーとアクセス
各プロバイダーには独自の API キーが必要であり、アクセス要件が異なる場合があります。
Tavily : 開発者ポータルからのAPIキーが必要
困惑:開発者プログラムを通じたAPIアクセス
Kagi : 一部の機能はビジネス(チーム)プランユーザーに限定されます
Jina AI : すべてのサービスにAPIキーが必要
Brave : 開発者ポータルからのAPIキー
Firecrawl : 開発者ポータルからAPIキーが必要
レート制限
各プロバイダーには独自のレート制限があります。サーバーはレート制限エラーを適切に処理し、適切なエラーメッセージを返します。
貢献
貢献を歓迎します!お気軽にプルリクエストを送信してください。
ライセンス
MIT ライセンス - 詳細についてはLICENSEファイルを参照してください。
謝辞
構築されたもの: