create_webhook
Set up webhooks to receive real-time notifications for specific e-commerce events like order or shipment updates via the ShipBob API MCP Server. Define the event type and target URL for efficient system integration.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| eventType | Yes | Event type to subscribe to (e.g., 'order.created', 'shipment.created') | |
| isActive | No | Whether the webhook is active | |
| url | Yes | The URL to send webhook notifications to |
Input Schema (JSON Schema)
{
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"eventType": {
"description": "Event type to subscribe to (e.g., 'order.created', 'shipment.created')",
"type": "string"
},
"isActive": {
"description": "Whether the webhook is active",
"type": "boolean"
},
"url": {
"description": "The URL to send webhook notifications to",
"format": "uri",
"type": "string"
}
},
"required": [
"url",
"eventType"
],
"type": "object"
}
Implementation Reference
- src/tools/webhook-tools.js:34-54 (handler)The main handler function for the 'create_webhook' tool, which prepares the webhook data and calls the ShipBob API client to create the webhook.handler: async ({ url, eventType, isActive = true }) => { try { const webhookData = { url, eventType, isActive }; const newWebhook = await shipbobClient.createWebhook(webhookData); return { content: [{ type: "text", text: `Webhook created successfully: ${JSON.stringify(newWebhook, null, 2)}` }] }; } catch (error) { return { content: [{ type: "text", text: `Error creating webhook: ${error.message}` }], isError: true }; } }
- src/tools/webhook-tools.js:29-33 (schema)Zod schema defining the input parameters for the 'create_webhook' tool: url (required string URL), eventType (string), isActive (optional boolean).schema: { url: z.string().url().describe("The URL to send webhook notifications to"), eventType: z.string().describe("Event type to subscribe to (e.g., 'order.created', 'shipment.created')"), isActive: z.boolean().optional().describe("Whether the webhook is active") },
- src/server.js:54-54 (registration)Registration of the webhookTools array (which includes 'create_webhook') to the MCP server via the registerTools utility function.registerTools(webhookTools);
- src/api-client.js:123-125 (helper)ShipBobClient helper method that makes the actual API POST request to create a webhook.async createWebhook(webhookData) { return this.request('POST', '/webhooks', webhookData); }
- src/tools/index.js:5-5 (helper)Export of webhookTools from index.js, allowing it to be imported in server.js for registration.export { webhookTools } from './webhook-tools.js';