Reflecto
Server Details
Reach your own phone from an AI agent: notifications, approval questions, reminders, ring, files.
- Status
- Healthy
- Uptime
- 100.0% over the last 24 hours
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 9 tools
Most tools map to distinct actions (list_devices, find_my_phone, send_file, get_shared_items), but send_notification, remind_me, and request_approval all produce phone prompts and could be misselected by an agent skimming. The descriptions clarify immediacy and response expectations, so the ambiguity is limited and manageable.
All nine tools use snake_case verb-first names like cancel_, check_, find_, get_, list_, remind_, request_, and send_, with the two send_ verbs clearly distinguished by their noun objects. The naming pattern is consistent and predictable throughout.
Nine tools is well within the ideal 3-15 range and each covers a distinct capability needed for phone interaction: device discovery, notifications, reminders, approvals, file transfer, shared reading, and phone locating. None feel redundant or padding.
The core lifecycle is covered: reminders can be created and canceled, approvals can be requested and polled, and notifications, files, and shared items have send/read paths. Minor gaps exist, such as no way to list scheduled reminders or confirm delivery/ringing, but these appear to be intentional stateless-server design choices rather than critical missing operations.
Available Tools
9 toolscancel_reminderCancel reminderAIdempotentInspect
Cancel a previously scheduled reminder by its reminder_id. Fire-and-forget: the server does not store reminders, so it cannot confirm the id was real — an unknown or already-fired reminder is silently ignored rather than reported as an error.
Inputs: reminder_id (required). Returns: status
check_replyCheck replyARead-onlyIdempotentInspect
Poll for the user's answer to a pending request_approval. Each call waits up to wait_seconds (default 20s, max 45s) server-side and returns the moment the user answers, so call it back-to-back in a loop — there's no need to add your own delay between calls. Returns pending while unanswered, answered with a choice_index once the user taps, or expired once the ask's deadline passes.
Inputs: request_id (required), wait_seconds. Returns: status, expires_at, answered_at, choice_index
find_my_phoneFind my phoneAIdempotentInspect
Ring the user's phone at full volume for up to 60 seconds, even if it's on silent or Do Not Disturb. Use this when the user asks to locate or ring their phone. Fire-and-forget: the server can't confirm the phone actually rang, only that the ring request was sent.
Inputs: no named parameters. Returns: status, warnings
list_devicesList devicesARead-onlyIdempotentInspect
List the user's own paired Reflecto devices (their phone and desktop) and whether each is reachable. A phone counts as reachable when it has a live push registration, even if it is currently asleep or switched off — reachable does not mean the user is active on it right now. For recency use statusReportedAt (unix seconds of the last device status report); lastSeenAt is coarse (hourly) for phones. Read-only — returns device names and status metadata, never any message or notification content. Call this before send_notification when you need to pick a specific device — pass that device's deviceId, not its label, when you mean exactly one: labels can repeat across devices and a repeated label delivers to all of them.
Inputs: no named parameters. Returns: devices
remind_meRemind meAInspect
Schedule a notification to appear on the user's phone at a specific future time. Use this when the user asks to be reminded of something later. at is an absolute Unix timestamp in SECONDS, between 60 seconds and 365 days from now. The phone fires it locally once it receives the setup message, so the exact second is not guaranteed (the alarm is inexact to preserve battery). Delivery of that setup message is best-effort, like any other push to the phone — a phone that never receives it never arms the reminder. Returns a reminder_id you can pass to cancel_reminder.
Inputs: at (required), message (required). Returns: fire_at, warnings, reminder_id
request_approvalRequest approvalAInspect
Ask the user a question on their phone and get a tap back — 2 to 4 answer choices (default ["Approve","Deny"]). Use this when you need the user's decision before a consequential or irreversible action and they may be away from this conversation (e.g. confirming a deploy, a destructive operation, or a purchase). Returns immediately with a request_id; poll check_reply with it to get the answer — the user may take minutes to respond.
Inputs: question (required), choices, idempotency_key, expires_in_seconds. Returns: status, created, expires_at, request_id
send_fileSend fileAInspect
Save a text file to the user's phone Downloads folder. Use this when the user asks you to write something out for them to keep on their phone — notes, a generated report, code, a log — rather than just replying inline. The file is delivered via Reflecto's servers: the content briefly passes through Reflecto in plaintext before being encrypted to the phone (this is NOT end-to-end encrypted, unlike device-to-device mirroring). Content is capped around 128KB — well under what a person would call a large file, since the whole file must be sent as this call's argument.
Inputs: content (required), filename (required). Returns: byte_length, document_id
send_notificationSend notificationAInspect
Send a push notification to the user's own paired devices (their phone and desktop running Reflecto). Use this when the user explicitly asks to be notified, pinged, or alerted, or asks you to let them know when a long-running task finishes. The notification reaches the user even when they are away from this chat. Do not use it for routine replies that belong in the conversation.
Inputs: message (required), ttl, url, tags, +5 more. Returns: id, warnings, delivered_to
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
Related MCP Connectors
Let your AI agents ask you for decisions and get your answers back, from your phone or the web.
Let your AI agent message and call your Android phone, and get your reply or the call transcript.
Give your AI agent a memory and body on your iPhone: set alarms, ring your phone, over MCP.
Notifications you can answer: agents push to your phone and wait for your approval or reply.
Related MCP Servers
AlicenseBqualityBmaintenanceEnables AI agents to reach users on their phone through push notifications, and to raise urgent, escalating alarms that fall back to a voice call until someone acknowledges. It also ships hooks that notify users automatically when Claude Code or Codex needs input or finishes a turn.36 npmMIT- AlicenseAqualityCmaintenanceLets an AI agent ask its owner first, on their phone, before doing something irreversible: ask_approval blocks until a person answers and distinguishes DENIED from NO ANSWER, so a timeout is never read as consent. send_notification covers one-way alerts with priorities and quiet hours.4MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to ring or text a user's actual iPhone, read a question or update aloud, and return the spoken answer back to the agent as text. Calls and messages land in a single titled thread per agent, with tools for polling results, waiting for replies, and labeling conversations.41MIT
- AlicenseAqualityBmaintenanceEnables AI agents to send push alerts to your phone via Blipr, useful for notifying when tasks complete, builds break, or approvals are needed.549 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.