Keelcroft · Check-In Line documentation
Check-In Line
A short automated phone call every day to an aging parent (or any adult living alone). Press 1 = doing fine, 2 = please call me, 3 = leave a voice message, 9 = stop the calls. Unanswered calls are retried, then family contacts are alerted. Works on any phone — landline, flip phone or mobile — with nothing to install for the parent.
Endpoints
| Purpose | URL |
|---|---|
| MCP (Streamable HTTP, JSON-RPC) | https://checkin.keelcroft.com/mcp |
| REST alternative | https://checkin.keelcroft.com/v1/… — described by openapi.json |
| Authorization-server metadata | /.well-known/oauth-authorization-server |
| Protected-resource metadata | /.well-known/oauth-protected-resource |
| Dynamic client registration | https://checkin.keelcroft.com/oauth/register |
| Connector manifest | /.well-known/muse-connector.json |
| Health | /health |
Authentication
OAuth 2.1 authorization code with PKCE (S256). Clients register dynamically or present a Client-ID Metadata Document. Access tokens are bearer tokens valid for one hour; refresh tokens rotate on use. Scopes: parents:read, parents:manage, alerts:read. API keys (Authorization: Bearer ck_…) are available from the account page for scripts and for adding Check-In Line to Muse as a custom connector before the directory listing is live.
The authorization flow shows a consent page listing what the agent will be able to do, then a passwordless email sign-in (magic link). Connecting never requires payment; tools that place calls require an active subscription and tell the agent where the user can start one.
Tools
| Tool | Approval | Description |
|---|---|---|
list_parents | no | Parents on the account with ids, phone, daily call time, consent and pause status, plus a next_step hint when setup is incomplete. |
get_status | no | Today's outcome (checked in / asked for a call / left a message / missed / pending), last confirmed-OK time, schedule, consent, pause state, escalation contacts. Answers “is Mom okay?”. |
get_history | no | Recent check-ins for the last days plus plain pattern facts: confirmed / missed / asked-for-a-call counts, typical answer time, whether answers are later than usual. Facts only; no medical conclusions. |
get_voice_notes | no | Voice messages the parent left (press 3) with transcripts. |
get_recent_alerts | no | Proactive events since an ISO-8601 timestamp: checked in, asked for a call, voice message, missed after all retries (family alerted), consent given/declined, opted out. |
request_checkin_now | yes | Places an extra check-in call right now (or immediately places a pending retry). |
start_setup_call | yes | Places the consent call: the parent hears who set this up and presses 1 to agree to daily calls or 9 to decline. |
set_schedule | no | Daily call time, time zone, language (English/Spanish), retries and spacing, extra reminder prompts (e.g. “evening pills” at 20:00). |
pause_checkins / resume_checkins | no | Pause while travelling or staying with family (optionally until a date), resume later. |
add_message | no | Queues a short spoken message read aloud in the next call (“I'll visit on Sunday”, “Happy birthday!”). |
add_contact | no | Adds a family member or neighbour who is called and/or emailed when a check-in is missed. |
add_parent | yes | Adds another parent (one subscription seat each). |
Tool results include both human-readable text and structuredContent. Times are returned in the parent's time zone alongside ISO-8601 UTC.
Consent and safety design
- No calls are placed until the parent presses 1 on the set-up call; pressing 9 on any call stops them. Consent state and the call it was given on are recorded.
- The parent can also call the number back at any time and press 1 to check in, or 3 to leave a message.
- Only a key press counts as a check-in — voicemail or a hang-up does not. Unanswered calls are retried (default two more attempts, 20 minutes apart) before family contacts are alerted by phone and email.
- Check-In Line is not a medical alert or emergency service and never contacts emergency services; escalation goes to the family contacts the account holder chose.
- Pattern facts (e.g. “answering later than usual”) are descriptive counts and times, never diagnoses or health advice.
Access requirements
- United States phone numbers for the parent and contacts. The account holder must be 18+ and have the parent's agreement, which the set-up call captures.
- Subscription: $12.99 per parent per month, billed by Dodo Payments (merchant of record), cancel any time; no free trial, 30-day refund on request. Reviewers using the test path need no subscription.
- Rate limits: none beyond one call cycle at a time per parent; a second
request_checkin_nowwhile a call is ringing returns a “call in progress” error.
Reviewer test path
No real phone is needed. Meta reviewers receive a private reviewer link that signs in a demo account with a pre-consented simulated parent and a 90-day entitlement. Calls to simulated numbers place no real call; the dashboard shows buttons to simulate the parent pressing 1, 2, 3, 9 or not answering, so every tool outcome can be exercised in minutes. The link is supplied with the submission, not published here.
Data handling
Collected: account holder's email; for each parent their name, phone number, time zone, language, call schedule and consent status; per call the time, attempts, the key pressed and the telephony call id; voice messages the parent chooses to leave (audio held by the telephony provider, transcript produced by a speech model running on Cloudflare Workers AI); names, phone numbers and emails of the escalation contacts the account holder adds; short family messages queued for reading aloud. Shared with Twilio (telephony), Dodo Payments (billing), Resend (email delivery) and the connected agent (only what it requests). Never sold or used for advertising. Retained while the parent is on the account; deleting a parent removes their history, and full deletion is available on request to support@keelcroft.com. Full text: privacy policy, terms.
Support
support@keelcroft.com · security reports: same address, subject “Security”.