Tavily MCP Server

Búsqueda web utilizando la API de Tavily.

Documentación

Servidor MCP de Tavily

Un servidor MCP (Model Context Protocol) listo para producción que proporciona capacidades de búsqueda web utilizando la API de Tavily. Este servidor se integra perfectamente con Roo y otros asistentes de IA compatibles con MCP.

Características

  • 🔍 Búsqueda Web: Potente búsqueda web utilizando la API de búsqueda optimizada por IA de Tavily
  • 🎯 Respuestas Directas: Obtenga respuestas inmediatas a las consultas cuando estén disponibles
  • 📊 Resultados Configurables: Controle la profundidad de búsqueda, el número de resultados y el filtrado por dominio
  • 🚀 Listo para Producción: Construido con TypeScript, pruebas exhaustivas y despliegue con PM2
  • 🔒 Seguro: Gestión de clave API basada en variables de entorno
  • 📈 Monitoreo: Registro completo y monitoreo de procesos con PM2
  • 🧪 Bien Probado: Cobertura exhaustiva de pruebas unitarias y de integración

Inicio Rápido

Requisitos Previos

  • Node.js 18+
  • npm o yarn
  • Clave API de Tavily (Obtenga una aquí)
  • PM2 (para despliegue en producción)

Instalación y Despliegue

  1. Clonar y configurar:

    cd tavily-mcp-server
    npm install
    
  2. Establezca su clave API:

    export TAVILY_API_KEY="your-api-key-here"
    
  3. Ejecutar pruebas:

    npm test
    npm run test:coverage
    
  4. Desplegar con PM2:

    ./deploy.sh
    

¡Eso es todo! El servidor ahora está en ejecución y listo para conexiones MCP.

Desarrollo

Compilar y Probar

# Install dependencies
npm install

# Run in development mode
npm run dev

# Build for production
npm run build

# Run unit tests
npm test

# Run tests with coverage
npm run test:coverage

# Run integration tests
./test-mcp.js

# Lint code
npm run lint
npm run lint:fix

Pruebas

El proyecto incluye pruebas exhaustivas:

  • Pruebas Unitarias: Prueban componentes y funciones individuales
  • Pruebas de Integración: Prueban la funcionalidad completa del servidor MCP
  • Pruebas de Protocolo MCP: Validan el cumplimiento del protocolo MCP
  • Pruebas de API: Prueban la integración con la API de Tavily (requiere clave API válida)
# Run all tests
npm test

# Run with coverage report
npm run test:coverage

# Test the actual MCP server
./test-mcp.js

Configuración

Variables de Entorno

  • TAVILY_API_KEY (obligatorio): Su clave API de Tavily
  • NODE_ENV (opcional): Establezca en "production" para despliegue en producción

Configuración de PM2

El archivo pm2-apps.json contiene la configuración de producción:

{
  "apps": [{
    "name": "tavily-mcp-server",
    "script": "dist/index.js",
    "instances": 1,
    "exec_mode": "fork",
    "env": {
      "NODE_ENV": "production",
      "TAVILY_API_KEY": "your-api-key"
    }
  }]
}

Uso con Roo

Instalación Global

Agregue a su configuración global de MCP (~/.roo/mcp_settings.json):

{
  "mcpServers": {
    "tavily-search": {
      "command": "node",
      "args": ["/home/ubuntu/roo-tavily/tavily-mcp-server/dist/index.js"],
      "env": {
        "TAVILY_API_KEY": "your-api-key-here"
      }
    }
  }
}

Instalación Específica del Proyecto

Agregue a la configuración de MCP de su proyecto (.roo/mcp.json):

{
  "mcpServers": {
    "tavily-search": {
      "command": "node",
      "args": ["./tavily-mcp-server/dist/index.js"],
      "env": {
        "TAVILY_API_KEY": "your-api-key-here"
      }
    }
  }
}

Uso de la Herramienta de Búsqueda Web

Una vez configurado, puede usar la herramienta de búsqueda web en Roo:

<use_mcp_tool>
<server_name>tavily-search</server_name>
<tool_name>web_search</tool_name>
<arguments>
{
  "query": "latest developments in AI",
  "search_depth": "advanced",
  "max_results": 10,
  "include_answer": true
}
</arguments>
</use_mcp_tool>

Referencia de la API

Herramienta web_search

Busque en la web utilizando la API de búsqueda optimizada por IA de Tavily.

Parámetros

ParámetroTipoObligatorioPredeterminadoDescripción
querystring-La consulta de búsqueda a ejecutar
search_depthstring"basic"Profundidad de búsqueda: "basic" o "advanced"
include_answerbooleantrueSi incluir una respuesta directa
max_resultsnumber5Número de resultados (1-20)
include_domainsstring[]-Dominios a incluir en la búsqueda
exclude_domainsstring[]-Dominios a excluir de la búsqueda

Formato de Respuesta

La herramienta devuelve resultados de búsqueda formateados que incluyen:

  • Respuesta Directa: Respuesta generada por IA a la consulta (si está disponible)
  • Resultados de Búsqueda: Lista de páginas web relevantes con:
    • Título y URL
    • Fragmento de contenido
    • Puntuación de relevancia
    • Fecha de publicación (si está disponible)
  • Preguntas de Seguimiento: Consultas relacionadas sugeridas

Ejemplo de Respuesta

# Search Results for: "latest developments in AI"

## Direct Answer
Recent AI developments include advances in large language models, 
multimodal AI systems, and improved reasoning capabilities...

## Search Results

### 1. Major AI Breakthroughs in 2024
**URL:** https://example.com/ai-breakthroughs
**Published:** 2024-01-15
**Score:** 0.95

Recent developments in artificial intelligence have shown remarkable 
progress in areas such as natural language processing...

---

### 2. OpenAI Announces GPT-5
**URL:** https://example.com/gpt5-announcement
**Score:** 0.92

OpenAI has announced the development of GPT-5, promising significant 
improvements in reasoning and multimodal capabilities...

---

## Follow-up Questions
1. What are the implications of these AI developments?
2. How do these advances compare to previous years?
3. What challenges remain in AI development?

Despliegue en Producción

Gestión de PM2

# Start the server
pm2 start pm2-apps.json

# View status
pm2 status

# View logs
pm2 logs tavily-mcp-server

# Restart server
pm2 restart tavily-mcp-server

# Stop server
pm2 stop tavily-mcp-server

# Monitor all processes
pm2 monit

Proxy Inverso Nginx (Opcional)

Si necesita acceso HTTP, puede configurar un proxy inverso Nginx:

server {
    listen 80;
    server_name your-domain.com;
    
    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

Monitoreo y Registros

  • Registros de Aplicación: /var/log/pm2/tavily-mcp-server.log
  • Registros de Errores: /var/log/pm2/tavily-mcp-server-error.log
  • Monitoreo de PM2: pm2 monit

Solución de Problemas

Problemas Comunes

  1. "TAVILY_API_KEY environment variable is required"

    • Asegúrese de que su clave API esté configurada: export TAVILY_API_KEY="your-key"
    • Verifique que la configuración de PM2 tenga la clave API correcta
  2. Errores de "Cannot find module"

    • Ejecute npm install para instalar las dependencias
    • Asegúrese de haber compilado el proyecto: npm run build
  3. El servidor no se inicia

    • Verifique los registros: pm2 logs tavily-mcp-server
    • Verifique que la clave API sea válida
    • Asegúrese de que el puerto no esté en uso
  4. Las solicitudes de búsqueda fallan

    • Verifique que la clave API sea válida y tenga créditos
    • Verifique la conectividad de red
    • Revise los registros de errores para errores específicos de la API

Modo de Depuración

Ejecute el servidor en modo de depuración:

NODE_ENV=development npm run dev

Prueba de Conexión

Pruebe el servidor MCP directamente:

./test-mcp.js

Contribuciones

  1. Haga un fork del repositorio
  2. Cree una rama de características: git checkout -b feature-name
  3. Realice sus cambios
  4. Agregue pruebas para la nueva funcionalidad
  5. Asegúrese de que todas las pruebas pasen: npm test
  6. Envíe una solicitud de extracción

Licencia

Licencia MIT - consulte el archivo LICENSE para más detalles.

Soporte


Construido con ❤️ por el equipo de Roo