get_subscription
Retrieve a subscription's details by its unique ID. Optionally include additional attributes for comprehensive data.
Instructions
Get a subscription by ID. GET /subscriptions/{subscriptionId}. Optional: include.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Subscription ID (required) | |
| include | No | Attributes to include |
Implementation Reference
- Handler function that validates input via Zod schema and delegates to subscriptionService.getSubscription.
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("; ")); } const { subscriptionId, include } = parsed.data; return handleToolCall(() => subscriptionService.getSubscription(client, subscriptionId, { include }) ); } - Zod schema for input validation: subscriptionId (required string) and include (optional string).
const schema = z.object({ subscriptionId: z.string().min(1, "subscriptionId is required"), include: z.string().optional(), }); - src/tools/subscriptions/getSubscription.ts:12-23 (registration)Tool definition with name 'get_subscription', description, and JSON Schema input schema.
const definition = { name: "get_subscription", description: "Get a subscription by ID. GET /subscriptions/{subscriptionId}. Optional: include.", inputSchema: { type: "object" as const, properties: { subscriptionId: { type: "string", description: "Subscription ID (required)" }, include: { type: "string", description: "Attributes to include" }, }, required: ["subscriptionId"], }, }; - src/tools/subscriptions/getSubscription.ts:36-39 (registration)Export of getSubscriptionTool combining definition and handler.
export const getSubscriptionTool: Tool = { definition, handler, }; - Service function that makes the actual HTTP GET request to /subscriptions/{subscriptionId} with optional include query parameter.
export async function getSubscription( client: Client, subscriptionId: string, params?: { include?: string } ): Promise<unknown> { const search = new URLSearchParams(); if (params?.include) search.append("include", params.include); const q = search.toString(); return client.get<unknown>(`/subscriptions/${subscriptionId}${q ? `?${q}` : ""}`); }