MCP Chatbot

Un chatbot inteligente para automatizar tareas como control del navegador, búsquedas web y planificación de viajes.

Documentación

MCP Chatbot 🤖

MCP Chatbot - Automatización inteligente mediante la integración del Protocolo de Contexto de Modelos. Incluye automatización de navegador, búsqueda web y planificación de viajes con un manejo robusto de errores. Utiliza Google Gemini LLM y maneja fallos del servidor de manera elegante para un funcionamiento confiable.

Repositorio de GitHub: https://github.com/naakaarafr/MCP-Chatbot

Un chatbot potente construido con el Protocolo de Contexto de Modelos (MCP) que proporciona automatización inteligente mediante control del navegador, búsqueda web y capacidades de planificación de viajes.

Descripción general

Este chatbot aprovecha el Protocolo de Contexto de Modelos para integrar múltiples servidores especializados, creando una interfaz unificada para automatización web, búsqueda y tareas relacionadas con viajes. Utiliza el modelo Gemini de Google como LLM subyacente y puede manejar fallos del servidor de manera elegante al probar cada servidor MCP individualmente.

Características

🌐 Automatización de Navegador (Playwright MCP)

  • Navegar a sitios web
  • Tomar capturas de pantalla
  • Hacer clic en elementos e interactuar con páginas web
  • Automatizar tareas basadas en web

🔍 Búsqueda Web (DuckDuckGo MCP)

  • Realizar búsquedas web
  • Obtener información en tiempo real
  • Investigar temas y encontrar respuestas

🏠 Planificación de Viajes (Airbnb MCP)

  • Buscar alojamientos
  • Encontrar hoteles y alquileres
  • Obtener recomendaciones de viaje

🛡️ Manejo Robusto de Errores

  • Pruebas individuales de servidores al inicio
  • Degradación elegante cuando los servidores fallan
  • Respuestas de respaldo en modo limitado
  • Reporte claro de errores

Requisitos previos

Requisitos del sistema

  • Python 3.8+
  • Node.js y npm (para servidores MCP)
  • Administrador de paquetes UV (para servidores MCP de Python)

Paquetes requeridos

# Python dependencies
pip install asyncio python-dotenv langchain-google-genai mcp-use

# Node.js MCP servers
npm install -g @playwright/mcp
npm install -g @openbnb/mcp-server-airbnb

# Python MCP servers
uvx install duckduckgo-mcp-server

Instalación

  1. Clonar o descargar los archivos del proyecto:

    # Ensure you have both app.py and browser_mcp.json
    
  2. Instalar dependencias de Python:

    pip install -r requirements.txt
    

    O instalar individualmente:

    pip install asyncio python-dotenv langchain-google-genai mcp-use
    
  3. Instalar servidores MCP:

    # Playwright for browser automation
    npm install -g @playwright/mcp
    
    # Airbnb for travel search
    npm install -g @openbnb/mcp-server-airbnb
    
    # DuckDuckGo for web search
    uvx install duckduckgo-mcp-server
    
  4. Configurar variables de entorno: Crear un archivo .env en la raíz del proyecto:

    GOOGLE_API_KEY=your_google_api_key_here
    
  5. Configurar servidores MCP: El archivo browser_mcp.json ya está configurado con ajustes predeterminados. Modificar si es necesario:

    {
      "mcpServers": {
        "playwright": {
          "command": "npx",
          "args": ["@playwright/mcp@latest"]
        },
        "airbnb": {
          "command": "npx",
          "args": ["-y", "@openbnb/mcp-server-airbnb"]
        },
        "ddg-search": {
          "command": "uvx",
          "args": ["duckduckgo-mcp-server"]
        }
      }
    }
    

Uso

Iniciar el Chatbot

python app.py

Comandos disponibles

  • help - Mostrar comandos disponibles y consultas de ejemplo
  • tools - Listar todas las herramientas MCP disponibles
  • quit o exit - Finalizar la conversación

Consultas de ejemplo

Automatización de Navegador

"Take a screenshot of google.com"
"Navigate to wikipedia.org and search for Python"
"Click the login button on the website"

Búsqueda Web

"What's the weather like today?"
"Search for the latest news about AI"
"Find information about renewable energy"

Planificación de Viajes

"Find hotels in New York City"
"Search for Airbnb rentals in San Francisco"
"What are the best accommodations in Tokyo?"

Asistencia General

"Find the best restaurants in downtown Chicago"
"Help me research Python programming tutorials"
"Take a screenshot of the current stock market trends"

Arquitectura

Componentes principales

  1. Clase MCPChatbot: Orquestador principal del chatbot

    • Inicializa y gestiona servidores MCP
    • Maneja interacciones del usuario
    • Proporciona respuestas de respaldo
  2. Pruebas de Servidores: Validación individual de servidores

    • Prueba cada servidor MCP al inicio
    • Reporta servidores funcionales y fallidos
    • Continúa operando con servidores disponibles
  3. Integración de Agente: Integración LangChain + MCP

    • Utiliza Google Gemini 2.0 Flash como LLM
    • Se integra con el cliente MCP para acceso a herramientas
    • Soporta hasta 20 pasos de razonamiento

Manejo de Errores

El chatbot implementa un manejo robusto de errores:

  • Fallos de Servidor: Las pruebas individuales de servidores previenen fallos totales
  • Modo Limitado: Proporciona respuestas básicas cuando no hay servidores disponibles
  • Degradación Elegante: Continúa operando con funcionalidad parcial
  • Retroalimentación al Usuario: Mensajes de error claros y reporte de estado

Configuración

Configuración de Servidores MCP

Editar browser_mcp.json para agregar o modificar servidores MCP:

{
  "mcpServers": {
    "your-server-name": {
      "command": "command-to-run",
      "args": ["arg1", "arg2"]
    }
  }
}

Variables de Entorno

Requeridas en el archivo .env:

  • GOOGLE_API_KEY: Su clave de API de Google AI para acceso a Gemini

Configuración de LLM

Modificar en app.py si es necesario:

self.llm = ChatGoogleGenerativeAI(
    model="gemini-2.0-flash-exp",  # Model selection
    temperature=0.3                # Creativity level
)

Solución de Problemas

Problemas comunes

  1. "browser_mcp.json no encontrado"

    • Asegúrese de que el archivo de configuración esté en el mismo directorio que app.py
  2. "Ningún servidor MCP está funcionando"

    • Verifique que todos los servidores MCP estén instalados correctamente
    • Confirme que Node.js y UV estén instalados y accesibles
    • Revise los registros del servidor para mensajes de error específicos
  3. Problemas con la Clave de API de Google

    • Asegúrese de que su archivo .env contenga un GOOGLE_API_KEY válido
    • Verifique que la clave de API tenga acceso a los modelos Gemini
  4. Problemas de Instalación

    • Asegúrese de que Node.js y npm estén instalados
    • Instale el administrador de paquetes UV: pip install uv
    • Intente instalar servidores MCP individualmente para aislar problemas

Modo de Depuración

El chatbot proporciona información detallada al inicio:

  • Resultados de pruebas de servidores
  • Lista de servidores funcionales
  • Mensajes de error para servidores fallidos

Contribuciones

  1. Haga un fork del repositorio
  2. Cree una rama de características
  3. Realice sus cambios
  4. Pruebe con varios servidores MCP
  5. Envíe una solicitud de extracción

Licencia

Este proyecto está licenciado bajo la Licencia MIT - consulte el archivo LICENCIA para más detalles.

Consulte las licencias individuales de los servidores MCP para sus respectivos términos.

Soporte

Para problemas relacionados con:

  • Protocolo MCP: Consulte la documentación oficial de MCP
  • Servidores MCP específicos: Consulte la documentación individual del servidor
  • Integración LangChain: Consulte la documentación de LangChain
  • Google Gemini: Consulte la documentación de Google AI

Agradecimientos

  • Equipo del Protocolo de Contexto de Modelos (MCP) por el protocolo innovador
  • Equipo de Playwright por las capacidades de automatización del navegador
  • Equipo de LangChain por el marco de integración
  • Google por proporcionar los modelos de IA Gemini