Skip to main content
Glama
createItem.ts1.69 kB
import type { McpTool } from '../types.js'; import type { CreateItemRequest } from '../../api/types/item.js'; import { z } from 'zod'; const taxSchema = z.object({ name: z.string().describe('Tax name'), }).optional(); const paramsSchema = z.object({ name: z.string().describe('Unique item name'), description: z.string().describe('Item description'), unit_price: z.number().min(0).describe('Unit price (must be >= 0)'), unit: z.string().optional().describe('Unit of measurement'), tax: taxSchema.describe('Tax information'), }); export const createItemTool: McpTool = { name: 'item_create', description: 'Create a new item/product', inputSchema: { type: 'object', required: ['name', 'description', 'unit_price'], properties: { name: { type: 'string', description: 'Unique item name' }, description: { type: 'string', description: 'Item description' }, unit_price: { type: 'number', minimum: 0, description: 'Unit price (must be >= 0)' }, unit: { type: 'string', description: 'Unit of measurement' }, tax: { type: 'object', properties: { name: { type: 'string', description: 'Tax name' }, }, }, }, }, handler: async (args, server) => { const params = paramsSchema.parse(args); const itemData: CreateItemRequest = { name: params.name, description: params.description, unit_price: params.unit_price, unit: params.unit, tax: params.tax, }; const result = await server.itemsEndpoint.create(itemData); return { success: true, item: result, message: `Item "${result.name}" created successfully`, }; }, };

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/andreagroferreira/invoiceexpress-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server