Тавилийский MCP-сервер
Сервер Model Context Protocol, который предоставляет возможности веб-поиска на базе ИИ с использованием поискового API Tavily. Этот сервер позволяет LLM выполнять сложный веб-поиск, получать прямые ответы на вопросы и искать последние новостные статьи с извлеченным ИИ релевантным контентом.
Функции
Доступные инструменты
tavily_web_search— выполняет комплексный веб-поиск с извлечением контента с помощью искусственного интеллекта.query(строка, обязательно): Поисковый запросmax_results(целое число, необязательно): максимальное количество возвращаемых результатов (по умолчанию: 5, максимум: 20)search_depth(строка, необязательно): «базовая» или «расширенная» глубина поиска (по умолчанию: «базовая»)include_domains(список или строка, необязательно): Список доменов, которые следует включить в результаты.exclude_domains(список или строка, необязательно): Список доменов для исключения из результатов
tavily_answer_search— выполняет поиск в Интернете и генерирует прямые ответы с подтверждающими доказательствами.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 на базе искусственного интеллекта
tavily_answer_search - Поиск в Интернете и получение ответа, сгенерированного ИИ, с подтверждающими доказательствами
tavily_news_search - Поиск последних новостных статей с помощью поиска новостей Tavily
Related MCP server: Tavily MCP Server
Предпосылки
Python 3.11 или более поздняя версия
Ключ API Tavily (получить на сайте Tavily )
uvМенеджер пакетов Python (рекомендуется)
Установка
Вариант 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
Для быстрой установки используйте одну из кнопок установки в один клик ниже:
Для ручной установки добавьте следующий блок JSON в файл настроек пользователя (JSON) в VS Code. Это можно сделать, нажав Ctrl + Shift + P и введя Preferences: Open User Settings (JSON) .
При желании вы можете добавить его в файл .vscode/mcp.json в вашем рабочем пространстве. Это позволит вам поделиться конфигурацией с другими.
Обратите внимание, что ключ
mcpне нужен в файле.vscode/mcp.json.
{
"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-ключа
Серверу требуется ключ API Tavily, который можно предоставить тремя способами:
Через файл
.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
Добавьте в настройки Клода:
"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 .