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