Skip to main content
Glama
mattcoatsworth

ShipStation API MCP Server

list_fulfillments

Retrieve fulfillment records from ShipStation with filters for provider, order, status, and creation date to track order processing and shipping status.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
fulfillmentProviderIdNoFilter by fulfillment provider ID
orderIdNoFilter by order ID
statusNoFilter by status
createDateStartNoFilter by creation date (start)
createDateEndNoFilter by creation date (end)

Implementation Reference

  • Handler function for the list_fulfillments tool. Calls shipStationClient.getFulfillments with provided parameters and returns the JSON-stringified fulfillments or an error message.
    handler: async (params) => { try { const fulfillments = await shipStationClient.getFulfillments(params); return { content: [{ type: "text", text: JSON.stringify(fulfillments, null, 2) }] }; } catch (error) { return { content: [{ type: "text", text: error.message }], isError: true }; } }
  • Zod-based input schema defining optional filtering parameters for the list_fulfillments tool.
    schema: { fulfillmentProviderId: z.number().optional().describe("Filter by fulfillment provider ID"), orderId: z.number().optional().describe("Filter by order ID"), status: z.string().optional().describe("Filter by status"), createDateStart: z.string().optional().describe("Filter by creation date (start)"), createDateEnd: z.string().optional().describe("Filter by creation date (end)") },
  • Full tool definition object for list_fulfillments, including name, description, schema, and handler, within the fulfillmentTools array.
    { name: "list_fulfillments", description: "List fulfillments with optional filtering parameters", schema: { fulfillmentProviderId: z.number().optional().describe("Filter by fulfillment provider ID"), orderId: z.number().optional().describe("Filter by order ID"), status: z.string().optional().describe("Filter by status"), createDateStart: z.string().optional().describe("Filter by creation date (start)"), createDateEnd: z.string().optional().describe("Filter by creation date (end)") }, handler: async (params) => { try { const fulfillments = await shipStationClient.getFulfillments(params); return { content: [{ type: "text", text: JSON.stringify(fulfillments, null, 2) }] }; } catch (error) { return { content: [{ type: "text", text: error.message }], isError: true }; } } },
  • src/server.js:173-191 (registration)
    MCP server registration loop that includes fulfillmentTools (containing list_fulfillments) and calls server.tool for each tool.
    // Register all tools [ ...orderTools, ...shipmentTools, ...carrierTools, ...warehouseTools, ...productTools, ...customerTools, ...storeTools, ...webhookTools, ...fulfillmentTools ].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