Tavily Search

Búsqueda web optimizada para LLMs utilizando la API de Tavily Search.

Documentación

Servidor MCP de Tavily Search

smithery badge Una implementación de servidor MCP que integra la API de Tavily Search, proporcionando capacidades de búsqueda optimizadas para LLMs.

tavily-search-mcp-server MCP server

Características

  • Búsqueda web: Realiza búsquedas web optimizadas para LLMs, con control sobre la profundidad de búsqueda, el tema y el rango de tiempo.
  • Extracción de contenido: Extrae el contenido más relevante de los resultados de búsqueda, optimizando la calidad y el tamaño.
  • Características opcionales: Incluye imágenes, descripciones de imágenes, respuestas breves generadas por LLM y contenido HTML sin procesar.
  • Filtrado de dominios: Incluye o excluye dominios específicos en los resultados de búsqueda.

Herramientas

  • tavily_search
    • Ejecuta búsquedas web utilizando la API de Tavily Search.
    • Entradas:
      • query (string, obligatorio): La consulta de búsqueda.
      • search_depth (string, opcional): "basic" o "advanced" (por defecto: "basic").
      • topic (string, opcional): "general" o "news" (por defecto: "general").
      • days (number, opcional): Número de días hacia atrás para la búsqueda de noticias (por defecto: 3).
      • time_range (string, opcional): Filtro de rango de tiempo ("day", "week", "month", "year" o "d", "w", "m", "y").
      • max_results (number, opcional): Número máximo de resultados (por defecto: 5).
      • include_images (boolean, opcional): Incluir imágenes relacionadas (por defecto: false).
      • include_image_descriptions (boolean, opcional): Incluir descripciones de las imágenes (por defecto: false).
      • include_answer (boolean, opcional): Incluir una respuesta breve generada por LLM (por defecto: false).
      • include_raw_content (boolean, opcional): Incluir contenido HTML sin procesar (por defecto: false).
      • include_domains (string[], opcional): Dominios a incluir.
      • exclude_domains (string[], opcional): Dominios a excluir.

Guía de configuración 🚀

1. Requisitos previos

  • Claude Desktop instalado en tu computadora.
  • Una clave de API de Tavily: a. Regístrate para obtener una cuenta de API de Tavily. b. Elige un plan (hay disponible un nivel gratuito). c. Genera tu clave de API desde el panel de control de Tavily.

2. Instalación

  1. Clona este repositorio en algún lugar de tu computadora:

    git clone https://github.com/apappascs/tavily-search-mcp-server.git 
    
  2. Instala las dependencias y compila el proyecto:

    cd tavily-search-mcp-server
    
    npm install
    
    npm run build
    

3. Integración con Claude Desktop

  1. Abre tu archivo de configuración de Claude Desktop:

    # On Mac:
    ~/Library/Application\ Support/Claude/claude_desktop_config.json
    
    # On Windows:
    %APPDATA%\Claude\claude_desktop_config.json
    
  2. Agrega una de las siguientes opciones al objeto mcpServers en tu configuración, dependiendo de si deseas ejecutar el servidor usando npm o docker:

    Opción A: Usando NPM (transporte stdio)

    {
        "mcpServers": {
            "tavily-search-server": {
                "command": "node",
                "args": [
                    "/Users/<username>/<FULL_PATH...>/tavily-search-mcp-server/dist/index.js"
                ],
                "env": {
                    "TAVILY_API_KEY": "your_api_key_here"
                }
            }
        }
    }
    

    Opción B: Usando NPM (transporte SSE)

    {
        "mcpServers": {
            "tavily-search-server": {
                "command": "node",
                "args": [
                    "/Users/<username>/<FULL_PATH...>/tavily-search-mcp-server/dist/sse.js"
                ],
                "env": {
                    "TAVILY_API_KEY": "your_api_key_here"
                },
                "port": 3001
            }
        }
    }
    

    Opción C: Usando Docker

    {
        "mcpServers": {
            "tavily-search-server": {
                "command": "docker",
                "args": [
                    "run",
                    "-i",
                    "--rm",
                    "-e",
                    "TAVILY_API_KEY",
                    "-v",
                    "/Users/<username>/<FULL_PATH...>/tavily-search-mcp-server:/app",
                    "tavily-search-mcp-server"
                ],
                "env": {
                    "TAVILY_API_KEY": "your_api_key_here"
                }
            }
        }
    }
    
  3. Pasos importantes:

    • Reemplaza /Users/<username>/<FULL_PATH...>/tavily-search-mcp-server con la ruta completa real donde clonaste el repositorio.
    • Agrega tu clave de API de Tavily en la sección env. Siempre es mejor tener secretos como claves de API como variables de entorno.
    • Asegúrate de usar barras diagonales (/) en la ruta, incluso en Windows.
    • Si estás usando Docker, asegúrate de compilar la imagen primero usando docker build -t tavily-search-mcp-server:latest .
  4. Reinicia Claude Desktop para que los cambios surtan efecto.

Instalación mediante Smithery

Para instalar Tavily Search para Claude Desktop automáticamente a través de Smithery:

npx -y @smithery/cli install @apappascs/tavily-search-mcp-server --client claude

Configuración del entorno (para npm)

  1. Copia .env.example a .env:

    cp .env.example .env
    
  2. Actualiza el archivo .env con tu clave de API de Tavily real:

    TAVILY_API_KEY=your_api_key_here
    

    Nota: Nunca envíes tu clave de API real al control de versiones. El archivo .env está ignorado por git por razones de seguridad.

Ejecución con NPM

Inicia el servidor usando Node.js:

node dist/index.js

Para el transporte SSE:

node dist/sse.js

Ejecución con Docker

  1. Compila la imagen de Docker (si aún no lo has hecho):

    docker build -t tavily-search-mcp-server:latest .
    
  2. Ejecuta el contenedor de Docker con:

    Para el transporte stdio:

    docker run -it --rm -e TAVILY_API_KEY="your_api_key_here" tavily-search-mcp-server:latest
    

    Para el transporte SSE:

    docker run -it --rm -p 3001:3001 -e TAVILY_API_KEY="your_api_key_here" -e TRANSPORT="sse" tavily-search-mcp-server:latest
    

    También puedes aprovechar las variables de entorno de tu shell directamente, lo cual es una práctica más segura:

     docker run -it --rm -p 3001:3001 -e TAVILY_API_KEY=$TAVILY_API_KEY -e TRANSPORT="sse" tavily-search-mcp-server:latest
    

    Nota: El segundo comando demuestra el enfoque recomendado de usar -e TAVILY_API_KEY=$TAVILY_API_KEY para pasar el valor de tu variable de entorno TAVILY_API_KEY al contenedor de Docker. Esto mantiene tu clave de API fuera del historial de comandos, y generalmente se prefiere sobre codificar secretos directamente en los comandos.

  3. Usando docker compose

    Ejecuta:

    docker compose up -d
    

    Para detener el servidor:

    docker compose down
    

Licencia

Este servidor MCP está licenciado bajo la Licencia MIT. Esto significa que eres libre de usar, modificar y distribuir el software, sujeto a los términos y condiciones de la Licencia MIT. Para más detalles, consulta el archivo LICENSE en el repositorio del proyecto.