delete_subscription
Delete a subscription using its ID. Consider archiving instead to end subscriptions without removing records.
Instructions
Delete a subscription. DELETE /subscriptions/{subscriptionId}. Warning: Prefer changing status to archived (update_subscription_status) instead of deleting when you want to end a subscription without removing it from records.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Subscription ID (required) |
Implementation Reference
- The handler function that executes the delete_subscription tool logic. It validates input via Zod schema, then calls subscriptionService.deleteSubscription().
async function handler(client: Client, args: Record<string, unknown> | undefined) { const parsed = schema.safeParse(args); if (!parsed.success) { return errorResult(parsed.error.errors.map((e) => e.message).join("; ")); } return handleToolCall(() => subscriptionService.deleteSubscription(client, parsed.data.subscriptionId) ); } - The tool definition including name 'delete_subscription', description, and input schema (requires subscriptionId string).
const definition = { name: "delete_subscription", description: "Delete a subscription. DELETE /subscriptions/{subscriptionId}. Warning: Prefer changing status to archived (update_subscription_status) instead of deleting when you want to end a subscription without removing it from records.", inputSchema: { type: "object" as const, properties: { subscriptionId: { type: "string", description: "Subscription ID (required)" }, }, required: ["subscriptionId"], }, }; - Zod validation schema for the tool input, requiring 'subscriptionId' as a non-empty string.
const schema = z.object({ subscriptionId: z.string().min(1, "subscriptionId is required"), }); - src/tools/subscriptions/index.ts:33-33 (registration)Registration of deleteSubscriptionTool in the registerSubscriptionTools() array, making it available as a tool.
deleteSubscriptionTool, - The service helper function that performs the actual HTTP DELETE request to /subscriptions/{subscriptionId}.
export async function deleteSubscription( client: Client, subscriptionId: string ): Promise<Record<string, unknown>> { const result = await client.delete<Record<string, unknown>>( `/subscriptions/${subscriptionId}` ); return Object.keys(result ?? {}).length ? result : { success: true, message: "Subscription deleted" }; }