Skip to main content
Glama
mattcoatsworth

ShipStation API MCP Server

list_orders

Retrieve and filter orders using pagination, sorting, and date-based criteria via the ShipStation API. Manage order lists by status, store, or creation/modification date for efficient order tracking and processing.

Input Schema

NameRequiredDescriptionDefault
createDateEndNoFilter by creation date (end)
createDateStartNoFilter by creation date (start)
modifyDateEndNoFilter by modification date (end)
modifyDateStartNoFilter by modification date (start)
orderStatusNoFilter by order status
pageNoPage number
pageSizeNoNumber of orders per page (max 500)
sortByNoSort orders by a specific field
sortDirNoSort direction
storeIdNoFilter by store ID

Input Schema (JSON Schema)

{ "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "createDateEnd": { "description": "Filter by creation date (end)", "type": "string" }, "createDateStart": { "description": "Filter by creation date (start)", "type": "string" }, "modifyDateEnd": { "description": "Filter by modification date (end)", "type": "string" }, "modifyDateStart": { "description": "Filter by modification date (start)", "type": "string" }, "orderStatus": { "description": "Filter by order status", "type": "string" }, "page": { "description": "Page number", "type": "number" }, "pageSize": { "description": "Number of orders per page (max 500)", "type": "number" }, "sortBy": { "description": "Sort orders by a specific field", "type": "string" }, "sortDir": { "description": "Sort direction", "enum": [ "ASC", "DESC" ], "type": "string" }, "storeId": { "description": "Filter by store ID", "type": "number" } }, "type": "object" }

Implementation Reference

  • The handler function that implements the core logic of the 'list_orders' tool by fetching orders via ShipStation API client and formatting the response.
    handler: async (params) => { try { const orders = await shipStationClient.getOrders(params); return { content: [{ type: "text", text: JSON.stringify(orders, null, 2) }] }; } catch (error) { return { content: [{ type: "text", text: error.message }], isError: true }; } }
  • Zod-based input schema defining optional parameters for pagination, sorting, and filtering orders.
    schema: { page: z.number().optional().describe("Page number"), pageSize: z.number().optional().describe("Number of orders per page (max 500)"), sortBy: z.string().optional().describe("Sort orders by a specific field"), sortDir: z.enum(["ASC", "DESC"]).optional().describe("Sort direction"), orderStatus: z.string().optional().describe("Filter by order status"), storeId: z.number().optional().describe("Filter by store ID"), createDateStart: z.string().optional().describe("Filter by creation date (start)"), createDateEnd: z.string().optional().describe("Filter by creation date (end)"), modifyDateStart: z.string().optional().describe("Filter by modification date (start)"), modifyDateEnd: z.string().optional().describe("Filter by modification date (end)") },
  • src/server.js:174-191 (registration)
    Registration of all tools, including 'list_orders' from orderTools array, to the MCP server via server.tool() calls in a forEach loop.
    [ ...orderTools, ...shipmentTools, ...carrierTools, ...warehouseTools, ...productTools, ...customerTools, ...storeTools, ...webhookTools, ...fulfillmentTools ].forEach(tool => { server.tool( tool.name, tool.schema, tool.handler, { description: tool.description } ); });
  • ShipStationClient helper method that makes the actual API GET request to the /orders endpoint with query parameters.
    async getOrders(params) { return this.request('GET', '/orders', null, params); }

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