subscribe_to_webhook
Subscribe to receive automated notifications about specific events from the ShipStation API by registering a webhook URL for order or shipment updates.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| targetUrl | Yes | URL to receive webhook notifications | |
| event | Yes | Event to subscribe to (e.g., ORDER_NOTIFY, SHIP_NOTIFY) | |
| storeId | No | Store ID to filter events (optional) |
Implementation Reference
- src/tools/webhook-tools.js:31-44 (handler)The MCP tool handler for 'subscribe_to_webhook'. Prepares the request data and delegates to the ShipStation API client.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 defining parameters for the subscribe_to_webhook tool: targetUrl (required URL), event (required string), storeId (optional 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)Tool registration block in MCP server where webhookTools (containing subscribe_to_webhook) is spread into the array and each tool is registered using server.tool().[ ...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 performs the actual POST request to the ShipStation API endpoint /webhooks/subscribe.async subscribeToWebhook(data) { return this.request('POST', '/webhooks/subscribe', data); }