Koskamo

Date Math MCP

Deterministic date and time math for AI agents via MCP. Supports business day calculations with country-specific holidays, date arithmetic, DST-aware timezone conversion, meeting overlap finding, cron explanation, natural language date parsing, city time lookup, RRULE expansion, and SLA deadline calculation.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Date Math MCP logo, by JowenDelaPenaCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-07Published by JowenDelaPena
You need:no signup, no API keys
MCP endpoint (Streamable HTTP)
https://date-math.datemath.workers.dev/mcp
Vendor documentation

What its tools do

11 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

11 of 11 have a description · 11 of 11 declare behavior hints · 4 of 11 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Calculate business days between dates excluding holidays
  • Convert times between IANA time zones with DST awareness
  • Parse natural language dates like 'next Friday' into ISO datetimes
  • Find overlapping working hours for meetings across time zones

Source and maintenance

Community listingRegistry 1.3.0
Maintenance checked

Protocol and capabilities

Server
date-math 1.3.0
MCP protocol negotiated in check
2025-11-25
Tools
11 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {}
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Exact date/time math. The first 25 tool calls per day are free; after that each call costs $0.001 (x402, USDC on Base). Docs: https://date-math.datemath.workers.dev/llms.txt

Tools

11 advertised

date_diff — Date difference
Advertised by the server during the last successful anonymous check.
Advertised read-only

Difference between two dates or datetimes: calendar (Y/M/D), total days/weeks/hours, and business days (weekdays in [from, to) minus holidays; pass country to exclude its public holidays). First 25 calls per day are free, then $0.001 per call (x402).

date_diff input schema
{
  "type": "object",
  "required": [
    "from",
    "to"
  ],
  "properties": {
    "to": {
      "type": "string",
      "example": "2026-11-07T14:30:00Z",
      "description": "YYYY-MM-DD, or ISO 8601 datetime with Z or offset"
    },
    "from": {
      "type": "string",
      "example": "2026-11-07T14:30:00Z",
      "description": "YYYY-MM-DD, or ISO 8601 datetime with Z or offset"
    },
    "country": {
      "type": "string",
      "example": "US",
      "pattern": "^[A-Za-z]{2}$",
      "description": "ISO 3166-1 alpha-2 country code (207 countries); its public holidays (2000–2050) are excluded from business days"
    },
    "holidays": {
      "type": "array",
      "items": {
        "type": "string",
        "example": "2026-11-07",
        "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
      },
      "maxItems": 1000,
      "description": "Dates excluded from business-day counts (weekends are always excluded)"
    }
  },
  "description": "business_days counts weekdays in [from, to) minus holidays; only for date inputs."
}
date_diff output schema
{
  "type": "object",
  "required": [
    "from",
    "to",
    "direction",
    "total_days",
    "total_weeks",
    "calendar",
    "iso_duration"
  ],
  "properties": {
    "to": {
      "type": "string"
    },
    "from": {
      "type": "string"
    },
    "calendar": {
      "type": "object",
      "required": [
        "years",
        "months",
        "days"
      ],
      "properties": {
        "days": {
          "type": "integer"
        },
        "years": {
          "type": "integer"
        },
        "months": {
          "type": "integer"
        }
      }
    },
    "direction": {
      "enum": [
        "forward",
        "backward"
      ],
      "type": "string"
    },
    "total_days": {
      "type": "integer"
    },
    "total_hours": {
      "type": "integer",
      "description": "Datetime inputs only"
    },
    "total_weeks": {
      "type": "integer"
    },
    "iso_duration": {
      "type": "string",
      "example": "P1M15D"
    },
    "business_days": {
      "type": "integer",
      "description": "Weekdays in [from, to) minus holidays (date inputs only)"
    },
    "total_minutes": {
      "type": "integer"
    },
    "total_seconds": {
      "type": "integer"
    }
  }
}
date_diff annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
date_add — Add to a date
Advertised by the server during the last successful anonymous check.
Advertised read-only

Add or subtract years/months/weeks/days/business days/hours/minutes/seconds. Month-end clamping; business days skip weekends, given holidays, and the public holidays of an optional country. First 25 calls per day are free, then $0.001 per call (x402).

date_add input schema
{
  "type": "object",
  "required": [
    "date"
  ],
  "properties": {
    "date": {
      "type": "string",
      "example": "2026-11-07T14:30:00Z",
      "description": "YYYY-MM-DD, or ISO 8601 datetime with Z or offset"
    },
    "days": {
      "type": "integer"
    },
    "hours": {
      "type": "integer"
    },
    "weeks": {
      "type": "integer"
    },
    "years": {
      "type": "integer"
    },
    "months": {
      "type": "integer"
    },
    "country": {
      "type": "string",
      "example": "US",
      "pattern": "^[A-Za-z]{2}$",
      "description": "ISO 3166-1 alpha-2 country code (207 countries); its public holidays (2000–2050) are excluded from business days"
    },
    "minutes": {
      "type": "integer"
    },
    "seconds": {
      "type": "integer"
    },
    "holidays": {
      "type": "array",
      "items": {
        "type": "string",
        "example": "2026-11-07",
        "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
      },
      "maxItems": 1000,
      "description": "Dates excluded from business-day counts (weekends are always excluded)"
    },
    "business_days": {
      "type": "integer",
      "description": "Applied after calendar units; skips weekends and holidays"
    }
  },
  "description": "Negative values subtract. Months clamp to month end (Jan 31 + 1 month = Feb 28/29). Time units require a datetime input."
}
date_add output schema
{
  "type": "object",
  "required": [
    "input",
    "result",
    "weekday",
    "is_business_day"
  ],
  "properties": {
    "input": {
      "type": "string"
    },
    "result": {
      "type": "string",
      "description": "YYYY-MM-DD, or ISO datetime (UTC) for datetime input"
    },
    "weekday": {
      "type": "string"
    },
    "is_business_day": {
      "type": "boolean"
    }
  }
}
date_add annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
timezone_convert — Convert time zones
Advertised by the server during the last successful anonymous check.
Advertised read-only

Convert an instant or local wall-clock time between IANA time zones (DST-aware). First 25 calls per day are free, then $0.001 per call (x402).

timezone_convert input schema
{
  "type": "object",
  "required": [
    "to_timezone"
  ],
  "properties": {
    "datetime": {
      "type": "string",
      "description": "ISO 8601 with offset, local YYYY-MM-DDTHH:MM[:SS] (needs from_timezone), or \"now\" (default)"
    },
    "to_timezone": {
      "type": "string",
      "example": "America/New_York"
    },
    "from_timezone": {
      "type": "string",
      "example": "Asia/Manila"
    }
  }
}
timezone_convert output schema
{
  "type": "object",
  "required": [
    "utc",
    "unix_seconds",
    "from",
    "to"
  ],
  "properties": {
    "to": {
      "type": "object",
      "required": [
        "timezone",
        "datetime",
        "date",
        "time",
        "weekday",
        "utc_offset"
      ],
      "properties": {
        "date": {
          "type": "string"
        },
        "time": {
          "type": "string"
        },
        "weekday": {
          "type": "string"
        },
        "datetime": {
          "type": "string",
          "description": "ISO 8601 with offset"
        },
        "timezone": {
          "type": "string"
        },
        "utc_offset": {
          "type": "string"
        }
      }
    },
    "utc": {
      "type": "string"
    },
    "from": {
      "type": "object",
      "required": [
        "timezone",
        "datetime",
        "date",
        "time",
        "weekday",
        "utc_offset"
      ],
      "properties": {
        "date": {
          "type": "string"
        },
        "time": {
          "type": "string"
        },
        "weekday": {
          "type": "string"
        },
        "datetime": {
          "type": "string",
          "description": "ISO 8601 with offset"
        },
        "timezone": {
          "type": "string"
        },
        "utc_offset": {
          "type": "string"
        }
      }
    },
    "unix_seconds": {
      "type": "integer"
    }
  }
}
timezone_convert annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
date_info — Date facts
Advertised by the server during the last successful anonymous check.
Advertised read-only

Calendar facts for a date: weekday, ISO week, quarter, day of year, leap year, weekend. First 25 calls per day are free, then $0.001 per call (x402).

date_info input schema
{
  "type": "object",
  "required": [
    "date"
  ],
  "properties": {
    "date": {
      "type": "string",
      "example": "2026-11-07",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    }
  }
}
date_info output schema
{
  "type": "object",
  "required": [
    "date",
    "weekday",
    "iso_week",
    "quarter",
    "day_of_year",
    "is_leap_year",
    "is_weekend"
  ],
  "properties": {
    "date": {
      "type": "string"
    },
    "quarter": {
      "type": "integer"
    },
    "weekday": {
      "type": "string"
    },
    "iso_week": {
      "type": "integer"
    },
    "iso_year": {
      "type": "integer"
    },
    "is_weekend": {
      "type": "boolean"
    },
    "day_of_year": {
      "type": "integer"
    },
    "days_in_year": {
      "type": "integer"
    },
    "is_leap_year": {
      "type": "boolean"
    },
    "unix_seconds": {
      "type": "integer"
    },
    "days_in_month": {
      "type": "integer"
    },
    "weekday_number": {
      "type": "integer",
      "description": "ISO: Monday=1 … Sunday=7"
    },
    "days_remaining_in_year": {
      "type": "integer"
    }
  }
}
date_info annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
public_holidays — Public holidays
Advertised by the server during the last successful anonymous check.
Advertised read-only

Public holidays for a country and year: 207 countries, 2000–2050. Lunar or government-proclaimed dates are rule-based estimates. First 25 calls per day are free, then $0.001 per call (x402).

public_holidays input schema
{
  "type": "object",
  "required": [
    "country"
  ],
  "properties": {
    "year": {
      "type": "integer",
      "maximum": 2050,
      "minimum": 2000,
      "description": "Defaults to the current year"
    },
    "country": {
      "type": "string",
      "example": "US",
      "pattern": "^[A-Za-z]{2}$",
      "description": "ISO 3166-1 alpha-2 country code (207 countries); its public holidays (2000–2050) are excluded from business days"
    }
  }
}
public_holidays output schema
{
  "type": "object",
  "required": [
    "country",
    "year",
    "count",
    "holidays"
  ],
  "properties": {
    "type": {
      "enum": [
        "public"
      ],
      "type": "string"
    },
    "year": {
      "type": "integer"
    },
    "count": {
      "type": "integer"
    },
    "source": {
      "type": "string",
      "description": "Data attribution"
    },
    "country": {
      "type": "string"
    },
    "holidays": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "date",
          "name"
        ],
        "properties": {
          "date": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "substitute": {
            "type": "boolean",
            "description": "Observed on another day because the holiday falls on a weekend"
          }
        }
      }
    },
    "country_name": {
      "type": "string"
    }
  }
}
public_holidays annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
working_hours_overlap — Working-hours overlap
Advertised by the server during the last successful anonymous check.
Advertised read-only

Find when working hours overlap across time zones (meeting windows). Per-participant hours optional; skips weekends by default; up to 14 days. First 25 calls per day are free, then $0.001 per call (x402).

working_hours_overlap input schema
{
  "type": "object",
  "properties": {
    "date": {
      "type": "string",
      "description": "YYYY-MM-DD in the first participant's zone; defaults to today"
    },
    "days": {
      "type": "integer",
      "maximum": 14,
      "minimum": 1,
      "description": "Number of days to search (default 1)"
    },
    "work_end": {
      "type": "string",
      "example": "17:00",
      "pattern": "^([01]\\d|2[0-4]):[0-5]\\d$"
    },
    "timezones": {
      "type": "array",
      "items": {
        "type": "string",
        "description": "IANA time zone, e.g. Asia/Manila"
      },
      "maxItems": 10,
      "minItems": 2
    },
    "work_start": {
      "type": "string",
      "example": "09:00",
      "pattern": "^([01]\\d|2[0-4]):[0-5]\\d$"
    },
    "participants": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "timezone"
        ],
        "properties": {
          "timezone": {
            "type": "string",
            "description": "IANA time zone, e.g. Asia/Manila"
          },
          "work_end": {
            "type": "string",
            "example": "09:00",
            "pattern": "^([01]\\d|2[0-4]):[0-5]\\d$"
          },
          "work_start": {
            "type": "string",
            "example": "09:00",
            "pattern": "^([01]\\d|2[0-4]):[0-5]\\d$"
          }
        }
      },
      "maxItems": 10,
      "minItems": 2
    },
    "skip_weekends": {
      "type": "boolean",
      "description": "Default true"
    }
  },
  "description": "Pass \"timezones\" (strings) or \"participants\" (objects with their own hours)."
}
working_hours_overlap output schema
{
  "type": "object",
  "required": [
    "reference_timezone",
    "total_overlap_minutes",
    "windows"
  ],
  "properties": {
    "to": {
      "type": "string"
    },
    "from": {
      "type": "string"
    },
    "windows": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "local": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "end": {
                  "type": "string"
                },
                "start": {
                  "type": "string"
                },
                "timezone": {
                  "type": "string"
                }
              }
            }
          },
          "end_utc": {
            "type": "string"
          },
          "start_utc": {
            "type": "string"
          },
          "duration_minutes": {
            "type": "number"
          }
        }
      }
    },
    "participants": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "reference_timezone": {
      "type": "string"
    },
    "total_overlap_minutes": {
      "type": "number"
    }
  }
}
working_hours_overlap annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
cron_schedule — Cron schedule
Advertised by the server during the last successful anonymous check.
Advertised read-only

Explain a cron expression in plain English and list its next run times in any time zone. First 25 calls per day are free, then $0.001 per call (x402).

cron_schedule input schema
{
  "type": "object",
  "required": [
    "expression"
  ],
  "properties": {
    "from": {
      "type": "string",
      "description": "ISO 8601 datetime with offset; default now"
    },
    "count": {
      "type": "integer",
      "maximum": 100,
      "minimum": 1,
      "description": "Default 5"
    },
    "timezone": {
      "type": "string",
      "description": "Default UTC"
    },
    "expression": {
      "type": "string",
      "example": "0 9 * * 1-5",
      "description": "5- or 6-field cron expression"
    }
  }
}
cron_schedule output schema
{
  "type": "object",
  "required": [
    "expression",
    "timezone",
    "description",
    "next_runs"
  ],
  "properties": {
    "from": {
      "type": "string"
    },
    "timezone": {
      "type": "string"
    },
    "next_runs": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "utc": {
            "type": "string"
          },
          "local": {
            "type": "string"
          },
          "weekday": {
            "type": "string"
          }
        }
      }
    },
    "expression": {
      "type": "string"
    },
    "description": {
      "type": "string"
    }
  }
}
cron_schedule annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
parse_date_text — Parse natural-language dates
Advertised by the server during the last successful anonymous check.
Advertised read-only

Resolve natural-language dates like "next Friday at 3pm", "in 2 weeks" or "Dec 25 to Jan 2" to exact datetimes, relative to a reference time and time zone. First 25 calls per day are free, then $0.001 per call (x402).

parse_date_text input schema
{
  "type": "object",
  "required": [
    "text"
  ],
  "properties": {
    "text": {
      "type": "string",
      "example": "next friday at 3pm",
      "maxLength": 1000
    },
    "timezone": {
      "type": "string",
      "description": "Default UTC"
    },
    "reference": {
      "type": "string",
      "description": "ISO 8601 datetime the text is relative to; default now"
    },
    "forward_date": {
      "type": "boolean",
      "description": "Prefer future dates for ambiguous text (default true)"
    }
  }
}
parse_date_text output schema
{
  "type": "object",
  "required": [
    "text",
    "timezone",
    "count",
    "results"
  ],
  "properties": {
    "text": {
      "type": "string"
    },
    "count": {
      "type": "integer"
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "end": {
            "type": "object",
            "required": [
              "utc",
              "local"
            ],
            "properties": {
              "utc": {
                "type": "string"
              },
              "date": {
                "type": "string"
              },
              "local": {
                "type": "string"
              },
              "weekday": {
                "type": "string"
              }
            }
          },
          "index": {
            "type": "integer"
          },
          "start": {
            "type": "object",
            "required": [
              "utc",
              "local"
            ],
            "properties": {
              "utc": {
                "type": "string"
              },
              "date": {
                "type": "string"
              },
              "local": {
                "type": "string"
              },
              "weekday": {
                "type": "string"
              }
            }
          },
          "certain": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "matched": {
            "type": "string"
          }
        }
      }
    },
    "timezone": {
      "type": "string"
    },
    "reference": {
      "type": "string"
    }
  }
}
parse_date_text annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
city_time — City time zone and local time
Advertised by the server during the last successful anonymous check.
Advertised read-only

Find the IANA time zone and current local time for up to 10 cities by name ("Cebu", "São Paulo", "Springfield" + country). 7,000+ cities. First 25 calls per day are free, then $0.001 per call (x402).

city_time input schema
{
  "type": "object",
  "properties": {
    "at": {
      "type": "string",
      "description": "ISO 8601 instant to show local time for; default now"
    },
    "city": {
      "type": "string",
      "example": "Cebu"
    },
    "cities": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 10,
      "minItems": 1
    },
    "country": {
      "type": "string",
      "example": "US",
      "pattern": "^[A-Za-z]{2}$",
      "description": "ISO 3166-1 alpha-2 country code (207 countries); its public holidays (2000–2050) are excluded from business days"
    }
  },
  "description": "Pass \"city\" or \"cities\"."
}
city_time output schema
{
  "type": "object",
  "required": [
    "at",
    "results"
  ],
  "properties": {
    "at": {
      "type": "string"
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "best": {
            "type": [
              "object",
              "null"
            ],
            "properties": {
              "name": {
                "type": "string"
              },
              "match": {
                "type": "string"
              },
              "region": {
                "type": "string"
              },
              "country": {
                "type": "string"
              },
              "weekday": {
                "type": "string"
              },
              "timezone": {
                "type": "string"
              },
              "local_time": {
                "type": "string"
              },
              "population": {
                "type": "integer"
              },
              "utc_offset": {
                "type": "string"
              }
            }
          },
          "found": {
            "type": "boolean"
          },
          "query": {
            "type": "string"
          },
          "alternatives": {
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        }
      }
    }
  }
}
city_time annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
recurring_dates — Expand recurring events (RRULE)
Advertised by the server during the last successful anonymous check.
Advertised read-only

Expand an iCalendar RRULE ("every 2nd Tuesday", "Mon/Wed until June") into concrete dates and times in a time zone, DST-aware, with optional excluded dates. First 25 calls per day are free, then $0.001 per call (x402).

recurring_dates input schema
{
  "type": "object",
  "required": [
    "rrule",
    "start"
  ],
  "properties": {
    "count": {
      "type": "integer",
      "maximum": 200,
      "minimum": 1,
      "description": "Default 10"
    },
    "rrule": {
      "type": "string",
      "example": "FREQ=MONTHLY;BYDAY=2TU",
      "description": "iCalendar RRULE (no DTSTART/TZID inside)"
    },
    "start": {
      "type": "string",
      "description": "Local start date or datetime in timezone, e.g. 2026-01-01T10:00"
    },
    "exclude": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Local dates (YYYY-MM-DD) to skip"
    },
    "timezone": {
      "type": "string",
      "description": "Default UTC"
    }
  }
}
recurring_dates output schema
{
  "type": "object",
  "required": [
    "rrule",
    "timezone",
    "count",
    "occurrences"
  ],
  "properties": {
    "count": {
      "type": "integer"
    },
    "rrule": {
      "type": "string"
    },
    "start": {
      "type": "string"
    },
    "timezone": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "occurrences": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "utc": {
            "type": "string"
          },
          "date": {
            "type": "string"
          },
          "local": {
            "type": "string"
          },
          "weekday": {
            "type": "string"
          }
        }
      }
    }
  }
}
recurring_dates annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
business_hours_deadline — Business-hours deadline / SLA
Advertised by the server during the last successful anonymous check.
Advertised read-only

SLA math in working hours: the deadline N business hours after a start time, or business time elapsed between two times. Custom hours and workdays, holidays, country public holidays, DST-aware. First 25 calls per day are free, then $0.001 per call (x402).

business_hours_deadline input schema
{
  "type": "object",
  "required": [
    "timezone"
  ],
  "properties": {
    "end": {
      "type": "string",
      "description": "Count business time from start to end (max 1 year)"
    },
    "hours": {
      "type": "number",
      "maximum": 2000,
      "minimum": 0
    },
    "start": {
      "type": "string",
      "description": "Local datetime in timezone or ISO 8601 with offset; default now"
    },
    "country": {
      "type": "string",
      "example": "US",
      "pattern": "^[A-Za-z]{2}$",
      "description": "ISO 3166-1 alpha-2 country code (207 countries); its public holidays (2000–2050) are excluded from business days"
    },
    "minutes": {
      "type": "number",
      "minimum": 0
    },
    "holidays": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "timezone": {
      "type": "string",
      "description": "IANA time zone, e.g. Asia/Manila"
    },
    "work_end": {
      "type": "string",
      "example": "17:00",
      "pattern": "^([01]\\d|2[0-4]):[0-5]\\d$"
    },
    "workdays": {
      "type": "array",
      "items": {
        "type": "integer",
        "maximum": 6,
        "minimum": 0
      },
      "description": "0 = Sunday; default [1,2,3,4,5]"
    },
    "work_start": {
      "type": "string",
      "example": "09:00",
      "pattern": "^([01]\\d|2[0-4]):[0-5]\\d$"
    }
  },
  "description": "Pass \"hours\"/\"minutes\" to get a deadline, or \"end\" to count business time between start and end."
}
business_hours_deadline output schema
{
  "type": "object",
  "required": [
    "mode",
    "timezone",
    "start",
    "business_minutes"
  ],
  "properties": {
    "end": {
      "type": "string"
    },
    "mode": {
      "enum": [
        "deadline",
        "elapsed"
      ],
      "type": "string"
    },
    "start": {
      "type": "string"
    },
    "weekday": {
      "type": "string"
    },
    "deadline": {
      "type": "string"
    },
    "timezone": {
      "type": "string"
    },
    "deadline_utc": {
      "type": "string"
    },
    "business_hours": {
      "type": "number"
    },
    "business_minutes": {
      "type": "number"
    }
  }
}
business_hours_deadline annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (1 of 1 answered).

  1. 2026-11-07: 1 of 1 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
492 ms
95th percentile latency
492 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 492 ms · metadata changed · 11 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http date-math-mcp-workers https://date-math.datemath.workers.dev/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add date-math-mcp-workers --url https://date-math.datemath.workers.dev/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable date-math-mcp-workers in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "date-math-mcp-workers": {
      "url": "https://date-math.datemath.workers.dev/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "date-math-mcp-workers": {
      "type": "streamableHttp",
      "url": "https://date-math.datemath.workers.dev/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start date-math-mcp-workers and inspect its tools.
VS Code configuration
{
  "servers": {
    "date-math-mcp-workers": {
      "type": "http",
      "url": "https://date-math.datemath.workers.dev/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http date-math-mcp-workers https://date-math.datemath.workers.dev/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://date-math.datemath.workers.dev/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "date-math-mcp-workers": {
      "serverUrl": "https://date-math.datemath.workers.dev/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Date Math MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.