ReminderIt
REMOTE · MCP.REMINDERIT.COM · SCANNED OCT 4
Schedule real phone-call reminders with WhatsApp follow-up — medication, wake-ups, family check-ins.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security57
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (update_reminder). See how to fix → View diagnostics → Fail
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability73
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 4314 tokens (~172/item across 25 items; 25 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management13
- Stability observed for 4 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage71
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 0% of tool parameters carry a description.Fail
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- All 3 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 26 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the ReminderIt MCP server?
ReminderIt is a hosted endpoint at https://mcp.reminderit.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · mcp.reminderit.com
claude mcp add --transport http com-reminderit-reminderit 'https://mcp.reminderit.com/mcp'
{
"mcpServers": {
"com-reminderit-reminderit": {
"url": "https://mcp.reminderit.com/mcp"
}
}
} {
"servers": {
"com-reminderit-reminderit": {
"type": "http",
"url": "https://mcp.reminderit.com/mcp"
}
}
} [mcp_servers.com-reminderit-reminderit] url = "https://mcp.reminderit.com/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"com-reminderit-reminderit": {
"type": "remote",
"url": "https://mcp.reminderit.com/mcp",
"enabled": true
}
}
} openclaw mcp add com-reminderit-reminderit --url 'https://mcp.reminderit.com/mcp' --transport streamable-http
mcp_servers:
com-reminderit-reminderit:
url: "https://mcp.reminderit.com/mcp" {
"McpServers": {
"com-reminderit-reminderit": {
"Transport": "http",
"Url": "https://mcp.reminderit.com/mcp"
}
}
} assistant mcp add com-reminderit-reminderit -t streamable-http -u 'https://mcp.reminderit.com/mcp'
{
"mcpServers": {
"com-reminderit-reminderit": {
"type": "http",
"url": "https://mcp.reminderit.com/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 2 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.
- 1 Oct 26 0
- The server rewrote its instructions, which are the text every model session reads security
- Tool “get_usage” rewrote its description, which is the text the model reads security
- Tool “resume_reminder” rewrote its description, which is the text the model reads security
- Stability: unverified → 0.03 ▲ functional
- Server version: 0.3.0 → 0.3.1 functional
- 30 Sept 26 62
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 6 Oct 2026 · Probed https://mcp.reminderit.com/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=reminderit.com | CN=WE1,O=Google Trust Services,C=US | 1 Oct 2026 | 30 Dec 2026 | ECDSA 256 | ECDSA-SHA256 | 6a86b43967c5f77c13d7d6addba7313b |
| SANs: reminderit.com, *.reminderit.com | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of mcp.reminderit.com. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| reminderit.com. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| x-content-type-options | nosniff |
| x-frame-options | SAMEORIGIN |
| referrer-policy | same-origin |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://mcp.reminderit.com/mcp | Verified | 200 | |
| http (plaintext) | http://mcp.reminderit.com/mcp | HTTPS enforced | 301 | https://mcp.reminderit.com/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
add_recipient Add a person to remind ~155
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".
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | – |
| phone | string | yes | – |
| relationship | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
clear_reminder_voice Reset a reminder's voice ~48
Remove a reminder's custom voice so it uses the account default again. Args: reminder_id: Reminder whose voice override should be cleared.
| Name | Type | Req | Description |
|---|---|---|---|
| reminder_id | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
create_reminder Create reminder call ~603
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.…
| Name | Type | Req | Description |
|---|---|---|---|
| cron_expr | – | – | – |
| email_fallback | boolean | – | – |
| end_date | – | – | – |
| interval_days | – | – | – |
| language | – | – | – |
| message_text | string | yes | – |
| personality | – | – | – |
| recipient_id | – | – | – |
| run_at | – | – | – |
| skip_dates | – | – | – |
| speaking_rate | – | – | – |
| start_date | – | – | – |
| timezone | string | yes | – |
| title | string | yes | – |
| type | string | yes | – |
| voice_id | – | – | – |
| whatsapp_fallback | boolean | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
delete_reminder Delete reminder ~75
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).
| Name | Type | Req | Description |
|---|---|---|---|
| reminder_id | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
get_recent_calls Get call history ~158
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).
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
get_reminder Get reminder details ~95
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.
| Name | Type | Req | Description |
|---|---|---|---|
| reminder_id | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
get_usage Check call balance ~77
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.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
get_voice_settings Get default voice ~47
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.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
list_recipients List people you remind ~74
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.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
list_reminders List reminders ~77
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).
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
list_upcoming List upcoming calls ~83
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).
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
list_voices List voices ~77
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.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
pause_reminder Pause reminder ~74
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).
| Name | Type | Req | Description |
|---|---|---|---|
| reminder_id | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
preview_voice Preview a voice ~187
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.
| Name | Type | Req | Description |
|---|---|---|---|
| language | – | – | – |
| personality | string | – | – |
| speaking_rate | – | – | – |
| text | – | – | – |
| voice_id | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
remove_recipient Remove a person ~60
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).
| Name | Type | Req | Description |
|---|---|---|---|
| recipient_id | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
resend_recipient_verification Resend consent call ~87
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).
| Name | Type | Req | Description |
|---|---|---|---|
| recipient_id | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
resume_reminder Resume reminder ~85
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).
| Name | Type | Req | Description |
|---|---|---|---|
| reminder_id | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
set_reminder_channels Set missed-call fallbacks ~139
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.
| Name | Type | Req | Description |
|---|---|---|---|
| email_fallback | – | – | – |
| reminder_id | string | yes | – |
| whatsapp_fallback | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
set_reminder_voice Set a reminder's voice ~224
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).
| Name | Type | Req | Description |
|---|---|---|---|
| language | – | – | – |
| personality | – | – | – |
| reminder_id | string | yes | – |
| speaking_rate | – | – | – |
| voice_id | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
set_skip_dates Set skip dates ~154
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"].
| Name | Type | Req | Description |
|---|---|---|---|
| reminder_id | string | yes | – |
| skip_dates | array | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
set_voice_settings Set default voice ~188
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.
| Name | Type | Req | Description |
|---|---|---|---|
| greet_by_name | – | – | – |
| language | – | – | – |
| personality | – | – | – |
| speaking_rate | – | – | – |
| voice_id | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
skip_next_occurrence Skip next call ~77
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.
| Name | Type | Req | Description |
|---|---|---|---|
| reminder_id | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
test_call Place a test call now ~90
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).
| Name | Type | Req | Description |
|---|---|---|---|
| reminder_id | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
update_reminder Edit reminder ~284
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.
| Name | Type | Req | Description |
|---|---|---|---|
| cron_expr | – | – | – |
| end_date | – | – | – |
| interval_days | – | – | – |
| message_text | – | – | – |
| reminder_id | string | yes | – |
| run_at | – | – | – |
| start_date | – | – | – |
| timezone | – | – | – |
| title | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
whoami Get account details ~149
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.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
What is the ReminderIt MCP server?
ReminderIt is an MCP server listed in the public MCP registry as com.reminderit/reminderit. Schedule real phone-call reminders with WhatsApp follow-up, medication, wake-ups, family check-ins. This page covers its hosted endpoint (https://mcp.reminderit.com/mcp).
Is the ReminderIt MCP server safe to use?
ReminderIt scores 63 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the ReminderIt MCP server expose?
ReminderIt exposes 25 tools: list_reminders, get_reminder, list_upcoming, get_recent_calls, create_reminder, and 20 more. Their descriptions and schemas cost roughly 3,367 tokens of context every time the server is loaded.
Does the ReminderIt MCP server require authentication?
No. We connected to ReminderIt without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the ReminderIt MCP server still maintained?
ReminderIt is still listed as active in the MCP registry. We last reached this channel on 4 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.