Skip to main content
Glama
mattcoatsworth

ShipStation API MCP Server

hold_order_until

Delays order processing in ShipStation until a specified date to manage fulfillment timing and prevent premature shipment.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
orderIdYesOrder ID to hold
holdUntilDateYesDate to hold until (YYYY-MM-DD)

Implementation Reference

  • MCP tool handler that extracts orderId and holdUntilDate from params, calls shipStationClient.holdOrderUntil API method, and returns JSON response or error.
    handler: async ({ orderId, holdUntilDate }) => { try { const result = await shipStationClient.holdOrderUntil({ orderId, holdUntilDate }); return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] }; } catch (error) { return { content: [{ type: "text", text: error.message }], isError: true }; } }
  • Input schema using Zod for validating orderId (number) and holdUntilDate (string YYYY-MM-DD).
    schema: { orderId: z.number().describe("Order ID to hold"), holdUntilDate: z.string().describe("Date to hold until (YYYY-MM-DD)")
  • Complete tool definition object in orderTools array, which is imported and registered via server.tool() in server.js.
    { name: "hold_order_until", description: "Hold an order until a specified date", schema: { orderId: z.number().describe("Order ID to hold"), holdUntilDate: z.string().describe("Date to hold until (YYYY-MM-DD)") }, handler: async ({ orderId, holdUntilDate }) => { try { const result = await shipStationClient.holdOrderUntil({ orderId, holdUntilDate }); return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] }; } catch (error) { return { content: [{ type: "text", text: error.message }], isError: true }; } } }
  • ShipStationClient helper method that makes the actual POST request to ShipStation API endpoint /orders/holduntil.
    async holdOrderUntil(data) { return this.request('POST', '/orders/holduntil', data); }
  • src/server.js:184-191 (registration)
    MCP server.tool() registration loop that spreads orderTools (including hold_order_until) and registers each tool.
    ].forEach(tool => { server.tool( tool.name, tool.schema, tool.handler, { description: tool.description } ); });

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/mattcoatsworth/shipstation-mcp-server'

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