Skip to main content
Glama
README.md
# 🚀 Empresa Gemini MCP

Integración completa de MCP (Model Context Protocol) con Google AI usando la nueva librería `@ai-sdk/google` para gestión de empleados.

## 📋 Características

- ✅ **MCP Real**: Protocolo completo, acceso dinámico a servicios externos (empleados, clientes, proveedores, documentos)
- ✅ **Google AI SDK**: Integración moderna con `@ai-sdk/google` y `ai`
- ✅ **Interfaz Web**: Chat moderno y fácil de usar
- ✅ **Sin datos en prompt**: El chat accede dinámicamente a las APIs
- ✅ **Descargas delegadas al backend**: La IA devuelve el nombre exacto del documento y el backend realiza la descarga real
- ✅ **Sin adjuntos simulados**: Nunca se inventan archivos; solo se adjuntan documentos reales
- ✅ **Comparación estricta por nombre**: La IA debe devolver exactamente el nombre del PDF disponible
- ✅ **APIs configurables**: Las rutas actuales son de ejemplo; puedes apuntarlas a tus propios servicios cambiando `API_BASE_URL`

## 🛠️ Herramientas MCP Disponibles

### 👥 **Empleados**
- `get_empleados` - Lista empleados con filtros opcionales
- `create_empleado` - Crea un nuevo empleado
- `get_empleado_by_id` - Obtiene empleado específico
- `get_empleados_por_departamento` - Filtra por departamento
- `get_estadisticas_empleados` - Estadísticas generales

### 🏢 **Clientes**
- `get_clientes` - Lista clientes con filtros opcionales
- `create_cliente` - Crea un nuevo cliente

### 🏭 **Proveedores**
- `get_proveedores` - Lista proveedores con filtros opcionales
- `create_proveedor` - Crea un nuevo proveedor

### 📄 **Documentos**
- `get_documentos` - Lista documentos disponibles (solo listado desde MCP)

Nota: Por diseño, el MCP ya no descarga documentos. La descarga se delega al backend de `Asistente-Empresarial` para asegurar adjuntos reales y control de negocio.

## 🚀 Instalación

### Paso 1: Instalar dependencias
```bash
cd empresa-gemini-mcp
npm install
```

### Paso 2: Configurar API Key
1. Ve a [Google AI Studio](https://aistudio.google.com/app/apikey)
2. Crea una API key
3. Crea un archivo `.env` con tu API key:
```
GOOGLE_GENERATIVE_AI_API_KEY=tu_api_key_aqui
```
**Nota**: También puedes usar `GEMINI_API_KEY` como alternativa.

### Paso 3: Instalar dependencias actualizadas
```bash
npm install
```

### Paso 4: Iniciar la API de empleados
```bash
# En otra terminal
cd ../Asistente-Empresarial
npm run dev
```

## 🎯 Modos de Uso

### 1. Interfaz Web (Recomendado)
```bash
npm run web
# o
npm start
```
- Interfaz web moderna en `http://localhost:3003`
- Chat interactivo con Gemini + MCP
- Fácil de usar desde cualquier navegador

### 2. Chat Terminal
```bash
npm run chat
```
- Chat en línea de comandos
- Para usuarios avanzados

### 3. Solo MCP
```bash
npm run mcp
```
- Solo servidor MCP puro
- Para integración con otros sistemas

## 🌐 Uso de la Interfaz Web

1. **Ejecuta**: `npm run web`
2. **Abre**: `http://localhost:3001` en tu navegador
3. **Chatea**: Escribe consultas y recibe respuestas inteligentes

### Ejemplos de consultas:
**Empleados:**
- "¿Cuántos empleados tenemos?"
- "Busca empleados del departamento de Tecnología"
- "Dame estadísticas de los empleados"
- "Crea un nuevo empleado llamado Juan Pérez"

**Clientes:**
- "Lista todos los clientes corporativos"
- "Busca clientes activos"
- "Crea un nuevo cliente corporativo"

**Proveedores:**
- "Muestra proveedores de tecnología"
- "Lista proveedores activos"
- "Crea un nuevo proveedor de servicios"

**Documentos:**
- "¿Qué documentos están disponibles?" (usa `get_documentos`)
- Para descargar, la IA responderá únicamente el nombre exacto del PDF, por ejemplo: `ORDENES DE COMPRA.pdf`. El backend se encarga de adjuntarlo al chat.

## 🔧 Scripts Disponibles

- `npm start` - Interfaz web (recomendado)
- `npm run web` - Interfaz web
- `npm run chat` - Chat terminal
- `npm run mcp` - Solo servidor MCP

## 📊 Flujo de Trabajo

1. **Usuario hace consulta** → "Descargar ORDENES DE COMPRA.pdf"
2. **Gemini** → Devuelve exclusivamente `ORDENES DE COMPRA.pdf` (nombre exacto)
3. **Servidor Web (chat-web)** → Detecta el nombre, llama a `Asistente-Empresarial /api/chat` con "Descarga ORDENES DE COMPRA.pdf"
4. **Asistente-Empresarial** → Adjunta el PDF real (base64 + `downloadUrl`), o informa si no existe
5. **Usuario recibe** → Respuesta con adjunto real listo para ver/descargar

## ⚙️ Configuración y Entornos

- Variables de entorno requeridas:
  - `GOOGLE_GENERATIVE_AI_API_KEY` o `GEMINI_API_KEY`: clave de Google AI
  - `API_BASE_URL`: base URL del backend de negocio (por defecto `http://localhost:3000/api`)
- Los endpoints de ejemplo (`/empleados`, `/clientes`, `/proveedores`, `/documentos`, `/chat`) son configurables. Puedes apuntar `API_BASE_URL` a tus propios servicios; el código está desacoplado para reuso.

## 🚨 Solución de Problemas

### Error: "API Key no válida"
- Verifica que tu API key de Gemini sea correcta
- Asegúrate de que el archivo `.env` esté configurado

### Error: "Servidor MCP no disponible"
- Verifica que tus APIs de negocio estén ejecutándose (por defecto en `http://localhost:3000`)
- Ejecuta `npm run dev` en la carpeta `Asistente-Empresarial`

### Error: "No se pudo conectar con MCP"
- Verifica que `mcp-server.js` existe y es ejecutable
- Revisa que todas las dependencias estén instaladas

## 🆕 Actualizaciones recientes

Este proyecto fue actualizado para:
- Usar la librería `@ai-sdk/google` y `ai` (reemplaza `@google/generative-ai`).
- Eliminar descargas desde MCP; ahora las descargas las gestiona el backend (`Asistente-Empresarial`).
- Forzar que la IA devuelva únicamente el nombre exacto del documento y evitar adjuntos simulados.

### Mejoras incluidas:
- ✅ **API más moderna**: Usa `generateText` de la librería `ai`
- ✅ **Mejor rendimiento** y manejo de errores
- ✅ **Código más limpio** y mantenible
- ✅ **Integraciones configurables** con `API_BASE_URL`

### Cambios técnicos:
- Reemplazado `GoogleGenerativeAI` por `google()` de `@ai-sdk/google`
- Reemplazado `model.generateContent()` por `generateText()`
- Simplificada la configuración del modelo
- Mejorado el manejo de mensajes y contexto
- Eliminada la herramienta MCP `download_documento`; ahora solo `get_documentos` para listado

## 🎉 ¡Listo para Usar!

Tu integración Gemini-MCP está configurada y lista para usar con la nueva librería. El chat puede acceder dinámicamente a los servicios de empleados sin necesidad de incluir datos en el prompt.

### Próximos pasos:
1. Configura tu API key de Gemini
2. Instala las dependencias actualizadas
3. Inicia la API de empleados
4. Ejecuta `npm run web` para usar la interfaz web
5. Abre `http://localhost:3002` en tu navegador