Skip to main content
Glama
La0bALanG

tavily_mcp_server_for_all_tools

by La0bALanG

Tavily Web Search MCP Server

Веб-поисковый MCP-сервис, разработанный на основе официального Python SDK Tavily, реализованный с использованием стандартного MCP Python SDK, работающий по транспортному протоколу Streamable HTTP и предоставляющий услуги через FastAPI + uvicorn.

Возможности

Сервис предоставляет 8 инструментов MCP, охватывающих основные возможности официального SDK Tavily:

Имя инструмента

Описание

Базовый интерфейс Tavily

web_search

Выполняет веб-поиск по ключевым словам, возвращает заголовки, ссылки, выдержки, оценки релевантности и опционально генерирует сводный ответ

search

web_fetch

Извлекает веб-страницу по указанному URL, возвращает текстовое содержимое (markdown / text)

extract

web_crawl

Начиная с корневого URL, обходит весь сайт, массово извлекает содержимое нескольких страниц, подходит для систематического сбора контента сайта

crawl

web_map

Обходит структуру сайта, обнаруживает только URL-адреса страниц без извлечения содержимого, подходит для предварительного изучения масштаба сайта

map

qna_search

Возвращает краткий ответ на конкретный вопрос

qna_search

search_context

Возвращает сжатый контекст поиска, подходящий для непосредственной подачи в LLM / RAG (с автоматическим ограничением и обрезкой токенов)

get_search_context

deep_research_start

Отправляет задачу глубокого исследования (Tavily автоматически выполняет многоэтапный поиск + генерирует сводный отчёт), задача выполняется асинхронно, немедленно возвращается request_id

research

deep_research_result

Опрашивает статус и окончательный результат задачи глубокого исследования по request_id (текст отчёта + источники)

get_research

Задачи исследования, соответствующие 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.1

2. Установка зависимостей (conda-среда llm_factory_envs)

conda activate llm_factory_envs
pip install -r requirements.txt

3. Запуск MCP-сервиса

python -m app.main
# 服务启动后监听 http://127.0.0.1:20260/mcp
# 健康检查: curl http://127.0.0.1:20260/health

4. Проверка с помощью тестового клиента

Откройте ещё один терминал:

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

Этот скрипт:

  1. Синхронизирует файлы проекта через rsync в root@101.47.67.15:/opt/tavily-mcp-server (исключая .git, __pycache__ и т.д.)

  2. Синхронизирует .env (если существует локально)

  3. Устанавливает зависимости в удалённой среде llm_env

  4. Устанавливает/обновляет службу 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.

Описание переменных окружения

Переменная

Описание

Значение по умолчанию

TAVILY_API_KEY

Официальный API-ключ Tavily (обязательно)

Нет

MCP_HOST

Адрес прослушивания сервиса

127.0.0.1 (при развёртывании на сервере измените на 0.0.0.0)

MCP_PORT

Порт прослушивания сервиса

20260

MCP_SERVER_NAME

Имя MCP-сервера

tavily-web-search

MCP_STREAMABLE_PATH

Путь монтирования Streamable HTTP

/mcp

MCP_STATELESS_HTTP

Включить режим HTTP без состояния

false

MCP_JSON_RESPONSE

Принудительный JSON-ответ (вместо SSE-потока)

false

TAVILY_REQUEST_TIMEOUT

Тайм-аут вызова API Tavily search/extract/qna/context/research (в секундах)

30

TAVILY_CRAWL_TIMEOUT

Тайм-аут вызова API Tavily crawl/map (в секундах), обход сайта обычно занимает больше времени

150

LOG_LEVEL

Уровень журналирования

INFO

Меры безопасности

  • Файл .env исключён в .gitignore, не загружайте его в репозиторий GitHub.

  • Не жёстко задавайте ключи в коде, все конфиденциальные данные передаются через переменные окружения (динамическая загрузка через python-dotenv).

  • Перед коммитом убедитесь, что git status не содержит .env или других файлов с ключами.

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • F
    license
    A
    quality
    D
    maintenance
    Enables 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
  • A
    license
    B
    quality
    D
    maintenance
    A local MCP server that exposes Tavily search as a tool and rotates across multiple API keys for reliability.
    1
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    MCP server for web page fetching (converting to Markdown/text with automatic fallback between Tavily and Firecrawl) and web search via Tavily.
    2
    MIT

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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