Tavily MCP サーバー
Tavilyの検索APIを活用したAIベースのウェブ検索機能を提供するモデルコンテキストプロトコル(CMP)サーバー。このサーバーにより、LLMは高度なウェブ検索を実行し、質問への直接的な回答を得たり、AIによって抽出された関連コンテンツを含む最近のニュース記事を検索したりすることが可能になります。
特徴
利用可能なツール
tavily_web_search- AI を活用したコンテンツ抽出により包括的な Web 検索を実行します。query(文字列、必須): 検索クエリmax_results(整数、オプション): 返される結果の最大数 (デフォルト: 5、最大: 20)search_depth(文字列、オプション): 「basic」または「advanced」の検索深度(デフォルト: 「basic」)include_domains(リストまたは文字列、オプション): 結果に具体的に含めるドメインのリストexclude_domains(リストまたは文字列、オプション): 結果から除外するドメインのリスト
tavily_answer_search- Web 検索を実行し、裏付けとなる証拠とともに直接的な回答を生成します。query(文字列、必須): 検索クエリmax_results(整数、オプション): 返される結果の最大数 (デフォルト: 5、最大: 20)search_depth(文字列、オプション): 「基本」または「詳細」の検索深度(デフォルト: 「詳細」)include_domains(リストまたは文字列、オプション): 結果に具体的に含めるドメインのリストexclude_domains(リストまたは文字列、オプション): 結果から除外するドメインのリスト
tavily_news_search- 公開日で最近のニュース記事を検索します。query(文字列、必須): 検索クエリmax_results(整数、オプション): 返される結果の最大数 (デフォルト: 5、最大: 20)days(整数、オプション):検索までの日数(デフォルト:3)include_domains(リストまたは文字列、オプション): 結果に具体的に含めるドメインのリストexclude_domains(リストまたは文字列、オプション): 結果から除外するドメインのリスト
プロンプト
サーバーは、各検索タイプに対してプロンプト テンプレートも提供します。
tavily_web_search - TavilyのAI搭載検索エンジンを使用してウェブを検索します
tavily_answer_search - ウェブを検索し、裏付けとなる証拠とともに AI が生成した回答を取得します
tavily_news_search - Tavilyのニュース検索で最近のニュース記事を検索
Related MCP server: Tavily MCP Server
前提条件
Python 3.11以降
Tavily API キー ( Tavily の Web サイトから取得)
uvPython パッケージ マネージャー (推奨)
インストール
オプション1: pipまたはuvを使用する
# With pip
pip install mcp-tavily
# Or with uv (recommended)
uv add mcp-tavily次のような出力が表示されます。
Resolved packages: mcp-tavily, mcp, pydantic, python-dotenv, tavily-python [...]
Successfully installed mcp-tavily-0.1.4 mcp-1.0.0 [...]オプション2: ソースから
# Clone the repository
git clone https://github.com/RamXX/mcp-tavily.git
cd mcp-tavily
# Create a virtual environment (optional but recommended)
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install dependencies and build
uv sync # Or: pip install -r requirements.txt
uv build # Or: pip install -e .
# To install with test dependencies:
uv sync --dev # Or: pip install -r requirements-dev.txtインストール中に、パッケージがビルドされ、依存関係とともにインストールされるのを確認できます。
VS Codeでの使用
素早くインストールするには、以下のワンクリック インストール ボタンのいずれかを使用します。
手動でインストールする場合は、VS Code のユーザー設定 (JSON) ファイルに次の JSON ブロックを追加します。Ctrl Ctrl + Shift + Pを押してPreferences: Open User Settings (JSON)と入力すると、このブロックを追加できます。
オプションとして、ワークスペース内の.vscode/mcp.jsonというファイルに追加することもできます。これにより、他のユーザーと設定を共有できるようになります。
.vscode/mcp.jsonファイルではmcpキーは必要ないことに注意してください。
{
"mcp": {
"inputs": [
{
"type": "promptString",
"id": "apiKey",
"description": "Tavily API Key",
"password": true
}
],
"servers": {
"tavily": {
"command": "uvx",
"args": ["mcp-tavily"],
"env": {
"TAVILY_API_KEY": "${input:apiKey}"
}
}
}
}
}構成
APIキーの設定
サーバーには Tavily API キーが必要です。これは次の 3 つの方法で提供できます。
プロジェクト ディレクトリ内の
.envファイルを通じて:TAVILY_API_KEY=your_api_key_here環境変数として:
export TAVILY_API_KEY=your_api_key_hereコマンドライン引数として:
python -m mcp_server_tavily --api-key=your_api_key_here
Claude.app 用に設定する
Claude 設定に追加:
"mcpServers": {
"tavily": {
"command": "python",
"args": ["-m", "mcp_server_tavily"]
},
"env": {
"TAVILY_API_KEY": "your_api_key_here"
}
}問題が発生した場合、Pythonインタープリターへのフルパスを指定する必要があるかもしれません。正確なパスを確認するには、 which pythonを実行してください。
使用例
通常のウェブ検索の場合:
Tell me about Anthropic's newly released MCP protocolドメイン フィルタリングを使用してレポートを生成するには:
Tell me about redwood trees. Please use MLA format in markdown syntax and include the URLs in the citations. Exclude Wikipedia sources.直接回答を得るために回答検索モードを使用するには:
I want a concrete answer backed by current web sources: What is the average lifespan of redwood trees?ニュース検索:
Give me the top 10 AI-related news in the last 5 daysテスト
このプロジェクトには包括的なテストスイートが含まれています。テストを実行するには、以下の手順に従ってください。
テストの依存関係をインストールします。
source .venv/bin/activate # If using a virtual environment uv sync --dev # Or: pip install -r requirements-dev.txtテストを実行します。
./tests/run_tests.sh
次のような出力が表示されます。
======================================================= test session starts ========================================================
platform darwin -- Python 3.13.3, pytest-8.3.5, pluggy-1.5.0
rootdir: /Users/ramirosalas/workspace/mcp-tavily
configfile: pyproject.toml
plugins: cov-6.0.0, asyncio-0.25.3, anyio-4.8.0, mock-3.14.0
asyncio: mode=Mode.STRICT, asyncio_default_fixture_loop_scope=function
collected 50 items
tests/test_docker.py .. [ 4%]
tests/test_integration.py ..... [ 14%]
tests/test_models.py ................. [ 48%]
tests/test_server_api.py ..................... [ 90%]
tests/test_utils.py ..... [100%]
---------- coverage: platform darwin, python 3.13.3-final-0 ----------
Name Stmts Miss Cover
-------------------------------------------------------
src/mcp_server_tavily/__init__.py 16 2 88%
src/mcp_server_tavily/__main__.py 2 2 0%
src/mcp_server_tavily/server.py 149 16 89%
-------------------------------------------------------
TOTAL 167 20 88%テストスイートには、データモデル、ユーティリティ関数、統合テスト、エラー処理、パラメータ検証のテストが含まれています。ドメインフィルターや様々な入力形式の処理を含め、すべてのAPI機能が正しく動作することを確認することに重点を置いています。
ドッカー
Docker イメージをビルドします。
make docker-buildあるいは、Docker で直接ビルドします。
docker build -t mcp_tavily .デタッチされた Docker コンテナを実行します (デフォルト名はmcp_tavily_container 、ポートは 8000 → 8000)。
make docker-runまたは手動で:
docker run -d --name mcp_tavily_container \
-e TAVILY_API_KEY=your_api_key_here \
-p 8000:8000 mcp_tavilyコンテナを停止して削除します。
make docker-stopコンテナのログを追跡します:
make docker-logs環境変数を設定することでデフォルトを上書きできます。
DOCKER_IMAGE: イメージ名(デフォルトは
mcp_tavily)DOCKER_CONTAINER: コンテナ名(デフォルトは
mcp_tavily_container)HOST_PORT: バインドするホストポート(デフォルトは
8000)CONTAINER_PORT: コンテナポート(デフォルト
8000)
デバッグ
MCP インスペクタを使用してサーバーをデバッグできます。
# Using npx
npx @modelcontextprotocol/inspector python -m mcp_server_tavily
# For development
cd path/to/mcp-tavily
npx @modelcontextprotocol/inspector python -m mcp_server_tavily貢献
mcp-tavily の改善に向けた貢献を歓迎します。ご協力いただける方法は次のとおりです:
リポジトリをフォークする
機能ブランチを作成する (
git checkout -b feature/amazing-feature)変更を加える
テストを実行して合格することを確認する
変更をコミットします(
git commit -m 'Add amazing feature')ブランチにプッシュする (
git push origin feature/amazing-feature)プルリクエストを開く
他の MCP サーバーと実装パターンの例については、https: //github.com/modelcontextprotocol/serversを参照してください。
ライセンス
mcp-tavily は MIT ライセンスに基づきます。詳細はLICENSEファイルをご覧ください。