get_subscription_rate_plan
Retrieve a specific rate plan for a subscription by providing the subscription ID and rate plan ID.
Instructions
Get a single rate plan on a subscription. GET /subscriptions/{subscriptionId}/rateplans/{ratePlanId}.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | Subscription ID (required) | |
| ratePlanId | Yes | Subscription rate plan ID (required) |
Implementation Reference
- The handler function that executes the tool logic. It validates input with zod schema, then calls the service layer to fetch the subscription rate plan.
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, ratePlanId } = parsed.data; return handleToolCall(() => subscriptionService.getSubscriptionRatePlan(client, subscriptionId, ratePlanId) ); } - Zod schema for validating tool inputs: subscriptionId (string) and ratePlanId (string).
const schema = z.object({ subscriptionId: z.string().min(1, "subscriptionId is required"), ratePlanId: z.string().min(1, "ratePlanId is required"), }); - Tool definition/registration object with name 'get_subscription_rate_plan', description, and input schema (JSON Schema format).
const definition = { name: "get_subscription_rate_plan", description: "Get a single rate plan on a subscription. GET /subscriptions/{subscriptionId}/rateplans/{ratePlanId}.", inputSchema: { type: "object" as const, properties: { subscriptionId: { type: "string", description: "Subscription ID (required)" }, ratePlanId: { type: "string", description: "Subscription rate plan ID (required)" }, }, required: ["subscriptionId", "ratePlanId"], }, }; - src/tools/subscriptions/index.ts:27-49 (registration)Registration of get_subscription_rate_plan in the registerSubscriptionTools() function (line 40) and its re-export (line 62).
export function registerSubscriptionTools(): Tool[] { return [ listSubscriptionsTool, getSubscriptionTool, createSubscriptionTool, updateSubscriptionTool, deleteSubscriptionTool, updateSubscriptionStatusTool, getSubscriptionUpcomingChargesTool, getSubscriptionInvoicesTool, getSubscriptionLogsTool, getSubscriptionExternalInvoicesTool, listSubscriptionRatePlansTool, getSubscriptionRatePlanTool, addSubscriptionRatePlanTool, updateSubscriptionRatePlanTool, removeSubscriptionRatePlanTool, getSubscriptionRatePlanChargeTool, addSubscriptionRatePlanChargeTool, updateSubscriptionRatePlanChargeTool, removeSubscriptionRatePlanChargeTool, ]; } - Service-layer function that makes the actual HTTP GET request to /subscriptions/{subscriptionId}/rateplans/{ratePlanId}.
export async function getSubscriptionRatePlan( client: Client, subscriptionId: string, ratePlanId: string ): Promise<unknown> { return client.get<unknown>( `/subscriptions/${subscriptionId}/rateplans/${ratePlanId}` ); }