Tavily-Anet-MCP Server について
Tavily-Anet-MCP Server は、最新のウェブ情報を必要とする AI エージェントや調査システム向けの Rust 製 MCP サーバーです。NATS 経由で Tavily 検索と URL のコンテンツ抽出を提供します。
主な機能
- 01Tavily ウェブ検索
- 02URL からのコンテンツ抽出
- 03ドメインと期間による絞り込み
- 04検索トピックと深度の指定
- 05NATS メッセージ転送
- 06JSON-RPC 2.0 互換 API
活用シーン
- 01AI エージェント向けの最新情報の検索
- 02指定期間内のニュース検索
- 03複数 URL からのページ内容の取得
MCP 対応
MCP クライアント向けに Tavily 検索と URL 抽出のツールを公開します。リクエストは NATS 経由で送られ、JSON-RPC 2.0 互換 API を使用します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Tavily-Anet-MCP サーバー
標準化されたプロトコルを通じて、Tavily の検索機能とコンテンツ抽出機能を提供する Model Control Protocol (MCP) サーバーの Rust 実装です。
このサーバーは、強力な Tavily API と Anet MCP フレームワークを統合し、AI エージェントがウェブ検索や URL からのコンテンツ抽出を実行できるようにします。最新のウェブ情報を必要とする AI エージェントシステム、LLM ベースのツール、リサーチの自動化を構築する開発者向けに設計されています。
機能
- ✅ 包括的なパラメーターを備えた Tavily 検索の統合
- 📄 URL からコンテンツを取得する Tavily Extract
- 🔄 メッセージ転送用の NATS トランスポート層
- 🛠️ JSON-RPC 2.0 互換 API
- ⚡ Tokio による非同期リクエスト処理
- 🔍 ドメインフィルタリング、時間範囲、トピック選択などの高度な検索機能
要件
- Rust 1.70 以降
- ローカルで実行中、またはネットワーク経由でアクセス可能な NATS サーバー
- Tavily API キー(Tavily のウェブサイトから取得してください)
インストール
リポジトリをクローンして、サーバーをビルドします。
git clone https://github.com/yourusername/tavily-anet-mcp.git
cd tavily-anet-mcp
.env ファイルに Tavily API キーを追加します。
TAVILY_API_KEY=your_api_key_here
NATS_URL=nats://localhost:4222
MCP_SUBJECT=mcp.requests
はじめに
サーバーの実行
# Start a NATS server in another terminal or ensure one is already running
# Example:
nats-server
# Run the Tavily MCP server
cargo run
サーバーのテスト
付属のテストクライアントを使用して、サーバーをテストできます。
cargo run --example test_client
これにより、サーバーにさまざまなリクエスト(initialize、listTools、search、extract)が送信され、レスポンスが出力されます。
利用可能なツール
1. Tavily Search
Tavily の AI 検索エンジンを使用して、包括的でリアルタイムな検索結果を提供する強力なウェブ検索ツールです。
パラメーター:
query(必須):検索クエリ文字列search_depth:「basic」または「advanced」(デフォルト:「basic」)topic:「general」または「news」(デフォルト:「general」)days:結果の対象とする過去の日数(news トピックの場合)time_range:「day」、「week」、「month」、「year」max_results:5~20(デフォルト:10)include_images:ブール値include_raw_content:ブール値include_domains:含めるドメインの配列exclude_domains:除外するドメインの配列
例:
{
"name": "tavily-search",
"arguments": {
"query": "Latest developments in AI",
"max_results": 5,
"topic": "news",
"days": 7
}
}
2. Tavily Extract
ウェブページから生のコンテンツを抽出するツールです。
パラメーター:
urls(必須):コンテンツを抽出する URL の配列extract_depth:「basic」または「advanced」(デフォルト:「basic」)include_images:ブール値(デフォルト:false)
例:
{
"name": "tavily-extract",
"arguments": {
"urls": ["https://www.rust-lang.org/"],
"extract_depth": "advanced",
"include_images": true
}
}
アーキテクチャ
サーバーはモジュール設計を採用しています。
- tools – Tavily Search と Extract の実装
- models – Tavily API のレスポンス構造
- utils – フォーマット処理とヘルパー関数
- transport – NATS メッセージトランスポート層
開発
新機能の追加
Tavily の機能を追加してサーバーを拡張するには、次の手順に従ってください。
src/models/tavily.rsにレスポンス構造を定義します- Tool トレイトに従って、
src/tools/にツールを実装します src/utils/formatter.rsにフォーマット関数を追加しますsrc/main.rsにツールを登録します
トラブルシューティング
- Tavily API キーが有効で、環境変数に正しく設定されていることを確認してください
- NATS サーバーが実行中で、アクセス可能であることを確認してください
- リクエスト形式が、各ツールで想定される入力スキーマに合っていることを確認してください
ライセンス
MIT License
謝辞
このプロジェクトは、Anet MCP Server フレームワークを基盤とし、Tavily API と統合しています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。