Moltline TimeOps
Business days, meeting overlap and recurrence expansion, deterministic. 3 of 5 tools free.
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"timeops": {
"url": "https://mcp.moltlinestudio.com/timeops"
}
}
}Puntos de conexión remotos
https://mcp.moltlinestudio.com/timeopsstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (5)
🟢business_days(start_date, add_days, end_date, holidays)
Do business-day math that skips weekends and your holiday list. FREE. Either add N business days to start_date (set add_days), or count the business days between start_date and end_date (set end_date). Typical input {"start_date": "2026-03-02", "add_days": 10} returns {"result_date": "2026-03-16", "result_weekday": "Monday", ...}; with end_date set it returns {"business_days_between": N, "from": ..., "to": ...}. Use when the span must exclude weekends and named holidays. Not for plain calendar-day differences, which are a direct subtraction, and not for scheduling backward from a fixed deadline (deadline_planner). Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {"error": "<what is wrong and how to fix it>"} (for example {"error": "dates must be YYYY-MM-DD"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.
Esquema de entrada
{
"type": "object",
"properties": {
"start_date": {
"type": "string",
"description": "Anchor date in ISO format YYYY-MM-DD, e.g. \"2026-03-02\"."
},
"add_days": {
"default": 0,
"maximum": 5000,
"minimum": -5000,
"type": "integer",
"description": "Business days to add; negative subtracts. Range -5000 to\n5000. Ignored when end_date is provided."
},
"end_date": {
"default": "",
"type": "string",
"description": "Optional end date, ISO YYYY-MM-DD. When set, the tool counts\nbusiness days between start_date and end_date instead of adding."
},
"holidays": {
"default": [],
"items": {
"type": "string"
},
"type": "array",
"description": "Optional list of ISO YYYY-MM-DD dates to treat as\nnon-working days, e.g. [\"2026-12-25\"]."
}
},
"required": [
"start_date"
],
"additionalProperties": false
}Esquema de salida
{
"type": "object",
"additionalProperties": true
}🟢meeting_overlap(offsets_utc, work_start, work_end)
Find the shared meeting window across time zones inside working hours. FREE. Give one UTC offset per participant and an optional working-hours window. Typical input {"offsets_utc": [-8, 1, 5.5]} returns {"overlap_utc": ["HH:MM", "HH:MM"], "overlap_minutes": N, "local_windows": [...]}; when no shared window exists it returns {"overlap": null, "verdict": "..."}. Use when people in different zones need one shared slot. Not for converting a single known time between zones, and not for expanding a recurring series (recurrence_expand). Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {"error": "<what is wrong and how to fix it>"} (for example {"error": "times must be HH:MM"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.
Esquema de entrada
{
"type": "object",
"properties": {
"offsets_utc": {
"items": {
"maximum": 14,
"minimum": -14,
"type": "number"
},
"type": "array",
"description": "One UTC offset per participant, each between -14 and\n+14; fractional offsets allowed, e.g. [-8, 1, 5.5]."
},
"work_start": {
"default": "09:00",
"type": "string",
"description": "Working day start, 24h HH:MM local in every zone.\nDefault \"09:00\"."
},
"work_end": {
"default": "17:00",
"type": "string",
"description": "Working day end, 24h HH:MM; must be later than work_start.\nDefault \"17:00\"."
}
},
"required": [
"offsets_utc"
],
"additionalProperties": false
}Esquema de salida
{
"type": "object",
"additionalProperties": true
}🟢recurrence_expand(start_date, count, every_days, weekly_on)
Expand a recurrence rule into a concrete list of ISO dates. FREE. Set every_days for a fixed interval, or weekly_on for specific weekdays. Typical input {"start_date": "2026-01-05", "every_days": 14, "count": 3} returns {"dates": ["2026-01-05", "2026-01-19", "2026-02-02"]}. Use when a recurrence rule has to become concrete dates. Not for counting working days in a span (business_days) and not for finding a slot across zones (meeting_overlap). Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {"error": "<what is wrong and how to fix it>"} (for example {"error": "start_date must be YYYY-MM-DD"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.
Esquema de entrada
{
"type": "object",
"properties": {
"start_date": {
"type": "string",
"description": "First date of the series, ISO YYYY-MM-DD."
},
"count": {
"default": 10,
"type": "integer",
"description": "How many dates to generate; values outside 1-60 are clamped\ninto that range. Default 10."
},
"every_days": {
"default": 0,
"type": "integer",
"description": "Interval in days between occurrences; use this OR\nweekly_on, not both."
},
"weekly_on": {
"default": [],
"items": {
"type": "string"
},
"type": "array",
"description": "Weekday names to recur on, e.g. [\"mon\", \"thu\"]; full names\nlike \"monday\" also work."
}
},
"required": [
"start_date"
],
"additionalProperties": false
}Esquema de salida
{
"type": "object",
"additionalProperties": true
}🟢deadline_planner(due_date, tasks, holidays, buffer_days)
Plan a task schedule backward from a hard deadline in business days. PREMIUM (license). Given ordered tasks with business-day durations, returns each task's start/end dates, the latest safe start, and slack from today. Typical input {"due_date": "2026-06-01", "tasks": [{"name": "Draft", "days": 3}, {"name": "Review", "days": 2}]} returns {"schedule": [...], "latest_safe_start": "YYYY-MM-DD", "slack_business_days_from_today": N, "verdict": "..."}. Use when the end date is fixed and steps must be placed backward from it. Not for forward counting from a start date (business_days) and not for response-time targets (sla_due). Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {"error": "<what is wrong and how to fix it>"} (for example {"error": "due_date must be YYYY-MM-DD"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.
Esquema de entrada
{
"type": "object",
"properties": {
"due_date": {
"type": "string",
"description": "The deadline, ISO YYYY-MM-DD."
},
"tasks": {
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array",
"description": "Ordered list of task objects, each {\"name\": str, \"days\": int}\nwhere days is the business-day duration (1-365); the first 30\ntasks are scheduled."
},
"holidays": {
"default": [],
"items": {
"type": "string"
},
"type": "array",
"description": "Optional list of ISO YYYY-MM-DD dates treated as\nnon-working days."
},
"buffer_days": {
"default": 1,
"type": "integer",
"description": "Business days of safety margin kept free before\ndue_date, clamped to 0-365. Default 1."
}
},
"required": [
"due_date",
"tasks"
],
"additionalProperties": false
}Esquema de salida
{
"type": "object",
"additionalProperties": true
}🟢sla_due(opened_at, sla_hours, business_hours_only, day_start, day_end, ...)
Compute when a ticket's SLA falls due, wall-clock or business-hours. PREMIUM (license). Typical input {"opened_at": "2026-03-02T15:30", "sla_hours": 8, "business_hours_only": true} returns {"due": "2026-03-03T15:30", "mode": "business hours 09:00-17:00"}; with business_hours_only false the mode is "wall-clock". Use when a response or resolution clock has started and one due moment is needed. Not for multi-step project schedules (deadline_planner). Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {"error": "<what is wrong and how to fix it>"} (for example {"error": "opened_at must be ISO YYYY-MM-DDTHH:MM"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.
Esquema de entrada
{
"type": "object",
"properties": {
"opened_at": {
"type": "string",
"description": "When the SLA clock started, ISO datetime YYYY-MM-DDTHH:MM."
},
"sla_hours": {
"exclusiveMinimum": 0,
"maximum": 24000,
"type": "number",
"description": "SLA length in hours; greater than 0, at most 24000;\nfractions allowed, e.g. 7.5."
},
"business_hours_only": {
"default": false,
"type": "boolean",
"description": "If true, only time inside day_start-day_end on\nbusiness days counts toward the SLA."
},
"day_start": {
"default": "09:00",
"type": "string",
"description": "Business day start, 24h HH:MM. Default \"09:00\"."
},
"day_end": {
"default": "17:00",
"type": "string",
"description": "Business day end, 24h HH:MM; must be later than day_start.\nDefault \"17:00\"."
},
"holidays": {
"default": [],
"items": {
"type": "string"
},
"type": "array",
"description": "Optional list of ISO YYYY-MM-DD dates that never count as\nworking days."
}
},
"required": [
"opened_at",
"sla_hours"
],
"additionalProperties": false
}Esquema de salida
{
"type": "object",
"additionalProperties": true
}Comunidad
Evidencia