get_all_details
Retrieve comprehensive lifecycle details for all versions of a software product to check end-of-life dates, support status, and upgrade recommendations.
Instructions
Get comprehensive lifecycle details for all versions of a product
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| product | Yes | Software product name (e.g., python, nodejs) |
Implementation Reference
- src/index.ts:915-968 (handler)Executes the get_all_details tool: fetches all cycles for the product from EOL API, validates each against current date, and returns detailed JSON with validation status.private async handleGetAllDetails(args: GetAllDetailsArgs) { const { product } = args; if (!this.availableProducts.includes(product)) { return { content: [{ type: "text", text: `Invalid product: ${product}. Use list_products tool to see available products.` }], isError: true }; } try { const cycles = await this.getProductDetails(product); const currentDate = new Date(); // Add validation results for each cycle const detailedCycles = cycles.map(cycle => { const validation = this.validateVersion(cycle, currentDate); return { ...cycle, validation: { is_valid: validation.isValid, days_to_eol: validation.daysToEol, is_supported: validation.isSupported, message: validation.validationMessage } }; }); return { content: [{ type: "text", text: JSON.stringify({ product, current_date: currentDate.toISOString(), cycles: detailedCycles }, null, 2) }] }; } catch (error) { if (axios.isAxiosError(error)) { return { content: [{ type: "text", text: `API error: ${error.response?.data?.message ?? error.message}` }], isError: true }; } throw error; } }
- src/index.ts:363-377 (registration)Registers the get_all_details tool in the ListToolsRequestSchema handler, defining its name, description, and input schema.{ name: "get_all_details", description: "Get comprehensive lifecycle details for all versions of a product", inputSchema: { type: "object", properties: { product: { type: "string", description: "Software product name (e.g., python, nodejs)", examples: ["python", "nodejs"] } }, required: ["product"] } }
- src/types.ts:156-158 (schema)TypeScript interface defining the input arguments for the get_all_details tool.export interface GetAllDetailsArgs { product: string; }
- src/types.ts:161-168 (schema)Type guard function to validate input arguments match GetAllDetailsArgs interface.export function isValidGetAllDetailsArgs(args: any): args is GetAllDetailsArgs { return ( typeof args === "object" && args !== null && "product" in args && typeof args.product === "string" ); }
- src/index.ts:427-435 (registration)Dispatcher case in CallToolRequestSchema handler that validates args and invokes the get_all_details handler.case "get_all_details": { if (!isValidGetAllDetailsArgs(args)) { throw new McpError( ErrorCode.InvalidParams, "Invalid get all details arguments" ); } return this.handleGetAllDetails(args); }