Skip to main content
Glama
isaacchpe

mcp_inventory

by isaacchpe
README.md
# MCP Inventory - Servidor de Inventario con Model Context Protocol

Servidor MCP desarrollado en Python que gestiona un inventario de productos utilizando una base de datos SQLite. Permite realizar operaciones CRUD y consultas analiticas sobre los datos del inventario.

## Requisitos

- Python 3.8 o superior
- fastmcp

## Estructura del proyecto

```
mcp_inventory/
|-- server.py           Servidor MCP con las herramientas del inventario
|-- database.py         Modulo de base de datos SQLite
|-- requirements.txt    Dependencias del proyecto
|-- test_pruebas.py     Script de pruebas funcionales
|-- README.md           Documentacion del proyecto
```

## Instalacion

1. Clonar el repositorio:

```bash
git clone https://github.com/isaacchpe/mcp_inventory.git
cd mcp_inventory
```

2. Crear un entorno virtual (opcional pero recomendado):

```bash
python -m venv venv
source venv/bin/activate   # En Linux/Mac
venv\Scripts\activate      # En Windows
```

3. Instalar dependencias:

```bash
pip install -r requirements.txt
```

## Ejecucion del servidor

```bash
python server.py
```

El servidor opera por el protocolo stdio y queda a la espera de un cliente MCP que se conecte. No muestra salida en consola por si mismo; la comunicacion ocurre a traves del flujo estandar de entrada y salida.

## Ejecucion de pruebas

```bash
python test_pruebas.py
```

El script ejecuta las nueve pruebas funcionales en orden:

1. Crear seis productos en la base de datos
2. Consultar un producto por su ID
3. Actualizar la cantidad de un producto
4. Eliminar un producto
5. Listar todos los productos registrados
6. Calcular el valor total del inventario
7. Consultar productos agotados (cantidad igual a cero)
8. Identificar el producto mas costoso
9. Obtener estadisticas generales del inventario

## Herramientas disponibles

| Herramienta | Descripcion |
|---|---|
| crear_producto | Registra un nuevo producto con nombre, categoria, cantidad y precio |
| consultar_producto | Busca un producto por su ID y devuelve sus datos |
| actualizar_producto | Modifica la cantidad disponible de un producto |
| eliminar_producto | Elimina un producto de la base de datos por su ID |
| listar_productos | Devuelve la lista completa de productos registrados |
| calcular_valor_total_inventario | Calcula la suma de cantidad por precio de todos los productos |
| productos_agotados | Lista los productos cuya cantidad es igual a cero |
| producto_mas_costoso | Identifica el producto con el precio mas alto |
| estadisticas_inventario | Devuelve totales, promedios de cantidad y precio, y valor total |