MCP Inventario
by olivio-git
README.md
# 📦 MCP Inventario - Sistema Modular
Sistema de inventario implementado como servidor MCP (Model Context Protocol) con arquitectura modular y soporte para múltiples bases de datos.
## 🚀 Inicio Rápido
### Instalación
```bash
npm install
```
### Configurar MongoDB
Asegúrate de tener MongoDB corriendo en `localhost:27017`, o configura la variable de entorno:
```bash
export MONGODB_URI="mongodb://localhost:27017/inventario"
```
### Ejecutar el Servidor MCP
```bash
node index.js
```
### Probar con el Cliente de Pruebas
```bash
node test-client.js
```
### Chat con Groq (Requiere API Key)
```bash
export GROQ_API_KEY="tu-api-key"
node chat-groq.js
```
## 📁 Archivos Principales
### ✅ **Archivos que DEBES USAR**
| Archivo | Propósito |
|---------|-----------|
| `index.js` | **Servidor principal modular** - Punto de entrada del servidor MCP |
| `test-client.js` | Cliente de pruebas para probar las herramientas MCP |
| `chat-groq.js` | Chat interactivo usando Groq AI + herramientas MCP |
| `src/` | Directorio con toda la lógica modular del proyecto |
### ⚠️ **Archivo OBSOLETO (No usar)**
| Archivo | Estado |
|---------|--------|
| `mcp-server.js` | **OBSOLETO** - Reemplazado por `index.js` + estructura modular en `src/` |
> **Nota**: `mcp-server.js` se mantiene solo como referencia. Toda la funcionalidad está ahora en la estructura modular.
## 🏗️ Estructura del Proyecto
```
experiments-mcp/
├── index.js ✅ Servidor principal (USA ESTE)
├── chat-groq.js ✅ Chat con Groq AI
├── test-client.js ✅ Cliente de pruebas
├── mcp-server.js ⚠️ OBSOLETO (no usar)
│
└── src/
├── database/ # Gestión de base de datos
│ ├── db.js # Clase Database (multi-conexión)
│ ├── models/ # Modelos Mongoose
│ └── examples/ # Ejemplos de uso
│
├── handlers/ # Lógica de negocio
│ ├── index.js # Router de handlers
│ ├── item.handler.js # Operaciones de items
│ └── categoria.handler.js
│
├── tools/ # Definiciones MCP
│ └── index.js # Registro de herramientas
│
├── server/ # Configuración servidor
│ ├── index.js # Setup del servidor MCP
│ └── config.js # Configuración
│
└── mockups/ # Datos de prueba
├── categorias.mc.js
└── items.mc.js
```
## 🛠️ Herramientas Disponibles
1. **listar_items** - Lista items con filtro opcional por categoría
2. **buscar_item** - Busca items por nombre
3. **contar_items** - Cuenta items y calcula totales
4. **crear_items** - Crea uno o más items
5. **eliminar_item** - Elimina un item por ID
6. **actualizar_item** - Actualiza un item existente
7. **listar_categorias** - Lista todas las categorías
## 📚 Documentación
- [ARCHITECTURE.md](./ARCHITECTURE.md) - Documentación detallada de la arquitectura
- Ver ejemplos en `src/database/examples/`
## 🔄 Migración desde la versión anterior
Si estabas usando `mcp-server.js`:
1. **Cambiar referencias**: Actualiza cualquier script o configuración que apunte a `mcp-server.js` para que use `index.js`
2. **Funcionalidad idéntica**: Todas las herramientas funcionan igual, solo el código está mejor organizado
3. **Beneficios**:
- ✅ Código más organizado y fácil de mantener
- ✅ Separación de responsabilidades
- ✅ Más fácil agregar nuevas herramientas
- ✅ Soporte para múltiples bases de datos
- ✅ Mejor para testing
## 🧪 Testing
### Probar todas las herramientas
```bash
node test-client.js
```
### Probar con chat interactivo
```bash
export GROQ_API_KEY="tu-clave"
node chat-groq.js
```
### Ejemplo de conversación:
```
💬 Tú: Lista todos los items de electrónica
🤖 Groq: Aquí están los items de electrónica:
- Laptop Dell (5 unidades) - $800
- Mouse Logitech (15 unidades) - $25
...
```
## 🔐 Variables de Entorno
```bash
# MongoDB (opcional, default: mongodb://localhost:27017/inventario)
export MONGODB_URI="mongodb://localhost:27017/inventario"
# Groq API (solo para chat-groq.js)
export GROQ_API_KEY="tu-api-key"
```
## 🆘 Troubleshooting
### Error: "Cannot connect to MongoDB"
- Verifica que MongoDB esté corriendo: `mongosh`
- Verifica la URI de conexión
### Error: "GROQ_API_KEY not found"
- Solo necesario para `chat-groq.js`
- Obtén tu API key en: https://console.groq.com
### Error: "Module not found"
```bash
npm install
```
## 📖 Más Información
- **Arquitectura completa**: Ver [ARCHITECTURE.md](./ARCHITECTURE.md)
- **Ejemplos de múltiples conexiones**: Ver `src/database/examples/multi-connection-example.js`
## 📝 Licencia
MIT
---
**¿Dudas?** Revisa la [documentación de arquitectura](./ARCHITECTURE.md) o los ejemplos en `src/database/examples/`.
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues