Web_Search_MCP について
Web_Search_MCP は、Tavily API を使って AI システムやアプリにウェブ検索を提供する MCP サーバーです。単一のツールから、ページ内容や URL、関連度を含む構造化結果を返します。
主な機能
- 01Tavily API によるウェブ検索
- 02内容、URL、関連度スコアの返却
- 03JSON 形式での結果出力
- 04複数リクエストの非同期処理
活用シーン
- 01LLM 向けの最新ウェブ検索結果の取得
- 02検索結果のページ内容とリンクの確認
MCP 対応
MCP クライアントに `search_web` ツールを公開し、検索クエリを受け取って JSON 形式のウェブ検索結果を返します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Web_Search_MCP
Web 検索ツールを備えた MCP(Model Context Protocol)サーバー
このプロジェクトでは、Tavily API を使用して Web 検索ツールを作成し、MCP(Model Context Protocol)と統合して、AI システムとシームレスに連携する方法を紹介します。これにより、言語モデルやアプリケーションにリアルタイムの Web 検索機能を提供できます。
概要
Web_Search_MCP プロジェクトでは、次の主要なコンポーネントを活用しています。
- Tavily API: 回答、未加工のコンテンツ、関連するメタデータなど、リアルタイムで包括的な Web 検索結果を提供する強力な検索 API です。
- FastMCP: FastMCP クラスは Python の型ヒントと docstring を使用してツール定義を自動生成するため、MCP ツールを簡単に作成・保守できます。
- Langchain: 具体的には、Langchain の
TavilySearchResultsツールを使用して、Tavily API と効率的に連携します。 - Dotenv:
.envファイルから環境変数を読み込み、API キーなどの機密情報を安全に管理するライブラリです。 - uv: このプロジェクトの管理と実行に使用する、高速な Python パッケージインストーラー兼リゾルバーです。
機能
このプロジェクトの中核となるのは search_web ツールで、次の機能を提供します。
- Web 検索: 検索クエリを入力として受け取り、Tavily API を使用して Web から関連する検索結果を取得します。
- 詳細な結果: 検索結果から、Web サイトのコンテンツ、URL、関連性スコア、コンテンツの種類、直接的な回答(利用可能な場合)などの詳細情報を提供します。
- 整形された出力: 検索結果を構造化された JSON 形式で返します。出力には、ステータス表示(
successまたはerror)、(成功した場合の)結果の配列、タイムスタンプが含まれます。 - エラー処理: 検索中のエラーを適切に処理し、情報を含むエラーメッセージを JSON 形式で返します。
- 非同期処理:検索ツールは非同期処理に基づいているため、多数のリクエストを同時に処理できます。
前提条件
プロジェクトを実行する前に、次のものがあることを確認してください。
- Python 3.8+: Python 3.8 以降がシステムにインストールされていること。
- Tavily API キー: Tavily の Web サイトで登録すると取得できる、有効な Tavily API キー。
- uv: Python 用の uv パッケージマネージャー。次のコマンドでインストールできます。
pip install uv
インストール
- プロジェクトディレクトリの作成: プロジェクト用のディレクトリを作成し、そのディレクトリに移動します。
*** 上記のコードを実行すると、uv によってディレクトリ内にuv init Web_Search_MCPpyproject.tomlと.venvが作成されます *** - プロジェクトファイルの作成:
Web_Search_MCPディレクトリにmain.pyと.envファイルを作成します。 - Venv の有効化: .venv/Scripts/activate に移動し、仮想環境を有効化します。
- コードのコピー:
main.pyと.envのコードを、作成したファイルにコピーします。 - 依存関係のインストール:
uvを使用して、必要な Python パッケージをインストールします。uv add "mcp[cli]" python-dotenv langchain-community tavily-python
設定
-
.envファイル:Web_Search_MCPディレクトリに.envという名前のファイルを作成します。- 次の形式で、Tavily API キーを
.envファイルに追加します。TAVILY_API_KEY='your_tavily_api_key'your_tavily_api_keyを実際の Tavily API キーに置き換えます。
-
claude_desktop_config.json:- このファイルは、Claude デスクトップアプリケーション(使用している場合)が FastMCP サーバーを検出して実行するために使用されます。
c:\Users\<Your User Name>\AppData\Roaming\Claude\claude_desktop_config.jsonに配置します。claude_desktop_config.json内のWeb_Search_MCPディレクトリへのパスが正しいことを確認してください。プロジェクトがpath/Web_Search_MCPにない場合は、設定ファイルのargsフィールドを変更してください。
{ "mcpServers": { "Mcp_Demo": { "command": "uv", "args": [ "--directory", "path/Web_Search_MCP", "run", "main.py" ] } } }
MCP サーバーの実行
claude_desktop_config.json ファイルを設定した後、Claude デスクトップアプリケーションからサーバーを起動できます。
使用方法
サーバーが起動すると、Model Context Protocol に従って search_web という単一のツールが公開されます。
- ツール名:
search_web - 入力:
query(str):ウェブに送信する検索クエリです。
- 出力: 検索結果を含む JSON 形式の文字列です。
JSON レスポンスの例(成功時):
{
"status": "success",
"results": [
{
"title": "...",
"url": "...",
"content": "text",
"score": 0.9,
"raw_content": "..."
},
{
"title": "...",
"url": "...",
"content": "text",
"score": 0.9,
"raw_content": "..."
}
],
"timestamp": 1708849844.064655
}
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。