Skip to main content
Glama

Server Details

Schedule real phone-call reminders with WhatsApp follow-up — medication, wake-ups, family check-ins.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over the last 24 hours
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
–

TDQS

A4.1/5.0

Scored across 25 tools

Disambiguation4/5

Most tools have clearly distinct resource+action purposes, and descriptions actively steer between pause/resume/delete, skip dates vs skip next occurrence, and account vs reminder voice settings. Minor overlap remains because create_reminder exposes voice, channel, and fallback arguments that also have dedicated setters, and the voice-related tools are numerous.

Naming Consistency5/5

Almost all tools follow a predictable verb_noun snake_case pattern: list_reminders, get_reminder, create_reminder, update_reminder, pause_reminder, resume_reminder, delete_reminder, and similar forms. whoami is a conventional identity-check exception rather than a chaotic deviation.

Tool Count3/5

The 25-tool surface sits at the heavy end of the borderline range. Many tools are justified by the product's breadth, but the granular split across voice settings, recipient handling, reminder lifecycle, and delivery history makes the set feel large for an agent to navigate.

Completeness4/5

Reminder lifecycle coverage is strong: create, list, get, update, delete, pause, resume, skip, test, upcoming calls, history, quota, and identity checks are all present. A minor gap is the lack of an update_recipient operation, since changing a recipient's details requires removal and re-adding, which may retrigger consent flow.

Available Tools

25 tools
add_recipientAdd a person to remindA
Destructive
Inspect

Add another person who can receive reminder calls, e.g. an elderly parent.

ReminderIt immediately places a consent verification call to the number; reminders
are only delivered after that person accepts. Only add someone the user genuinely
has permission to call, and confirm the number digit by digit before submitting —
a typo calls a stranger.

Args:
    name: The person's name, used in the call greeting.
    phone: Their number in full E.164 format, e.g. "+447700900123".
    relationship: Optional label for the user's own reference, e.g. "Mother".

Inputs: name (required), phone (required), context (required), llm_model (required), +2 more. Returns: result, _mcp_instructions

clear_reminder_voiceReset a reminder's voiceA
DestructiveIdempotent
Inspect

Remove a reminder's custom voice so it uses the account default again.

Args:
    reminder_id: Reminder whose voice override should be cleared.

Inputs: context (required), llm_model (required), reminder_id (required), conversation_id. Returns: result, _mcp_instructions

create_reminderCreate reminder callAInspect

Schedule a new reminder phone call.

This places REAL calls, so get the schedule right the first time: resolve the
timezone via whoami, and read the result back to the user afterwards.

Provide exactly one schedule: run_at (one-off), cron_expr, or interval_days.
Leave the voice arguments empty to use the account's default voice.

Args:
    title: Short label shown in the app, e.g. "Morning pills" (max 120 chars).
    message_text: Exactly what the voice says on the call, written as speech —
        "Time to take your blood pressure tablet." (max 600 chars). Avoid
        abbreviations and symbols that sound wrong when read aloud.
    type: "once" for a single call, "recurring" for a repeating schedule.
    timezone: IANA timezone the schedule is anchored to, e.g. "America/New_York".
    run_at: ISO 8601 local datetime for a one-off call. Required when type="once".
    cron_expr: Cron schedule for recurring calls, e.g. "0 8 * * 1-5" = weekdays 8am.
    interval_days: Repeat every N days (1-365). Simpler alternative to cron_expr.
    start_date: ISO date; the recurring series does not fire before this.
    end_date: ISO date; the series stops after this (e.g. end of a medication course).
    skip_dates: Local dates to skip, ["2026-08-12"] format — holidays, travel.
    recipient_id: Call a care-recipient (from list_recipients) instead of the
        account owner. The recipient must have consented.
    voice_id: Override the account voice for this reminder only (see list_voices).
    personality: Speaking style — "gentle", "cheerful", "professional", "energetic".
    language: BCP-47 language tag for the spoken message, e.g. "en-GB", "hi-IN".
    speaking_rate: Speech speed, 0.8 (slower) to 1.2 (faster). 1.0 is normal.
    whatsapp_fallback: Send the reminder on WhatsApp if the call isn't answered.
    email_fallback: Also email the reminder if the call isn't answered.

Inputs: type (required), title (required), context (required), timezone (required), +16 more. Returns: result, _mcp_instructions

delete_reminderDelete reminderA
DestructiveIdempotent
Inspect

Permanently delete a reminder. This cannot be undone.

Confirm with the user first, quoting the reminder's title and schedule. If they may
want it later, use pause_reminder instead.

Args:
    reminder_id: Reminder to delete (from list_reminders).

Inputs: context (required), llm_model (required), reminder_id (required), conversation_id. Returns: result, _mcp_instructions

get_recent_callsGet call historyA
Read-onlyIdempotent
Inspect

Show recent delivery history — what was actually called, sent, or missed.

Use this to answer "did it call me?", "why didn't I get it?", or to confirm a
reminder is really firing. Statuses: completed/answered = the person picked up;
no-answer/busy = rang but nobody answered (a WhatsApp fallback usually follows);
failed = the call could not be placed; blocked = suppressed before dialling (no
credit, unsupported country, or a recipient who hasn't consented);
sent/delivered/read = a WhatsApp or email fallback.

Args:
    limit: Number of recent delivery records (1-50, default 10).

Inputs: context (required), llm_model (required), limit, conversation_id. Returns: result, _mcp_instructions

get_reminderGet reminder detailsA
Read-onlyIdempotent
Inspect

Get the full configuration of one reminder as JSON.

Use when you need detail that list_reminders omits — the exact spoken message,
cron expression, skip dates, channel toggles, or voice override. Also use this to
read current values before a partial update, so you don't overwrite settings.

Args:
    reminder_id: Reminder ID from list_reminders.

Inputs: context (required), llm_model (required), reminder_id (required), conversation_id. Returns: result, _mcp_instructions

get_usageCheck call balanceA
Read-onlyIdempotent
Inspect

Get remaining call quota, calls used, plan, and the current billing period.

Check before creating several reminders or suggesting a test call, and whenever a delivery fails unexpectedly. One call OR one WhatsApp fallback each consume one unit from the same pool. When the balance is low or zero, tell the user plainly.

Inputs: context (required), llm_model (required), conversation_id. Returns: result, _mcp_instructions

get_voice_settingsGet default voiceA
Read-onlyIdempotent
Inspect

Show the account's default voice — the voice every reminder uses unless overridden.

Read this before changing anything, so you can report what actually changed and leave unrelated settings alone.

Inputs: context (required), llm_model (required), conversation_id. Returns: result, _mcp_instructions

list_recipientsList people you remindA
Read-onlyIdempotent
Inspect

List care-recipients — other people this account can send reminders to.

Needed to get the recipient_id for create_reminder. Consent status matters: only
"confirmed" recipients receive calls; "pending" means they haven't accepted the
verification call yet, so reminders to them will be blocked.

Inputs: context (required), llm_model (required), conversation_id. Returns: result, _mcp_instructions

list_remindersList remindersA
Read-onlyIdempotent
Inspect

List every reminder on the account with its schedule, state and next call time.

Start here for almost any request about existing reminders — it is the only way to
discover reminder IDs, which every other reminder tool needs. Paused reminders show
WHY they are paused (out_of_credit, destination_not_allowed, completed).

Inputs: context (required), llm_model (required), conversation_id. Returns: result, _mcp_instructions

list_upcomingList upcoming callsA
Read-onlyIdempotent
Inspect

Show the next scheduled calls across ALL reminders, in chronological order.

Answers "what's coming up?" better than list_reminders, because it expands
recurring rules into actual upcoming occurrences and merges them into one timeline.

Args:
    limit: How many upcoming occurrences to return (1-50, default 10).

Inputs: context (required), llm_model (required), limit, conversation_id. Returns: result, _mcp_instructions

list_voicesList voicesA
Read-onlyIdempotent
Inspect

List the voices available on this account, with language, accent and tier.

Call before set_voice_settings or set_reminder_voice to get valid voice IDs —
never guess one. Voices marked premium may not be included in every plan; if the
account's plan doesn't include one, calls fall back to a standard voice.

Inputs: context (required), llm_model (required), conversation_id. Returns: result, _mcp_instructions

pause_reminderPause reminderA
DestructiveIdempotent
Inspect

Pause a reminder so it stops calling, keeping all its settings intact.

Prefer this over delete_reminder whenever the user might want it back — it is
fully reversible with resume_reminder.

Args:
    reminder_id: Reminder to pause (from list_reminders).

Inputs: context (required), llm_model (required), reminder_id (required), conversation_id. Returns: result, _mcp_instructions

preview_voicePreview a voiceA
Read-only
Inspect

Generate a short audio sample of a voice so the user can hear it before choosing.

Returns a URL to the generated audio. Useful when a user is deciding between
voices, or wants to check how their own reminder wording will sound.

Args:
    voice_id: Voice ID from list_voices.
    text: Words to speak in the sample. Defaults to a standard demo line; pass the
        user's actual reminder message to preview exactly what they'll hear.
    personality: "gentle", "cheerful", "professional", or "energetic".
    language: BCP-47 tag, e.g. "en-GB".
    speaking_rate: 0.8 to 1.2.

Inputs: context (required), voice_id (required), llm_model (required), text, +4 more. Returns: result, _mcp_instructions

remove_recipientRemove a personA
DestructiveIdempotent
Inspect

Remove a care-recipient from the account.

Any reminders targeting them will stop being delivered. Confirm with the user first.

Args:
    recipient_id: Recipient to remove (from list_recipients).

Inputs: context (required), llm_model (required), recipient_id (required), conversation_id. Returns: result, _mcp_instructions

resend_recipient_verificationResend consent callA
Destructive
Inspect

Re-send the consent verification call to a recipient who hasn't confirmed yet.

Use when list_recipients shows consent as pending and the person missed the first
call. Don't repeat it more than necessary — each attempt rings their phone.

Args:
    recipient_id: Recipient to re-verify (from list_recipients).

Inputs: context (required), llm_model (required), recipient_id (required), conversation_id. Returns: result, _mcp_instructions

resume_reminderResume reminderA
Idempotent
Inspect

Resume a paused reminder so it starts calling on its schedule again.

If it was paused automatically for out_of_credit and the account still has no calls
left, it will pause again at the next occurrence — check get_usage and tell the user.

Args:
    reminder_id: Reminder to resume (from list_reminders).

Inputs: context (required), llm_model (required), reminder_id (required), conversation_id. Returns: result, _mcp_instructions

set_reminder_channelsSet missed-call fallbacksA
DestructiveIdempotent
Inspect

Choose what happens when a reminder call isn't answered.

The phone call itself is always attempted. These toggles control the follow-ups:
WhatsApp is on by default, email is off. Note each delivered fallback also consumes
one call from the account's quota.

Args:
    reminder_id: Reminder to configure (from list_reminders).
    whatsapp_fallback: True to send a WhatsApp message when the call is missed.
    email_fallback: True to also email the reminder when the call is missed.

Inputs: context (required), llm_model (required), reminder_id (required), email_fallback, +2 more. Returns: result, _mcp_instructions

set_reminder_voiceSet a reminder's voiceA
DestructiveIdempotent
Inspect

Give one reminder its own voice, overriding the account default.

Use when a specific reminder should sound different — a calm, slower voice for
medication; an energetic one for a workout; a different language for a relative.
Call list_voices first to get valid voice IDs, and preview_voice if the user
wants to hear it before committing. Other reminders are unaffected.

Args:
    reminder_id: Reminder to restyle (from list_reminders).
    voice_id: Voice ID from list_voices.
    personality: "gentle", "cheerful", "professional", or "energetic".
    language: BCP-47 tag for the spoken message, e.g. "en-GB", "es-ES", "hi-IN".
    speaking_rate: 0.8 (slower, good for elderly listeners) to 1.2 (faster).

Inputs: context (required), llm_model (required), reminder_id (required), language, +4 more. Returns: result, _mcp_instructions

set_skip_datesSet skip datesA
DestructiveIdempotent
Inspect

Set the specific dates a recurring reminder should NOT call.

The right way to handle holidays, travel, or a pause of a few days — far better
than deleting a reminder and rebuilding it. This REPLACES the existing skip list,
so include dates the user still wants skipped (read them with get_reminder first).
Pass an empty list to clear all skips.

Args:
    reminder_id: Reminder to adjust (from list_reminders).
    skip_dates: Local dates in "YYYY-MM-DD" form, e.g. ["2026-08-12", "2026-08-13"].

Inputs: context (required), llm_model (required), skip_dates (required), reminder_id (required), +1 more. Returns: result, _mcp_instructions

set_voice_settingsSet default voiceA
DestructiveIdempotent
Inspect

Change the account's DEFAULT voice, affecting every reminder without an override.

For a single reminder only, use set_reminder_voice instead. Get valid IDs from
list_voices; preview_voice lets the user hear one first.

Args:
    voice_id: Voice ID from list_voices.
    personality: "gentle", "cheerful", "professional", or "energetic".
    language: BCP-47 tag, e.g. "en-US", "en-GB", "hi-IN".
    speaking_rate: 0.8 (slower — often better for elderly listeners) to 1.2 (faster).
    greet_by_name: Whether calls open by greeting the user by name.

Inputs: context (required), llm_model (required), language, voice_id, +4 more. Returns: result, _mcp_instructions

skip_next_occurrenceSkip next callA
Destructive
Inspect

Skip only the next scheduled call, leaving the rest of the schedule untouched.

Use for "not tomorrow, but keep it going after that". To skip particular calendar
dates instead, use set_skip_dates.

Args:
    reminder_id: Reminder whose next call should be skipped.

Inputs: context (required), llm_model (required), reminder_id (required), conversation_id. Returns: result, _mcp_instructions

test_callPlace a test call nowA
Destructive
Inspect

Place an immediate test call for a reminder so the user can hear it right now.

The phone will ring within seconds — only do this when the user has asked to test,
and never repeatedly. It consumes one call from their quota and does not change
the schedule.

Args:
    reminder_id: Reminder to test (from list_reminders).

Inputs: context (required), llm_model (required), reminder_id (required), conversation_id. Returns: result, _mcp_instructions

update_reminderEdit reminderA
DestructiveIdempotent
Inspect

Edit a reminder's wording or schedule. Only the fields you pass are changed.

Use for "move it to 7am", "say it differently", "stop after the 20th". To pause or
resume, use pause_reminder / resume_reminder. To change the voice, use
set_reminder_voice. To skip particular dates, use set_skip_dates.

Args:
    reminder_id: Reminder to edit (from list_reminders).
    title: New short label.
    message_text: New spoken message (written as natural speech, max 600 chars).
    cron_expr: New cron schedule, e.g. "0 7 * * *" for daily 7am.
    interval_days: New "every N days" interval (1-365).
    run_at: New ISO 8601 datetime for a one-off reminder.
    timezone: New IANA timezone. Changing this moves every future call.
    start_date: New ISO start date for a recurring series.
    end_date: New ISO end date; the series stops after it.

Inputs: context (required), llm_model (required), reminder_id (required), title, +8 more. Returns: result, _mcp_instructions

whoamiGet account detailsA
Read-onlyIdempotent
Inspect

Identify the connected ReminderIt account: who it is, their timezone, plan and quota.

Two jobs. First, it is the connection check — call it when the user asks "am I
connected?", "which account is this?", or when another tool returns an auth error,
to confirm the API key is valid and see whose account it opens.

Second, call it BEFORE creating or rescheduling a reminder: it returns the user's
saved timezone, so you can schedule silently instead of asking. It also warns when
the phone is unverified or the account is opted out — in either case no reminder can
be delivered, so surface that before scheduling anything.

Inputs: context (required), llm_model (required), conversation_id. Returns: result, _mcp_instructions

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables AI assistants to schedule and confirm medication doses, query the next pending dose, and log reminder interactions, with late-dose phone alerts and a live dashboard.
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables agentic voice assistants to run daily check-ins for someone living alone, capturing wellbeing, medication, and appointments, while keeping family informed via summaries and escalating when needed.
      MIT
    • A
      license
      A
      quality
      B
      maintenance
      Enables eldercare coordination through medication reminders with safety guardrails, daily voice check-ins with symptom escalation, and a family caregiver dashboard.
      8
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables older adults to manage their medicines by voice — adding prescriptions, hearing what is due, logging doses and symptoms, and getting refill and adherence reports — with built-in double-dose and emergency safeguards. It also keeps distant family informed through Bedrock-written daily summaries and SMS or email alerts for urgent events.
      MIT
    Try in Browser

    Glama MCP Gateway

    Add one secure layer between your agents and this server.

    Resources