create_product
Add new products to your ShipBob fulfillment inventory by providing essential details like name, SKU, dimensions, weight, and value for accurate storage and shipping.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Product name | |
| sku | Yes | Stock keeping unit (unique identifier) | |
| barcode | No | Product barcode/UPC | |
| description | No | Product description | |
| weight | No | Weight in ounces | |
| length | No | Length in inches | |
| width | No | Width in inches | |
| height | No | Height in inches | |
| value | No | Declared value of the product |
Implementation Reference
- src/tools/product-tools.js:68-83 (handler)The handler function for the 'create_product' MCP tool. It invokes the ShipBob API client to create a new product and formats the response or error message.handler: async (productData) => { try { const newProduct = await shipbobClient.createProduct(productData); return { content: [{ type: "text", text: `Product created successfully: ${JSON.stringify(newProduct, null, 2)}` }] }; } catch (error) { return { content: [{ type: "text", text: `Error creating product: ${error.message}` }], isError: true }; } }
- src/tools/product-tools.js:57-67 (schema)Zod schema defining the input parameters for the 'create_product' tool, including required name and sku, and optional fields like dimensions and value.schema: { name: z.string().describe("Product name"), sku: z.string().describe("Stock keeping unit (unique identifier)"), barcode: z.string().optional().describe("Product barcode/UPC"), description: z.string().optional().describe("Product description"), weight: z.number().optional().describe("Weight in ounces"), length: z.number().optional().describe("Length in inches"), width: z.number().optional().describe("Width in inches"), height: z.number().optional().describe("Height in inches"), value: z.number().optional().describe("Declared value of the product") },
- src/server.js:23-32 (registration)Generic registration function used to register all tools from the productTools array (including 'create_product') with the MCP server.const registerTools = (toolsArray) => { toolsArray.forEach(tool => { server.tool( tool.name, tool.schema, tool.handler, { description: tool.description } ); }); };
- src/server.js:50-50 (registration)Specific call that registers the productTools array, which includes the 'create_product' tool.registerTools(productTools);
- src/api-client.js:63-65 (helper)ShipBobClient helper method that performs the actual API POST request to create a product, called by the tool handler.async createProduct(productData) { return this.request('POST', '/products', productData); }