Superclock

MCP server

The tools at https://mcp.superclock.app/mcp, for ChatGPT, Claude, Muse and any MCP client. Agents says how to connect.

  • Read: reads, never changes anything. Write: changes alarms or timers; every change shows in Changes with the agent’s name, and undo_change takes it back. Sensitive write: asks the person first, every time.
  • Sign-in: OAuth 2.1 with S256 PKCE; the person picks See and change (alarms.read, alarms.write) or See only (alarms.read). A write on a See only connection answers “This needs the alarms.write permission”.
  • Answers: a sentence to say back, and the same facts as data (structuredContent) where a tool lists things. An error is an answer with isError and a sentence that says why and what to do, never a stack trace.
  • Limits: no per-call limit today. Alarms ring only on an iPhone signed in to the same account; get_account says whether one is.

Reads

what_superclock_can_do

Use this when you are not sure whether Superclock can do what the person asks, or before you are claimed. Any credential may call it.

  • takes: nothing
  • answers: what this server can and cannot do, and how an agent that is not claimed yet gets claimed
  • label: Read

get_account

Use this first in a conversation, and when an alarm seems not to arrive. Alarms ring only on a signed-in iPhone; when none is, tell the person how to sign in.

  • takes: nothing
  • answers: the Superclock account this connection acts for, and whether an iPhone is signed in to it and when it last synced
  • label: Read

list_alarms

Use this when the person asks about their alarms, or you need an alarm’s id for another tool. Not for timers: use list_timers.

  • takes: nothing
  • answers: every alarm as the iPhone last sent them, each with its id, its time and days, and whether it is paused or moves earlier only
  • label: Read

list_timers

Use this when the person asks about their timers, or before stop_timer. Not for alarms: use list_alarms.

  • takes: nothing
  • answers: the timers running on the iPhone now, and the ones an agent or the web started that are not over yet, each with its id
  • label: Read

get_alarm

Use this when you need one alarm’s full rule before changing it. Not for finding an alarm: use list_alarms.

  • takes: id
  • answers: one alarm or timer by its id, with its rule and version
  • label: Read

list_changes

Use this when the person asks what changed or who changed it, to check that a change reached their iPhone, or before undo_change.

  • takes: limit (optional)
  • answers: the latest changes: when, what, who made it (the person, you, another agent) and whether their iPhone has it yet, each with an id undo_change takes
  • label: Read

Writes

add_alarm

Use this when the person asks for an alarm: a time with a date or weekdays, or their own words in sentence. One alarm per thing they asked for. Say back what you set, the day in words.

  • takes: label, time (optional), date (optional), days (optional), sentence (optional), againEveryMinutes (optional), times (optional)
  • label: Write
  • undo: remove_alarm

move_alarm

Use this when the person wants an alarm at another time, date or days. Medication alarms only move earlier. Not for its name: use rename_alarm.

  • takes: id, time (optional), date (optional), days (optional), sentence (optional)
  • label: Write
  • undo: move_alarm

rename_alarm

Use this when the person wants an alarm called something else. Its time and days stay as they are.

  • takes: id, label
  • label: Write
  • undo: rename_alarm

pause_alarm

Use this when the person wants an alarm off for now, or until a date (it rings again after that day). Not for turning one back on: use resume_alarm.

  • takes: id, until (optional)
  • label: Write
  • undo: resume_alarm

resume_alarm

Use this when the person wants a paused alarm to ring again at its next time.

  • takes: id
  • label: Write
  • undo: pause_alarm

remove_alarm

Use this when the person asks to remove an alarm. It takes two calls: the first says what would go and gives a confirm code; ask them, and only after they say yes call again with that confirm. A medication alarm is never removed by an agent.

  • takes: id, confirm (optional)
  • label: Sensitive write (asks first)
  • undo: undo_change

undo_change

Use this when the person wants a change taken back, by its id from list_changes: an added alarm goes, a moved or paused one goes back, a removed one returns.

  • takes: id
  • label: Write
  • undo: undo_change

start_timer

Use this when the person asks for a timer on their phone. It starts when the iPhone receives it, usually within seconds.

  • takes: label, minutes
  • label: Write
  • undo: stop_timer

stop_timer

Use this when the person asks to stop a timer an agent or the web started, by its id from list_timers. One started on the iPhone itself is stopped there; say so.

  • takes: id
  • label: Write
  • undo: none: start_timer starts it again from the beginning

send_feedback

Use this when the person asks to send feedback about Superclock, or when a Superclock tool could not do what they asked. Write a sentence or two about Superclock: what failed or what was missing, and the tool it was about. Never include the conversation, names, contact details or anything else personal.

  • takes: kind, text, tool (optional)
  • label: Write
  • undo: none: a note to the people who make Superclock

Shapes

  • time: 24-hour HH:MM in the person’s own time
  • date: YYYY-MM-DD
  • weekday: mon, tue, wed, thu, fri, sat or sun
  • sentence: the person’s own words, when you cannot turn them into a time and a day; the iPhone parses them
  • kind: problem, idea or question