create_shipment
Create a shipment for an order by specifying items, shipping method, and optional fulfillment center to initiate fulfillment through ShipBob's API.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| orderId | Yes | The ID of the order to create a shipment for | |
| fulfillmentCenterId | No | Preferred fulfillment center ID | |
| shippingMethod | Yes | Shipping method to use | |
| items | Yes | Items to ship |
Implementation Reference
- src/tools/fulfillment-tools.js:70-85 (handler)MCP tool handler for 'create_shipment' that calls the ShipBob API client to create a new shipment and returns success or error response.handler: async (shipmentData) => { try { const newShipment = await shipbobClient.createShipment(shipmentData); return { content: [{ type: "text", text: `Shipment created successfully: ${JSON.stringify(newShipment, null, 2)}` }] }; } catch (error) { return { content: [{ type: "text", text: `Error creating shipment: ${error.message}` }], isError: true }; } }
- src/tools/fulfillment-tools.js:59-69 (schema)Zod schema defining the input parameters for the create_shipment tool: orderId, optional fulfillmentCenterId, shippingMethod, and items array.schema: { orderId: z.string().describe("The ID of the order to create a shipment for"), fulfillmentCenterId: z.string().optional().describe("Preferred fulfillment center ID"), shippingMethod: z.string().describe("Shipping method to use"), items: z.array( z.object({ orderItemId: z.string().describe("Order item ID to ship"), quantity: z.number().describe("Quantity to ship") }) ).describe("Items to ship") },
- src/server.js:23-32 (registration)Utility function to register MCP tools from arrays like fulfillmentTools, which contains create_shipment. Called at line 53 for fulfillmentTools.const registerTools = (toolsArray) => { toolsArray.forEach(tool => { server.tool( tool.name, tool.schema, tool.handler, { description: tool.description } ); }); };
- src/server.js:53-53 (registration)Specific registration call for fulfillmentTools array, which includes the create_shipment tool.registerTools(fulfillmentTools);
- src/api-client.js:114-116 (helper)ShipBobClient helper method invoked by the tool handler to perform the actual POST request to the ShipBob /shipments API endpoint.async createShipment(shipmentData) { return this.request('POST', '/shipments', shipmentData); }