Skip to main content
Glama

Alert the user

alert

Alert the user on their iPhone. The one tool for both kinds:

  • Without at: a notification, now. It goes to the app's Notifications feed.

  • With at: a reminder at that time, in the app's Reminders list. It only reaches the signed-in user's own iPhone, never anyone else. Use at ONLY when the user names a clock time or date ("at 18:00", "tomorrow", "in an hour"). Anything tied to an event ("when you finish", "if the deploy fails", "when it's ready") you send yourself at that moment, WITHOUT at. ring: true rings like an alarm clock, through silent mode, until the user answers (Done or Snooze): "call me", "ring me", "wake me" (in any language). AgentAlarm places no real phone calls. "Notify / tell / remind me when X" = no ring (the default). sound only applies when it rings. ends_at and countdown only apply to reminders (with at). "Show a countdown / timer to " = a reminder at the event time with countdown: true. Examples:

  • "Done" -> alert(title: "Done: refactor")

  • "Call me when done" -> alert(title: "Done: refactor", ring: true), sent when you are done

  • "Remind me at 18 to buy milk" -> alert(title: "Buy milk", at: "18:00")

  • "Wake me at 7" -> alert(title: "Wake up", at: "07:00", ring: true)

  • "Countdown to the Champions League final" -> alert(title: "Champions League final", at: , countdown: true, icon: "sportscourt")

Input Schema

NameRequiredDescriptionDefault
atNoOnly when the user named a time or date: makes a reminder at that time. ISO 8601 (e.g. 2026-10-23T18:00:00+03:00, without an offset in the user's timezone), or a clock time alone ("18:00": its next occurrence). Omit it for a notification now.
bodyNoOptional details. Supports line breaks and URLs: line breaks are kept, and links, phone numbers and addresses can be tapped in the app.
iconNoOptional. The icon shown with it in the app, the Live Activity and the widget. Pick the one that fits, or omit it for the default (bell). Icons: bell: anything else (the default); checkmark.circle: a task, job or build finished; exclamationmark.triangle: an error, incident, failure or outage; calendar: a meeting, appointment, deadline or event; sportscourt: sport: a match, a game, a workout; gift: a birthday, anniversary or holiday; cart: shopping, orders, deliveries, prices; airplane: travel: flights, trips, check-in; heart: health and personal life: medication, family, self-care; briefcase: work: reviews, follow-ups, documents, clients.
ringNotrue: rings like an alarm until answered ("call/ring/wake me"). Default false: a quiet notification.
colorNoOptional. The colour in the app (its icon in the feed and the list, the alarm screen and the Live Activity). Use the colour the user asks for. Otherwise pick the one that fits best, or omit it for the default (blue). Colours: blue: everything else (the default); red: critical: incidents, outages, failures, hard deadlines; orange: important or due soon: reviews, renewals, follow-ups; green: personal and health: sport, medication, family errands, money; purple: events and fun: meetings, birthdays, trips, matches.
soundNoOptional. The sound it rings with: only when it rings (urgent, ring: true); a quiet one is a notification with the sound from the app's Settings. Use the sound the user asks for. Otherwise omit it for the user's chosen default sound (picked in the app's Settings), or pick one when the context clearly suggests it: a football match -> stadium, something that must wake the user -> loudalarm or urgentpulse, a gentle nudge -> calmpiano or softbells. Sounds, calm to loud: default: the iPhone's standard system alarm sound, familiar; calmpiano: calm soft piano, gentle: quiet nudges, evenings; softbells: soft bells, gentle and quiet: a reminder that must not startle; sunrise: slowly rising warm tones: a gentle wake-up in the morning; chime: a clear short chime, neutral: everyday reminders; brightmarimba: bright cheerful marimba, the classic phone alarm feel: a normal alarm; upbeatpop: upbeat pop melody, energetic and happy: workouts, fun plans; urgentpulse: fast insistent pulsing beeps, hard to ignore: something urgent, incidents; loudalarm: very loud aggressive alarm that wakes you up: must not be slept through; stadium: football stadium fans chanting with drums and air horns: matches, sports events.
titleYesShort, the most important words first, e.g. "Done: refactor" or "Buy milk".
ends_atNoReminders only: when it ends (ISO 8601, after `at`). The phone shows a Live Activity counting down to it, from `at` until then.
locationNoOptional. An address or place; the app offers to open it in Maps. One line.
countdownNoReminders only: show a countdown to `at` (a Live Activity in the last hours, and the Home Screen widget).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare non-read-only, non-destructive, non-idempotent, non-open-world, and the description goes well beyond them: it names the blast radius ("only reaches the signed-in user's own iPhone, never anyone else"), the artifact created (feed entry vs reminder list entry), the ring semantics (through silent mode, until Done/Snooze), and a clear disclaimer that no real phone calls are placed. That is exactly the context annotations cannot carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the one-line purpose and the two-mode split before any rules, and the per-parameter reference material is correctly left to the schema rather than duplicated. It is long, and the six worked examples sit at the edge of what's needed, but each one resolves a genuinely ambiguous mapping, so the length mostly earns itself.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter mutation tool with no output schema, the description covers mode selection, scope, and phrasing-to-parameter mapping thoroughly. The remaining gap is the return behavior: since cancel_alarm/update_alarm/list_alarms exist as siblings, an agent needs to know whether this call yields an identifier it can later use — and with no output schema, that is nowhere stated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 100%, so the baseline would be 3, but the description materially adds to it: it gates `at` on the user having named a clock time or date, restricts `sound` to the ringing case and `ends_at`/`countdown` to reminders, and maps natural-language utterances to full parameter combinations ("Wake me at 7" -> at + ring, "Countdown to..." -> at + countdown + icon). These cross-parameter constraints are not derivable from the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Alert the user on their iPhone") and immediately splits the tool into its two modes — a notification now versus a reminder at a time — with the destination of each (Notifications feed vs Reminders list). It does not, however, distinguish itself from the alarm siblings (create_alarm, update_alarm), which is a real ambiguity given that `ring: true` produces something the user would call an alarm.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Unusually explicit about when to use `at` versus omit it, including the negative case ("Anything tied to an event... you send yourself at that moment, WITHOUT `at`") and the ring-vs-quiet rule keyed to phrasing like "call me"/"wake me". What's missing is routing guidance toward the alarm siblings — nothing says which tool to reach for when the user asks to cancel, list, or change an existing alarm.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources