const toolDefinitions = [
{
name: "listar_items",
description:
"Lista todos los items del inventario, opcionalmente filtrados por categoría",
inputSchema: {
type: "object",
properties: {
categoria: {
type: "string",
description:
"Categoría para filtrar (opcional). Ej: 'Electrónica', 'Papelería', 'Muebles'",
},
},
},
},
{
name: "buscar_item",
description:
"Busca un item específico por nombre (búsqueda parcial, case-insensitive)",
inputSchema: {
type: "object",
properties: {
nombre: {
type: "string",
description: "Nombre o parte del nombre del item a buscar",
},
},
required: ["nombre"],
},
},
{
name: "contar_items",
description:
"Cuenta el total de items en inventario, con cantidad total y valor total",
inputSchema: {
type: "object",
properties: {},
},
},
{
name: "crear_items",
description: "Crear uno o mas items en el inventario",
inputSchema: {
type: "object",
properties: {
items: {
type: "array",
description: "Lista de items a crear",
items: {
type: "object",
properties: {
nombre: {
type: "string",
description: "Nombre del item",
},
categoria: {
type: "string",
description: "Categoría del item",
},
cantidad: {
type: "number",
description: "Cantidad del item",
},
precio: {
type: "number",
description: "Precio unitario del item",
},
},
required: ["nombre", "categoria", "cantidad", "precio"],
},
},
},
},
},
{
name: "eliminar_item",
description: "Elimina un item del inventario por su ID de MongoDB (_id)",
inputSchema: {
type: "object",
properties: {
id: {
type: "string",
description: "ID de MongoDB del item a eliminar (formato: ObjectId en string)",
},
},
required: ["id"],
},
},
{
name: "actualizar_item",
description:
"Actualiza la información de un item existente por su ID de MongoDB (_id)",
inputSchema: {
type: "object",
properties: {
id: {
type: "string",
description:
"ID de MongoDB del item a actualizar (formato: ObjectId en string)",
},
nombre: {
type: "string",
description: "Nuevo nombre del item (opcional)",
},
categoria: {
type: "string",
description: "Nueva categoría del item (opcional)",
},
cantidad: {
type: "number",
description: "Nueva cantidad del item (opcional)",
},
precio: {
type: "number",
description: "Nuevo precio del item (opcional)",
},
},
required: ["id"],
},
},
{
name: "listar_categorias",
description: "Lista todas las categorías disponibles en el inventario",
inputSchema: {
type: "object",
properties: {},
},
},
{
name: "crear_categorias",
description: "Crea nuevas categorías en el inventario, 1 o más a la vez. Cada categoría solo necesita un nombre (ej: 'Electrónica', 'Deportes')",
inputSchema: {
type: "object",
properties: {
categorias: {
type: "array",
description: "Lista de categorías a crear. Ejemplo: [{\"nombre\": \"Electrodomésticos\"}, {\"nombre\": \"Deportes\"}]",
items: {
type: "object",
properties: {
nombre: {
type: "string",
description: "Nombre de la categoría (ej: 'Electrónica', 'Papelería', 'Muebles')",
},
},
required: ["nombre"],
},
},
},
required: ["categorias"],
},
},
];
module.exports = toolDefinitions;