Tavily Search MCP Agent

by arben-adm
Verified
MIT License
1
  • Apple
  • Linux

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

🔍Mi agente de MCP de búsqueda de Tavily

He creado un potente servidor de Protocolo de Contexto de Modelo (MCP) basado en la API de Tavily. Con él, puedes obtener información fiable y de alta calidad sobre negocios, noticias, finanzas y política, todo a través de una interfaz robusta y fácil de usar.

¿Por qué creé Tavily Search MCP?

En el acelerado panorama digital actual, reconocí la necesidad de acceder rápidamente a información precisa. Necesitaba una herramienta de búsqueda web compatible con mi servidor MCP de pensamiento secuencial. Por eso desarrollé Tavily Search MCP, que destaca por:

⚡️ Respuestas de búsqueda asincrónicas ultrarrápidas
🛡️ Tolerancia a fallos incorporada con reintentos automáticos
🎯 Resultados limpios y con formato Markdown
🔍 Fragmentos de contenido inteligentes
🛠️ Manejo integral de errores
🖼️ Resultados de imágenes opcionales
📰 Búsqueda de noticias especializadas

🚀 Inicio rápido

Instalación mediante herrería

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

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

Instalación manual

A continuación te indicamos cómo puedes empezar a trabajar con mi proyecto en cuestión de minutos:

# 1. Create environment uv venv && .venv\Scripts\activate # Windows # OR uv venv && source .venv/bin/activate # Unix/MacOS # 2. Install dependencies uv pip install -e . # 3. Set up configuration echo TAVILY_API_KEY=your-key-here > .env # 4. Start server cd mcp_tavily_search && uv run server.py

💡 Características principales

⚡️ Rendimiento y confiabilidad

  • He implementado el manejo de solicitudes asincrónicas
  • Manejo de errores integrado y reintentos automáticos
  • Tiempos de espera de solicitud configurables
  • Sistema de registro integral

🎯 Configuración de búsqueda

  • He hecho que la profundidad de búsqueda sea configurable (básica/avanzada)
  • Límites de resultados ajustables (1-20 resultados)
  • Salida limpia con formato Markdown
  • Vistas previas de fragmentos con URL de origen
  • Resultados de imágenes opcionales
  • Tema de búsqueda de noticias especializadas

🛡️ Manejo de errores

  • Validación de autenticación de API
  • Detección de límite de velocidad
  • Recuperación de errores de red
  • Gestión del tiempo de espera de solicitudes

🛠️ Integración con desarrolladores

Prerrequisitos

Configuración del escritorio de Claude

He optimizado la experiencia de Claude Desktop con esta configuración:

{ "mcpServers": { "tavily-search": { "command": "uv", "args": [ "--directory", "/path/to/mcp-tavily-search/mcp_tavily_search", "run", "server.py" ], "env": { "TAVILY_API_KEY": "YOUR-API-KEY" } } } }

📁 Rutas de configuración:

  • Ventanas: %APPDATA%\Claude\claude_desktop_config.json
  • Unix/MacOS: ~/.config/Claude/claude_desktop_config.json

Arquitectura del proyecto

He diseñado una estructura limpia y modular para que el desarrollo sea muy sencillo:

mcp-tavily-search/ ├── mcp_tavily_search/ # Core package │ ├── server.py # Server implementation │ ├── client.py # Tavily API client │ ├── test_server.py # Server tests │ ├── test_client.py # Client tests │ └── __init__.py # Package initialization ├── .env # Environment configuration ├── README.md # Documentation └── pyproject.toml # Project configuration

Componentes clave

Servidor (server.py)

  • He implementado el protocolo MCP
  • Manejo y enrutamiento de solicitudes
  • Recuperación de errores y monitorización del estado

Cliente (client.py)

  • Integración de API de Tavily
  • Mecanismo de reintento con retroceso exponencial
  • Formato y procesamiento de resultados
  • Manejo y registro de errores

Pruebas (test_server.py y test_client.py)

  • Pruebas unitarias integrales tanto para el servidor como para el cliente
  • Garantiza la fiabilidad y corrección de la implementación.

Ejemplos de uso

A continuación se muestran algunos ejemplos de cómo utilizar las capacidades de búsqueda mejoradas que he implementado:

  1. Búsqueda básica:
{ "name": "search", "arguments": { "query": "Latest news on artificial intelligence" } }
  1. Búsqueda avanzada con imágenes:
{ "name": "search", "arguments": { "query": "Elon Musk SpaceX achievements", "search_depth": "advanced", "include_images": true, "max_results": 10 } }
  1. Búsqueda específica de noticias:
{ "name": "search", "arguments": { "query": "Climate change impact on agriculture", "topic": "news", "max_results": 5 } }
  1. Búsqueda con contenido sin procesar:
{ "name": "search", "arguments": { "query": "Python programming best practices", "include_raw_content": true, "max_results": 3 } }

Guía de solución de problemas

Problemas de conexión

Si las cosas no funcionan como se espera, siga estos pasos que he descrito:

  1. Verifique sus rutas de configuración
  2. Consulte los registros de Claude Desktop:
    # Windows type %APPDATA%\Claude\logs\latest.log # Unix/MacOS cat ~/.config/Claude/logs/latest.log
  3. Pruebe el servidor manualmente utilizando los comandos de inicio rápido

Solución de problemas de API

Si tiene problemas con la API:

  1. Validar los permisos de su clave API
  2. Comprueba tu conexión de red
  3. Supervisar la respuesta de la API en los registros del servidor

Ejecución de pruebas

Para ejecutar las pruebas unitarias de este proyecto, siga estos pasos:

  1. Instalar las dependencias de desarrollo:
    uv pip install -e ".[dev]"
  2. Ejecute las pruebas usando pytest:
    pytest mcp_tavily_search

Esto ejecutará todas las pruebas en el directorio mcp_tavily_search , incluidos test_client.py y test_server.py .

Comunidad y apoyo

  • Te animo a que informes problemas y contribuyas en GitHub.
  • Comparte tus implementaciones y mejoras
  • Únase a nuestras discusiones y ayude a otros.

Seguridad y mejores prácticas

La seguridad es primordial en mi implementación. El servidor incluye:

  • Manejo seguro de claves API a través de variables de entorno
  • Gestión automática del tiempo de espera de las solicitudes
  • Seguimiento y registro de errores completo

Licencia

He licenciado este proyecto bajo el MIT. Consulte el archivo de licencia para más detalles.

Expresiones de gratitud

Me gustaría agradecer especialmente a:

  • El innovador equipo de API de Tavily
  • La comunidad del protocolo MCP
ID: p0w4whs3l4