Flight Search
Busca vuelos utilizando el motor de Google Flights de SerpAPI.
Documentación
Servidor MCP de Búsqueda de Vuelos
Un servidor confiable del Protocolo de Contexto de Modelo (MCP) para buscar vuelos utilizando el motor de Google Flights de SerpAPI. Este servidor proporciona capacidades de búsqueda de vuelos en tiempo real tanto para vuelos de ida como de ida y vuelta. Funciona bien con claude ai desktop
✈️ Características
- Búsqueda de vuelos en tiempo real utilizando Google Flights de SerpAPI
- Soporte para vuelos de ida y de ida y vuelta
- Múltiples opciones de vuelo con precios, horarios y detalles de aerolíneas
- Implementación del protocolo MCP compatible con JSON-RPC 2.0
- Integración fácil con Claude y otros clientes MCP
- Manejo robusto de errores y registro de actividades
🚀 Inicio Rápido
Requisitos Previos
- Python 3.7 o superior
- Cuenta de SerpAPI y clave de API (Obtén una aquí)
- Cliente compatible con MCP (Claude, etc.)
Instalación
- Clona o descarga el archivo del servidor:
mkdir -p ~/tools/flightsearch
# Copy flight_search_server.py to ~/tools/flightsearch/
- Instala las dependencias:
pip install requests
- Obtén tu clave de SerpAPI:
- Regístrate en SerpAPI
- Obtén tu clave de API desde el panel de control
Configuración
Agrega lo siguiente a la configuración de tu cliente MCP:
{
"flightsearch": {
"command": "python3",
"args": [
"/path/to/your/tools/flightsearch/flight_search_server.py",
"--connection_type",
"stdio"
],
"env": {
"SERP_API_KEY": "your_serpapi_key_here"
}
}
}
Para Claude Desktop, agrega esto a tu claude_desktop_config.json:
{
"mcpServers": {
"flightsearch": {
"command": "python3",
"args": [
"/Users/yourusername/tools/flightsearch/flight_search_server.py",
"--connection_type",
"stdio"
],
"env": {
"SERP_API_KEY": "your_serpapi_key_here"
}
}
}
}
📖 Uso
Herramientas Disponibles
search_flights
Busca vuelos entre aeropuertos.
Parámetros:
origin(obligatorio): Código del aeropuerto de origen (ej., "JFK", "LAX")destination(obligatorio): Código del aeropuerto de destino (ej., "JFK", "LAX")outbound_date(obligatorio): Fecha de salida en formato YYYY-MM-DDreturn_date(opcional): Fecha de regreso para vuelos de ida y vuelta en formato YYYY-MM-DD
Ejemplos:
# One-way flight
search_flights(origin="JFK", destination="LAX", outbound_date="2025-07-01")
# Round-trip flight
search_flights(origin="JFK", destination="LAX", outbound_date="2025-07-01", return_date="2025-07-08")
server_status
Verifica si el servidor de búsqueda de vuelos está en funcionamiento.
Parámetros: Ninguno
Respuesta de Ejemplo
{
"status": "success",
"origin": "JFK",
"destination": "LAX",
"outbound_date": "2025-07-01",
"return_date": null,
"trip_type": "one_way",
"flights": [
{
"price": 199,
"departure_time": "2025-07-01 08:40",
"arrival_time": "2025-07-01 11:45",
"airline": "Delta",
"duration": 365,
"stops": 0
},
{
"price": 204,
"departure_time": "2025-07-01 09:00",
"arrival_time": "2025-07-01 12:00",
"airline": "JetBlue",
"duration": 360,
"stops": 0
}
]
}
🔧 Desarrollo
Ejecución de Pruebas
Prueba el servidor directamente:
# Set environment variable
export SERP_API_KEY="your_api_key"
# Run the server
python3 flight_search_server.py --connection_type stdio
Pruebas del Protocolo
El servidor implementa JSON-RPC 2.0 y soporta estos métodos:
initialize- Inicializa la conexión MCPtools/list- Lista las herramientas disponiblestools/call- Ejecuta una herramientaping- Verificación de estadonotifications/initialized- Notificación de inicialización
Registro de Actividades
El servidor registra en stderr para depuración:
# View logs while running
python3 flight_search_server.py --connection_type stdio 2>debug.log
🐛 Solución de Problemas
Problemas Comunes
1. "API request failed: 400 Client Error"
- Verifica que tu clave de SerpAPI sea válida
- Comprueba que los códigos de aeropuerto sean correctos (usa códigos IATA como "JFK", "LAX")
- Asegúrate de que el formato de fecha sea YYYY-MM-DD
2. "SERP_API_KEY environment variable not set"
- Asegúrate de que la clave de API esté configurada correctamente en tu configuración MCP
- Verifica que el nombre de la variable de entorno sea exactamente
SERP_API_KEY
3. "JSON-RPC schema validation errors"
- Reinicia tu cliente MCP para recargar el servidor
- Comprueba que estás usando la versión más reciente del servidor
4. No se encontraron vuelos
- Prueba con diferentes códigos de aeropuerto o fechas
- Algunas rutas pueden no estar disponibles para la fecha seleccionada
- Consulta la documentación de SerpAPI para aeropuertos compatibles
Modo de Depuración
Habilita el registro de depuración:
# Add to the top of flight_search_server.py
logging.basicConfig(level=logging.DEBUG, stream=sys.stderr)
📝 Limitaciones de la API
- Límites de tasa de SerpAPI: Consulta tu plan de SerpAPI para conocer los límites de solicitudes
- Datos de vuelos: Los resultados dependen de la disponibilidad de datos de Google Flights
- Rango de fechas: Solo fechas futuras (no se pueden buscar vuelos pasados)
- Códigos de aeropuerto: Deben usarse códigos IATA válidos
🤝 Contribuciones
- Haz un fork del repositorio
- Crea una rama de características
- Realiza tus cambios
- Agrega pruebas si corresponde
- Envía una solicitud de extracción
Configuración de Desarrollo
# Clone the repo
git clone https://github.com/yourusername/flight-search-mcp.git
cd flight-search-mcp
# Install dependencies
pip install requests
# Run tests
python3 test_mcp_protocol.py
python3 test_flight_search.py
📄 Licencia
Este proyecto está licenciado bajo la Licencia MIT - consulta el archivo LICENSE para más detalles.
🙏 Agradecimientos
- SerpAPI por proporcionar la API de Google Flights
- Anthropic por la especificación del protocolo MCP
- La comunidad de código abierto por la inspiración y los comentarios
📞 Soporte
- Problemas: Abre un problema en GitHub
- Preguntas: Consulta la documentación de SerpAPI
- Protocolo MCP: Consulta la documentación de MCP de Anthropic
Hecho con ❤️ para la comunidad MCP