Skip to main content
Glama
pshempel

MCP Time Server Node

by pshempel

subtract_time

Calculate a past date by subtracting a specified duration (years, months, days, hours, minutes, or seconds) from any given time, with timezone support.

Instructions

Subtract duration from a date/time

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
timeYesBase time
amountYesAmount to subtract
unitYesUnit of time
timezoneNoTimezone for calculation (default: system timezone)

Implementation Reference

  • The core handler function for the 'subtract_time' tool. It subtracts time by calling addTime with a negative amount, includes caching via withCache, timezone resolution, and debug logging.
    export function subtractTime(params: SubtractTimeParams): SubtractTimeResult { debug.timing('subtractTime called with params: %O', params); const { time, amount, unit, timezone } = params; const config = getConfig(); // Determine the effective timezone for cache key const effectiveTimezone = resolveTimezone(timezone, config.defaultTimezone); // Use withCache wrapper instead of manual cache management return withCache( `subtract_${time}_${amount}_${unit}_${effectiveTimezone}`, CacheTTL.CALCULATIONS, () => { debug.timing('Delegating to addTime with negated amount: %d', -amount); // Subtraction is just addition with negative amount const result = addTime({ time, amount: -amount, // Negate the amount unit, timezone, }); debug.timing('subtractTime returning: %O', result); return result; } ); }
  • Input schema for the 'subtract_time' tool, defining parameters, types, descriptions, and required fields.
    inputSchema: { type: 'object' as const, properties: { time: { type: 'string' as const, description: 'Base time' }, amount: { type: 'number' as const, description: 'Amount to subtract' }, unit: { type: 'string' as const, enum: ['years', 'months', 'days', 'hours', 'minutes', 'seconds'], description: 'Unit of time', }, timezone: { type: 'string' as const, description: 'Timezone for calculation (default: system timezone)', }, }, required: ['time', 'amount', 'unit'], },
  • src/index.ts:94-114 (registration)
    Registration of the 'subtract_time' tool in TOOL_DEFINITIONS array, including name, description, and schema.
    { name: 'subtract_time', description: 'Subtract duration from a date/time', inputSchema: { type: 'object' as const, properties: { time: { type: 'string' as const, description: 'Base time' }, amount: { type: 'number' as const, description: 'Amount to subtract' }, unit: { type: 'string' as const, enum: ['years', 'months', 'days', 'hours', 'minutes', 'seconds'], description: 'Unit of time', }, timezone: { type: 'string' as const, description: 'Timezone for calculation (default: system timezone)', }, }, required: ['time', 'amount', 'unit'], }, },
  • src/index.ts:263-263 (registration)
    Mapping of 'subtract_time' to the subtractTime handler function in TOOL_FUNCTIONS object.
    subtract_time: (params: unknown) => subtractTime(params as Parameters<typeof subtractTime>[0]),
  • TypeScript type definitions for SubtractTimeParams (aliases AddTimeParams) and SubtractTimeResult (aliases TimeCalculationResult). Note: full AddTimeParams and TimeCalculationResult defined above in lines 58-72.
    export type SubtractTimeParams = AddTimeParams; export interface TimeCalculationResult { original: string; result: string; unix_original: number; unix_result: number; } // Type alias for consistency with test export type AddTimeResult = TimeCalculationResult; export type SubtractTimeResult = TimeCalculationResult;
  • src/tools/index.ts:5-5 (registration)
    Export of subtractTime function from its module for use in src/index.ts.
    export { subtractTime } from './subtractTime';

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/pshempel/mcp-time-server-node'

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