get_time
Retrieve current time in specified timezone and format, supporting ISO, Unix timestamp, or locale-based display.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| timezone | No | ||
| format | No | iso |
Implementation Reference
- src/tools/dev-tools.ts:169-183 (handler)The execution handler for the get_time tool. It formats the current time using the formatTime helper based on input parameters and returns a JSON-formatted TimeInfo object.async ({ timezone, format }) => { return wrapToolExecution(async () => { const info = formatTime(new Date(), format as TimeFormat, timezone); return { content: [{ type: "text" as const, text: JSON.stringify(info, null, 2) }] }; }, { errorCode: ERROR_CODES.SYSTEM_INFO, context: "Failed to get time" }); }
- src/tools/dev-tools.ts:165-168 (schema)Zod input schema defining optional 'timezone' (string) and 'format' parameters (enum: iso, unix, locale; defaults to TIME_FORMAT constant).{ timezone: z.string().optional(), format: z.enum(["iso", "unix", "locale"]).optional().default(DEFAULTS.TIME_FORMAT) },
- src/tools/dev-tools.ts:163-185 (registration)Primary registration of the 'get_time' tool using server.tool(), including schema and inline handler.function registerGetTime(server: McpServer): void { server.tool("get_time", { timezone: z.string().optional(), format: z.enum(["iso", "unix", "locale"]).optional().default(DEFAULTS.TIME_FORMAT) }, async ({ timezone, format }) => { return wrapToolExecution(async () => { const info = formatTime(new Date(), format as TimeFormat, timezone); return { content: [{ type: "text" as const, text: JSON.stringify(info, null, 2) }] }; }, { errorCode: ERROR_CODES.SYSTEM_INFO, context: "Failed to get time" }); } ); }
- src/index.ts:67-67 (registration)Top-level invocation of registerDevTools(server) in main server setup, which calls registerGetTime.registerDevTools(server);
- src/tools/dev-tools.ts:187-214 (helper)Core helper function that implements the time formatting logic for unix timestamp, locale string, or ISO string, with optional timezone conversion.function formatTime(now: Date, format: TimeFormat, timezone?: string): TimeInfo { let time: string; switch (format) { case "unix": time = now.getTime().toString(); break; case "locale": time = now.toLocaleString(); break; case "iso": default: time = now.toISOString(); break; } const info: TimeInfo = { time, format, timezone: timezone || "UTC" }; if (timezone) { info.timeInTimezone = formatTimeInTimezone(now, timezone); } return info; }