Tavily Search MCP Agent

by arben-adm
Verified
MIT License
1
  • Apple
  • Linux

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

🔍 My Tavily Search MCPエージェント

Tavily APIを活用した強力なモデルコンテキストプロトコル(MCP)サーバーを開発しました。これにより、ビジネス、ニュース、金融、政治など、高品質で信頼性の高い情報を、堅牢で開発者フレンドリーなインターフェースを通じて入手できるようになります。

🌟 Tavily Search MCPを構築した理由

今日のめまぐるしく変化するデジタル環境において、正確な情報に迅速にアクセスする必要があることに気づきました。そのため、シーケンシャルシンキングMCPサーバーと連携するウェブ検索ツールが必要でした。そこで、以下の優れた機能を備えたTavily Search MCPを開発しました。

⚡️ 超高速の非同期検索レスポンス
🛡️ 自動再試行機能を備えたフォールトトレランス機能を内蔵
🎯 クリーンなマークダウン形式の結果
🔍 スマートコンテンツスニペット
🛠️ 包括的なエラー処理
🖼️ オプションの画像結果
📰 専門ニュース検索

🚀 クイックスタート

Smithery経由でインストール

Smithery経由で Claude Desktop の Tavily Search を自動的にインストールするには:

npx -y @smithery/cli install mcp-tavily-search --client claude

手動でインストールする

私のプロジェクトを数分で開始する方法は次のとおりです。

# 1. Create environment uv venv && .venv\Scripts\activate # Windows # OR uv venv && source .venv/bin/activate # Unix/MacOS # 2. Install dependencies uv pip install -e . # 3. Set up configuration echo TAVILY_API_KEY=your-key-here > .env # 4. Start server cd mcp_tavily_search && uv run server.py

💡 コア機能

⚡️ パフォーマンスと信頼性

  • 非同期リクエスト処理を実装しました
  • 組み込みのエラー処理と自動再試行
  • 設定可能なリクエストタイムアウト
  • 包括的なログシステム

🎯 検索設定

  • 検索の深さを設定可能にしました(基本/詳細)
  • 調整可能な結果制限(1~20件)
  • クリーンなマークダウン形式の出力
  • ソース URL 付きのスニペット プレビュー
  • オプションの画像結果
  • 専門ニュース検索トピック

🛡️ エラー処理

  • API認証検証
  • レート制限検出
  • ネットワークエラー回復
  • リクエストタイムアウト管理

🛠️ 開発者統合

前提条件

クロードデスクトップセットアップ

Claude デスクトップ エクスペリエンスを次の構成で最適化しました。

{ "mcpServers": { "tavily-search": { "command": "uv", "args": [ "--directory", "/path/to/mcp-tavily-search/mcp_tavily_search", "run", "server.py" ], "env": { "TAVILY_API_KEY": "YOUR-API-KEY" } } } }

📁 構成パス:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Unix/MacOS: ~/.config/Claude/claude_desktop_config.json

プロジェクトアーキテクチャ

開発を簡単にするために、クリーンでモジュール化された構造を設計しました。

mcp-tavily-search/ ├── mcp_tavily_search/ # Core package │ ├── server.py # Server implementation │ ├── client.py # Tavily API client │ ├── test_server.py # Server tests │ ├── test_client.py # Client tests │ └── __init__.py # Package initialization ├── .env # Environment configuration ├── README.md # Documentation └── pyproject.toml # Project configuration

主要コンポーネント

サーバー (server.py)

  • MCPプロトコルを実装しました
  • リクエストの処理とルーティング
  • エラー回復とヘルスモニタリング

クライアント (client.py)

  • Tavily API統合
  • 指数バックオフによる再試行メカニズム
  • 結果のフォーマットと処理
  • エラー処理とログ記録

テスト (test_server.py と test_client.py)

  • サーバーとクライアントの両方に対する包括的なユニットテスト
  • 実装の信頼性と正確性を保証する

使用例

私が実装した拡張検索機能の使用方法の例をいくつか示します。

  1. 基本検索:
{ "name": "search", "arguments": { "query": "Latest news on artificial intelligence" } }
  1. 画像を使った高度な検索:
{ "name": "search", "arguments": { "query": "Elon Musk SpaceX achievements", "search_depth": "advanced", "include_images": true, "max_results": 10 } }
  1. ニュースに特化した検索:
{ "name": "search", "arguments": { "query": "Climate change impact on agriculture", "topic": "news", "max_results": 5 } }
  1. 生のコンテンツで検索:
{ "name": "search", "arguments": { "query": "Python programming best practices", "include_raw_content": true, "max_results": 3 } }

トラブルシューティングガイド

接続の問題

期待どおりに動作しない場合は、次の手順に従ってください。

  1. 設定パスを確認する
  2. Claude Desktop のログを確認します。
    # Windows type %APPDATA%\Claude\logs\latest.log # Unix/MacOS cat ~/.config/Claude/logs/latest.log
  3. クイックスタートコマンドを使用して手動でサーバーをテストする

API トラブルシューティング

API の問題が発生した場合:

  1. APIキーの権限を検証する
  2. ネットワーク接続を確認してください
  3. サーバーログでAPI応答を監視する

テストの実行

このプロジェクトの単体テストを実行するには、次の手順に従います。

  1. 開発依存関係をインストールします。
    uv pip install -e ".[dev]"
  2. pytest を使用してテストを実行します。
    pytest mcp_tavily_search

これにより、 test_client.pytest_server.py両方を含む、 mcp_tavily_searchディレクトリ内のすべてのテストが実行されます。

コミュニティとサポート

  • GitHubで問題を報告し、貢献することをお勧めします
  • 実装と改善を共有する
  • ディスカッションに参加して他の人を助けましょう

セキュリティとベストプラクティス

私の実装ではセキュリティが最優先事項です。サーバーには以下が含まれます。

  • 環境変数による安全な API キー処理
  • 自動リクエストタイムアウト管理
  • 包括的なエラー追跡とログ記録

ライセンス

このプロジェクトはMITライセンスです。詳細はLICENSEファイルをご覧ください。

謝辞

特に感謝したいのは、次の方々です。

  • 革新的なTavily APIチーム
  • MCPプロトコルコミュニティ
ID: p0w4whs3l4