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