Skip to main content
Glama

check_version

Check end-of-life status and support information for software versions to determine security status and upgrade needs.

Instructions

Check EOL status and support information for software versions

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
productYesSoftware product name (e.g., python, nodejs, ubuntu)
versionNoSpecific version to check (e.g., 3.8, 16, 20.04)

Implementation Reference

  • The main handler function that executes the 'check_version' tool: validates input, fetches EOL cycle data from endoflife.date API for the given product/version, caches the query, and returns the relevant cycle information as JSON.
    private async handleCheckVersion(args: CheckVersionArgs) { const { product, version } = args; // Validate product exists 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 response = await this.axiosInstance.get(`/${product}.json`); const cycles = response.data as EOLCycle[]; const filteredCycles = version ? cycles.filter(cycle => cycle.cycle.startsWith(version)) : cycles; this.recentQueries.unshift({ product, version, response: filteredCycles, timestamp: new Date().toISOString() }); if (this.recentQueries.length > API_CONFIG.MAX_CACHED_QUERIES) { this.recentQueries.pop(); } return { content: [{ type: "text", text: JSON.stringify(filteredCycles, null, 2) }] }; } catch (error) { if (axios.isAxiosError(error)) { return { content: [{ type: "text", text: `EOL API error: ${error.response?.data?.message ?? error.message}` }], isError: true }; } throw error; } }
  • TypeScript interface defining the input arguments for 'check_version' tool and the type guard function to validate them.
    export interface CheckVersionArgs { product: string; version?: string; } export interface ListProductsArgs { filter?: string; } // Type guards export function isValidCheckVersionArgs(args: any): args is CheckVersionArgs { return ( typeof args === "object" && args !== null && "product" in args && typeof args.product === "string" && (args.version === undefined || typeof args.version === "string") ); }
  • src/index.ts:285-302 (registration)
    Registration of the 'check_version' tool in the ListToolsRequestSchema handler, including name, description, and JSON schema matching CheckVersionArgs.
    name: "check_version", description: "Check EOL status and support information for software versions", inputSchema: { type: "object", properties: { product: { type: "string", description: "Software product name (e.g., python, nodejs, ubuntu)", examples: ["python", "nodejs", "ubuntu"] }, version: { type: "string", description: "Specific version to check (e.g., 3.8, 16, 20.04)", examples: ["3.8", "16", "20.04"] } }, required: ["product"] }
  • Dispatch handler in CallToolRequestSchema that validates arguments using isValidCheckVersionArgs and delegates to the main handleCheckVersion function.
    case "check_version": if (!isValidCheckVersionArgs(args)) { throw new McpError( ErrorCode.InvalidParams, "Invalid version check arguments" ); } return this.handleCheckVersion(args);

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