Skip to main content
Glama

Google Cloud MCP Server

by krzko
time.ts1.55 kB
/** * Time-related utility functions */ import { GcpMcpError } from "./error.js"; /** * Parses a relative time string into a Date object * * @param timeString A string representing a relative time (e.g., "1h", "2d", "30m") * @returns A Date object representing the time */ export function parseRelativeTime(timeString: string): Date { // If it's an ISO date string, parse it directly if (timeString.includes("T") && timeString.includes(":")) { const date = new Date(timeString); if (!isNaN(date.getTime())) { return date; } } // Parse relative time format (e.g., "1h", "2d", "30m") const match = timeString.match(/^(\d+)([smhdw])$/); if (!match) { throw new GcpMcpError( `Invalid time format: ${timeString}. Use format like "30s", "5m", "2h", "1d", or "1w".`, "INVALID_ARGUMENT", 400, ); } const value = parseInt(match[1]); const unit = match[2]; const now = new Date(); switch (unit) { case "s": // seconds return new Date(now.getTime() - value * 1000); case "m": // minutes return new Date(now.getTime() - value * 60 * 1000); case "h": // hours return new Date(now.getTime() - value * 60 * 60 * 1000); case "d": // days return new Date(now.getTime() - value * 24 * 60 * 60 * 1000); case "w": // weeks return new Date(now.getTime() - value * 7 * 24 * 60 * 60 * 1000); default: throw new GcpMcpError( `Invalid time unit: ${unit}. Use s, m, h, d, or w.`, "INVALID_ARGUMENT", 400, ); } }

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/krzko/google-cloud-mcp'

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