tavily_mcp_server_for_all_tools
Tavily Web Search MCP Server
Tavily 公式 Python SDK をベースに開発されたネット検索 MCP サービスです。標準の MCP Python SDK を使用し、Streamable HTTP 転送プロトコルを採用、FastAPI + uvicorn を通じて外部にサービスを提供します。
機能
サービスは 8 つの MCP ツールを提供し、Tavily 公式 SDK の主要機能をカバーしています:
ツール名 | 説明 | 基盤となる Tavily インターフェース |
| クエリキーワードに基づいてネット検索を実行し、タイトル、リンク、要約、関連性スコアを返し、オプションで要約回答を生成します |
|
| 指定した URL のウェブページを取得し、本文テキストコンテンツ(markdown / text)を返します |
|
| ルート URL からサイト全体をグラフ探索し、複数ページの本文を一括取得します。特定サイトのコンテンツを体系的に収集するのに適しています |
|
| サイト構造を走査し、ページ URL のみを発見して本文は取得しません。まずサイトの範囲を把握するのに適しています |
|
| 特定の質問に対して一文形式の回答を直接返します |
|
| LLM / RAG フローに直接渡すのに適した圧縮済み検索コンテキストを返します(自動でトークン上限と切り詰めを行います) |
|
| ディープリサーチタスクを送信します(Tavily が自動で複数回検索 + 総合レポートを生成)。タスクは非同期で実行され、 |
|
|
|
|
deep_research_start/deep_research_resultに対応するリサーチタスクは Tavily サーバー側で非同期に実行され、数分かかる場合があります。まずdeep_research_startを呼び出してrequest_idを取得し、その後deep_research_resultでstatusがcompleted(またはfailed)になるまでポーリングしてください。
Related MCP server: tavily-pool-mcp
ディレクトリ構成
tavily-mcp-server/
├── app/
│ ├── config.py # 环境变量配置加载(.env)
│ ├── tavily_tools.py # TavilyToolkit:封装 web_search / web_fetch
│ ├── server.py # FastMCP 实例与工具注册
│ └── main.py # FastAPI 应用 + uvicorn 入口,挂载 Streamable HTTP
├── client/
│ └── test_client.py # 本地测试客户端(连接 MCP 服务并调用工具)
├── deploy/
│ ├── deploy.sh # 一键同步 + 部署到远程服务器
│ └── tavily-mcp.service # systemd 服务单元
├── requirements.txt
├── .env.example
└── .gitignore環境要件
Python 3.12(ローカルは conda 環境
llm_factory_envsで開発、リモートサーバーはllm_envを使用)Tavily API Key(app.tavily.com で申請)
ローカル開発とテスト
1. 環境変数の準備
cp .env.example .env
# 编辑 .env,填入 TAVILY_API_KEY;本地测试保持 MCP_HOST=127.0.0.12. 依存関係のインストール(conda 環境 llm_factory_envs)
conda activate llm_factory_envs
pip install -r requirements.txt3. MCP サービスの起動
python -m app.main
# 服务启动后监听 http://127.0.0.1:20260/mcp
# 健康检查: curl http://127.0.0.1:20260/health4. テストクライアントでの検証
別のターミナルを開きます:
conda activate llm_factory_envs
python -m client.test_client --url http://127.0.0.1:20260/mcpテストクライアントは順に:サービスへ接続 → 利用可能なツールを一覧表示 → web_search / web_fetch / web_crawl / web_map / qna_search / search_context を呼び出し、結果を出力します。
ディープリサーチタスクは時間がかかるため(数分の可能性あり)、デフォルトではテストしません。deep_research_start / deep_research_result も合わせて検証する場合:
python -m client.test_client --url http://127.0.0.1:20260/mcp --deep-research
# 也可自定义研究任务描述:
python -m client.test_client --url http://127.0.0.1:20260/mcp --deep-research "近期国产大模型有哪些重要发布"このモードではタスク送信後、10 秒ごとに deep_research_result をポーリングし、ステータスが completed / failed になるまで続けます。
リモートサーバーへのデプロイ
リモートサーバー情報:101.47.67.15、SSH(パスワードなしログイン設定済み)でデプロイし、リモートの conda 環境 llm_env を使用、サービスポートは固定で 20260 です。
1. リモート .env の設定
ローカルの .env で MCP_HOST を 0.0.0.0(公網向けリスニング)に変更し、MCP_PORT は 20260 のままにします。その後デプロイスクリプトを実行すると、scp で .env が自動的に同期されます(リモートとローカルで異なるキーを使用する場合は、リモートで直接 /opt/tavily-mcp-server/.env を手動管理できます)。
2. ワンクリックデプロイ
bash deploy/deploy.shこのスクリプトは以下を実行します:
rsyncでプロジェクトファイルをroot@101.47.67.15:/opt/tavily-mcp-serverに同期(.git、__pycache__などを除外).envを同期(ローカルに存在する場合)リモートの
llm_env環境に依存関係をインストールsystemdサービスをインストール/更新して再起動
3. サーバーファイアウォール / セキュリティグループ
クラウド事業者コンソールのセキュリティグループルールで TCP 20260 ポートが開放されていることを確認してください(deploy.sh はクラウドのセキュリティグループを自動変更しないため、事業者コンソールで手動開放が必要です)。サーバー本体で firewalld/ufw を有効にしている場合も、このポートを開放する必要があります。例:
# firewalld
ssh root@101.47.67.15 "firewall-cmd --permanent --add-port=20260/tcp && firewall-cmd --reload"4. リモートデプロイの検証
curl http://101.47.67.15:20260/health
python -m client.test_client --url http://101.47.67.15:20260/mcpよく使う運用コマンド
ssh root@101.47.67.15 "systemctl status tavily-mcp.service --no-pager"
ssh root@101.47.67.15 "journalctl -u tavily-mcp.service -f"
ssh root@101.47.67.15 "systemctl restart tavily-mcp.service"MCP クライアント設定
デプロイ完了後、Streamable HTTP をサポートする任意の MCP クライアントで、以下の JSON 設定により本サービスに接続できます:
{
"mcpServers": {
"tavily-web-search": {
"type": "streamable_http",
"url": "http://101.47.67.15:20260/mcp"
}
}
}ローカルでの結合テストを行う場合は、url を http://127.0.0.1:20260/mcp に置き換えてください。
環境変数の説明
変数名 | 説明 | デフォルト値 |
| Tavily 公式 API Key(必須) | なし |
| サービスがリッスンするアドレス |
|
| サービスがリッスンするポート |
|
| MCP Server 名 |
|
| Streamable HTTP のマウントパス |
|
| ステートレス HTTP モードかどうか |
|
| JSON レスポンスを強制するかどうか(SSE ストリームではなく) |
|
| Tavily search/extract/qna/context/research などのインターフェース呼び出しのタイムアウト(秒) |
|
| Tavily crawl/map インターフェース呼び出しのタイムアウト(秒)。サイト走査は通常より時間がかかります |
|
| ログレベル |
|
セキュリティに関する注意
.envファイルは.gitignoreで除外済みです。GitHub リポジトリにコミットしないでください。コードにキーをハードコードしないでください。すべての機密情報は環境変数から注入されます(
python-dotenvによる動的読み込み)。コードをコミットする前に、
git statusに.envやその他のキーを含むファイルが含まれていないことを再度確認してください。
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for Firecrawl — web search, scraping, and biomedical/arXiv paper search.
AI Reasoning Cache & Consensus Layer with 11 MCP tools via Streamable HTTP.
Related MCP Servers
- FlicenseAqualityDmaintenanceEnables web search capabilities through the Tavily API and serves as a demonstration platform for building custom MCP tools. Designed for educational purposes to showcase MCP server development and LangGraph integration.6-
- AlicenseBqualityDmaintenanceA local MCP server that exposes Tavily search as a tool and rotates across multiple API keys for reliability.1MIT
- AlicenseAqualityCmaintenanceMCP server for web page fetching (converting to Markdown/text with automatic fallback between Tavily and Firecrawl) and web search via Tavily.2MIT
- AlicenseBqualityDmaintenanceMCP server providing search, extract, map, and crawl tools powered by Tavily for real-time web data access.421 npmMIT