create_product
Add new products to your ShipStation account by providing product data in JSON format to manage inventory and shipping operations.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| productData | Yes | JSON string containing the product data |
Implementation Reference
- src/tools/product-tools.js:58-71 (handler)The async handler function that executes the create_product tool logic: parses JSON input, calls ShipStation API to create product, returns formatted result or error.handler: async ({ productData }) => { try { const parsedData = JSON.parse(productData); const result = await shipStationClient.createProduct(parsedData); return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] }; } catch (error) { return { content: [{ type: "text", text: error.message }], isError: true }; } }
- src/tools/product-tools.js:55-57 (schema)Zod input schema definition for the create_product tool, requiring a JSON string of product data.schema: { productData: z.string().describe("JSON string containing the product data") },
- src/tools/product-tools.js:52-72 (registration)Tool definition object including name, description, schema, and handler for registration in the productTools array.{ name: "create_product", description: "Create a new product", schema: { productData: z.string().describe("JSON string containing the product data") }, handler: async ({ productData }) => { try { const parsedData = JSON.parse(productData); const result = await shipStationClient.createProduct(parsedData); return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] }; } catch (error) { return { content: [{ type: "text", text: error.message }], isError: true }; } } },
- src/api-client.js:144-146 (helper)ShipStationClient helper method that performs the actual API POST request to create a product.async createProduct(data) { return this.request('POST', '/products', data); }
- src/server.js:184-191 (registration)Generic registration loop in MCP server that registers all tools, including create_product from productTools.].forEach(tool => { server.tool( tool.name, tool.schema, tool.handler, { description: tool.description } ); });