current_time
Retrieve the current date and time in customizable formats and timezones to enable time-aware applications and accurate timestamping.
Instructions
Get the current date and time.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| format | Yes | The format of the time, default is empty string | YYYY-MM-DD HH:mm:ss |
| timezone | No | The timezone of the time, IANA timezone name, e.g. Asia/Shanghai |
Implementation Reference
- src/index.ts:160-169 (handler)The core handler function that computes the current time in UTC and the specified (or guessed) local timezone, formatting it according to the provided format string using dayjs.
function getCurrentTime(format: string, timezone?: string) { const utcTime = dayjs.utc(); const localTimezone = timezone ?? dayjs.tz.guess(); const localTime = dayjs().tz(localTimezone); return { utc: utcTime.format(format), local: localTime.format(format), timezone: localTimezone, }; } - src/tools.ts:3-33 (schema)Defines the Tool metadata including name, description, and input schema for the 'current_time' tool, specifying parameters for format (with enum) and optional timezone.
export const CURRENT_TIME: Tool = { name: 'current_time', description: 'Get the current date and time.', inputSchema: { type: 'object', properties: { format: { type: 'string', description: 'The format of the time, default is empty string', enum: [ 'h:mm A', 'h:mm:ss A', 'YYYY-MM-DD HH:mm:ss', 'YYYY-MM-DD', 'YYYY-MM', 'MM/DD/YYYY', 'MM/DD/YY', 'YYYY/MM/DD', 'YYYY/MM', ], default: 'YYYY-MM-DD HH:mm:ss', }, timezone: { type: 'string', description: 'The timezone of the time, IANA timezone name, e.g. Asia/Shanghai', default: undefined, }, }, required: ['format'], }, }; - src/index.ts:30-34 (registration)Registers the 'current_time' tool (imported as CURRENT_TIME) in the list of available tools returned by the MCP ListTools request handler.
server.setRequestHandler(ListToolsRequestSchema, async () => { return { tools: [CURRENT_TIME, RELATIVE_TIME, DAYS_IN_MONTH, GET_TIMESTAMP, CONVERT_TIME, GET_WEEK_YEAR], }; }); - src/index.ts:40-56 (handler)The dispatch handler in the CallToolRequestSchema that validates arguments, calls getCurrentTime, and formats the MCP response for the 'current_time' tool.
case 'current_time': { if (!checkCurrentTimeArgs(args)) { throw new Error(`Invalid arguments for tool: [${name}]`); } const { format, timezone } = args; const result = getCurrentTime(format, timezone); return { success: true, content: [ { type: 'text', text: `Current UTC time is ${result.utc}, and the time in ${result.timezone} is ${result.local}.`, }, ], }; } - src/index.ts:203-211 (helper)Type guard helper function to validate the arguments for the 'current_time' tool, checking for required 'format' string and optional 'timezone' string.
function checkCurrentTimeArgs(args: unknown): args is { format: string, timezone?: string } { return ( typeof args === 'object' && args !== null && 'format' in args && typeof args.format === 'string' && ('timezone' in args ? typeof args.timezone === 'string' : true) ); }