subscribe_to_webhook
Subscribe to specific events in the ShipStation API by providing a target URL and event type. Receive real-time notifications for updates like orders or shipments directly to your endpoint.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| event | Yes | Event to subscribe to (e.g., ORDER_NOTIFY, SHIP_NOTIFY) | |
| storeId | No | Store ID to filter events (optional) | |
| targetUrl | Yes | URL to receive webhook notifications |
Input Schema (JSON Schema)
{
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"event": {
"description": "Event to subscribe to (e.g., ORDER_NOTIFY, SHIP_NOTIFY)",
"type": "string"
},
"storeId": {
"description": "Store ID to filter events (optional)",
"type": "number"
},
"targetUrl": {
"description": "URL to receive webhook notifications",
"format": "uri",
"type": "string"
}
},
"required": [
"targetUrl",
"event"
],
"type": "object"
}
Implementation Reference
- src/tools/webhook-tools.js:31-44 (handler)The MCP tool handler function for 'subscribe_to_webhook'. It processes input parameters, calls the ShipStation API client method, and formats the success or error response.handler: async ({ targetUrl, event, storeId }) => { try { const data = { targetUrl, event, ...(storeId && { storeId }) }; const result = await shipStationClient.subscribeToWebhook(data); return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] }; } catch (error) { return { content: [{ type: "text", text: error.message }], isError: true }; } }
- src/tools/webhook-tools.js:26-30 (schema)Zod input schema for the 'subscribe_to_webhook' tool, validating targetUrl as URL, event as string, and optional storeId as number.schema: { targetUrl: z.string().url().describe("URL to receive webhook notifications"), event: z.string().describe("Event to subscribe to (e.g., ORDER_NOTIFY, SHIP_NOTIFY)"), storeId: z.number().optional().describe("Store ID to filter events (optional)") },
- src/server.js:174-191 (registration)Final registration of all MCP tools, including those from webhookTools (containing 'subscribe_to_webhook'), by spreading tool arrays and calling server.tool() for each.[ ...orderTools, ...shipmentTools, ...carrierTools, ...warehouseTools, ...productTools, ...customerTools, ...storeTools, ...webhookTools, ...fulfillmentTools ].forEach(tool => { server.tool( tool.name, tool.schema, tool.handler, { description: tool.description } ); });
- src/api-client.js:195-197 (helper)ShipStationClient helper method that executes the POST request to the ShipStation API endpoint '/webhooks/subscribe'.async subscribeToWebhook(data) { return this.request('POST', '/webhooks/subscribe', data); }