Perfect Clock
Find meeting times across time zones and compare working hours.
¿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": {
"perfect-clock": {
"url": "https://perfectclock.cc/mcp"
}
}
}Puntos de conexión remotos
https://perfectclock.cc/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (2)
⚪plan_meeting_schedule(title, tz, time, durationMinutes, rule, ...)
Plans a one-off or recurring meeting with people in other time zones when its time is known (e.g. "every other Tuesday at 10:00 Berlin time with Anna in Tbilisi"). Expands it into concrete dates and shows each one in every participant's local time, with working-hours checks, public holidays and daylight-saving shifts. Saves the schedule for 30 days and returns a private perfectclock.cc/s/... link that opens it in Perfect Clock.
Esquema de entrada
{
"type": "object",
"properties": {
"title": {
"type": "string",
"maxLength": 120,
"description": "Meeting title."
},
"tz": {
"type": "string",
"description": "Time zone the meeting time is fixed in (usually the organizer's)."
},
"time": {
"type": "string",
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
"description": "Local start time in `tz`."
},
"durationMinutes": {
"default": 60,
"type": "integer",
"minimum": 5,
"maximum": 720
},
"rule": {
"type": "object",
"properties": {
"freq": {
"type": "string",
"enum": [
"once",
"daily",
"weekly",
"monthly"
]
},
"interval": {
"description": "Every N days/weeks/months; default 1.",
"type": "integer",
"minimum": 1,
"maximum": 12
},
"byDay": {
"description": "Weekdays for weekly rules; for monthly with setPos, the weekday.",
"type": "array",
"items": {
"type": "string",
"enum": [
"MO",
"TU",
"WE",
"TH",
"FR",
"SA",
"SU"
]
}
},
"setPos": {
"description": "Monthly \"Nth weekday\": 1-4, or -1 for the last.",
"type": "integer",
"minimum": -1,
"maximum": 4
},
"start": {
"description": "First possible date in `tz`; default today.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"count": {
"type": "integer",
"minimum": 1,
"maximum": 500
},
"until": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
}
},
"required": [
"freq"
],
"description": "Recurrence of the meeting."
},
"participants": {
"minItems": 1,
"maxItems": 10,
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string",
"maxLength": 60,
"description": "How the participant or place is called in the conversation, e.g. \"Anna\" or \"Tokyo office\"."
},
"tz": {
"type": "string",
"description": "IANA time zone of this participant, e.g. Asia/Tbilisi."
},
"workHours": {
"description": "Local working hours [start, end]; default [\"09:00\",\"17:00\"].",
"minItems": 2,
"maxItems": 2,
"type": "array",
"items": {
"type": "string",
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d$"
}
}
},
"required": [
"label",
"tz"
]
},
"description": "People or places the meeting must suit, each with their own time zone."
},
"maxOccurrences": {
"default": 8,
"description": "How many upcoming meetings to list.",
"type": "integer",
"minimum": 1,
"maximum": 20
}
},
"required": [
"title",
"tz",
"time",
"rule",
"participants"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢find_meeting_windows(title, tz, from, days, durationMinutes, ...)
Finds when people in other time zones can meet, when the time is not decided yet: the windows on each day when all participants are within their working hours, accounting for weekends, public holidays and daylight-saving changes, and one suggested start time that fits the most days. Saves that suggested time on those days for 30 days and returns a private perfectclock.cc/s/... link that opens it in Perfect Clock.
Esquema de entrada
{
"type": "object",
"properties": {
"title": {
"description": "Meeting title, if the user gave one.",
"type": "string",
"maxLength": 120
},
"tz": {
"type": "string",
"description": "Time zone whose calendar days are scanned (usually the organizer's)."
},
"from": {
"description": "First day in `tz`; default today.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"days": {
"default": 5,
"type": "integer",
"minimum": 1,
"maximum": 14
},
"durationMinutes": {
"default": 60,
"type": "integer",
"minimum": 15,
"maximum": 480
},
"participants": {
"minItems": 1,
"maxItems": 10,
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string",
"maxLength": 60,
"description": "How the participant or place is called in the conversation, e.g. \"Anna\" or \"Tokyo office\"."
},
"tz": {
"type": "string",
"description": "IANA time zone of this participant, e.g. Asia/Tbilisi."
},
"workHours": {
"description": "Local working hours [start, end]; default [\"09:00\",\"17:00\"].",
"minItems": 2,
"maxItems": 2,
"type": "array",
"items": {
"type": "string",
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d$"
}
}
},
"required": [
"label",
"tz"
]
},
"description": "People or places the meeting must suit, each with their own time zone."
}
},
"required": [
"tz",
"participants"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Comunidad
Evidencia