tavily_mcp_server_for_all_tools
Tavily Web Search MCP Server
Веб-поисковый MCP-сервис, разработанный на основе официального Python SDK Tavily, реализованный с использованием стандартного MCP Python SDK, работающий по транспортному протоколу Streamable HTTP и предоставляющий услуги через FastAPI + uvicorn.
Возможности
Сервис предоставляет 8 инструментов MCP, охватывающих основные возможности официального SDK Tavily:
Имя инструмента | Описание | Базовый интерфейс 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, затем запустите скрипт развёртывания, который автоматически синхронизирует .env через scp (если для удалённого и локального окружения нужны разные ключи, можно вручную поддерживать /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-клиента
После завершения развёртывания вы можете подключиться к сервису в любом MCP-клиенте, поддерживающем Streamable HTTP, с помощью следующей JSON-конфигурации:
{
"mcpServers": {
"tavily-web-search": {
"type": "streamable_http",
"url": "http://101.47.67.15:20260/mcp"
}
}
}Для локальной отладки замените url на http://127.0.0.1:20260/mcp.
Описание переменных окружения
Переменная | Описание | Значение по умолчанию |
| Официальный API-ключ Tavily (обязательно) | Нет |
| Адрес прослушивания сервиса |
|
| Порт прослушивания сервиса |
|
| Имя MCP-сервера |
|
| Путь монтирования Streamable HTTP |
|
| Включить режим HTTP без состояния |
|
| Принудительный JSON-ответ (вместо SSE-потока) |
|
| Тайм-аут вызова API Tavily search/extract/qna/context/research (в секундах) |
|
| Тайм-аут вызова API Tavily crawl/map (в секундах), обход сайта обычно занимает больше времени |
|
| Уровень журналирования |
|
Меры безопасности
Файл
.envисключён в.gitignore, не загружайте его в репозиторий GitHub.Не жёстко задавайте ключи в коде, все конфиденциальные данные передаются через переменные окружения (динамическая загрузка через
python-dotenv).Перед коммитом убедитесь, что
git statusне содержит.envили других файлов с ключами.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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.414MIT
Related MCP Connectors
AI Reasoning Cache & Consensus Layer with 11 MCP tools via Streamable HTTP.
MCP server exposing the Backtest360 engine API as tools for AI agents.
MCP server for Clipkit — gives AI agents a video toolbox via the Clipkit schema.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/La0bALanG/tavily_mcp_server_for_all_tools'
If you have feedback or need assistance with the MCP directory API, please join our Discord server