Skip to main content
Glama

get_all_details

Retrieve detailed lifecycle information for all versions of a software product, including end-of-life dates, support status, and upgrade recommendations, using the EOL MCP Server.

Instructions

Get comprehensive lifecycle details for all versions of a product

Input Schema

NameRequiredDescriptionDefault
productYesSoftware product name (e.g., python, nodejs)

Input Schema (JSON Schema)

{ "properties": { "product": { "description": "Software product name (e.g., python, nodejs)", "examples": [ "python", "nodejs" ], "type": "string" } }, "required": [ "product" ], "type": "object" }

Implementation Reference

  • The main handler function that implements the tool logic: fetches all EOL cycles for the given product, computes validation (EOL status, support) for each version, and returns a comprehensive JSON with product details, current date, and annotated cycles.
    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)
    Tool registration in ListToolsRequestSchema response: defines the tool name, description, and JSON input schema matching GetAllDetailsArgs.
    { 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"] } }
  • TypeScript interface for tool input arguments and corresponding type guard used for runtime validation in the dispatch handler.
    export interface GetAllDetailsArgs { product: string; } // Add type guard for GetAllDetailsArgs 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)
    Dispatch logic in CallToolRequestSchema handler: validates arguments using the type guard and invokes the tool handler.
    case "get_all_details": { if (!isValidGetAllDetailsArgs(args)) { throw new McpError( ErrorCode.InvalidParams, "Invalid get all details arguments" ); } return this.handleGetAllDetails(args); }

Other Tools

Related Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ducthinh993/mcp-server-endoflife'

If you have feedback or need assistance with the MCP directory API, please join our Discord server