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
-
Clonar y configurar:
cd tavily-mcp-server npm install -
Establezca su clave API:
export TAVILY_API_KEY="your-api-key-here" -
Ejecutar pruebas:
npm test npm run test:coverage -
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 TavilyNODE_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ámetro | Tipo | Obligatorio | Predeterminado | Descripción |
|---|---|---|---|---|
query | string | ✅ | - | La consulta de búsqueda a ejecutar |
search_depth | string | ❌ | "basic" | Profundidad de búsqueda: "basic" o "advanced" |
include_answer | boolean | ❌ | true | Si incluir una respuesta directa |
max_results | number | ❌ | 5 | Número de resultados (1-20) |
include_domains | string[] | ❌ | - | Dominios a incluir en la búsqueda |
exclude_domains | string[] | ❌ | - | 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
-
"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
- Asegúrese de que su clave API esté configurada:
-
Errores de "Cannot find module"
- Ejecute
npm installpara instalar las dependencias - Asegúrese de haber compilado el proyecto:
npm run build
- Ejecute
-
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
- Verifique los registros:
-
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
- Haga un fork del repositorio
- Cree una rama de características:
git checkout -b feature-name - Realice sus cambios
- Agregue pruebas para la nueva funcionalidad
- Asegúrese de que todas las pruebas pasen:
npm test - Envíe una solicitud de extracción
Licencia
Licencia MIT - consulte el archivo LICENSE para más detalles.
Soporte
- 📧 Correo electrónico: support@roo.com
- 🐛 Problemas: Problemas de GitHub
- 📖 Documentación: Documentación de Roo
Construido con ❤️ por el equipo de Roo