lauther-mcp
lauther-js
JavaScript packages for Lauther — push notifications to your phone from any web app or script, and questions that wait for a yes before something irreversible happens.
Package | What it is |
The Node client. Zero dependencies, two methods, TypeScript types bundled. | |
An MCP server, so a coding agent can ask its owner for approval on their phone. |
npm install lauther-clientimport { Lauther } from "lauther-client";
const lauther = new Lauther(process.env.LAUTHER_TOKEN);
await lauther.push({ title: "Backup finished" });
if (await lauther.ask("Deploy v2.4 to production?")) {
await deploy();
}Only an explicit Approve returns true. A denial and a timeout are both
false — an unanswered question must never read as a yes.
Why this exists
A browser tab can't reach someone who closed it, and building a native app per project to fix that was never going to happen. Lauther is one app your projects share over an HTTP call.
Related MCP server: Better Call Claude
Development
Node 18+. npm workspaces, no build step, no bundler.
npm install
npm test # both packageslauther-client has no runtime dependencies and is tested with a stubbed fetch.
lauther-mcp is tested by spawning the real server over stdio and driving it
with a real MCP client against a fake Lauther API — so a broken tool schema or
broken stdio wiring fails the suite rather than a user's agent.
Links
Recipes for curl, Python, Home Assistant, Uptime Kuma and GitHub Actions
The app: App Store · Google Play
hello@lauther.id reaches a human.
MIT
Available Tools
4 toolsask_approvalAsk a human for approvalA
Ask the human who owns this machine to approve or deny something, on their phone, and wait for the answer. Use this BEFORE anything irreversible or expensive: deploying, deleting data, spending money, sending mail to real people, force-pushing, touching production. Returns APPROVED, DENIED, or NO ANSWER. Proceed only on APPROVED — a denial and a timeout both mean stop.
Inputs: question (required), details, timeout_seconds, require_biometric.
get_locationAsk a human to share their locationA
Ask the human who owns this phone to share where they are right now. They get a prompt and choose Share or Decline; if they share, one position is sent, once, as it was at that moment. Use it when you need their location to do the task (find the nearest branch, set a timezone, log a site visit), not to track them. Returns SHARED with latitude, longitude and accuracy, or DECLINED, NO ANSWER or EXPIRED. On anything but SHARED you have no location: do not guess one.
Inputs: details, question, timeout_seconds, require_biometric.
request_photoAsk a human for a photoA
Ask the human who owns this phone for one picture. They get a prompt and choose to take a photo (or pick one) or Decline. Use it when you need to see something only they can show you: a label, a screen, a whiteboard, a damaged part. Returns SHARED with a link plus the image itself so you can look at it directly, or DECLINED, NO ANSWER or EXPIRED. The link works for 7 days and the photo is then deleted.
Inputs: details, question, timeout_seconds, require_biometric.
send_notificationSend a notification to the human's phoneA
Tell the human something, on their phone. Use for finishing a long job, a build breaking, or anything worth interrupting them for. This does NOT wait for a reply — use ask_approval when you need permission.
Inputs: title (required), url, message, priority.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 4 tools
Each tool has a clearly distinct purpose: ask_approval blocks for a yes/no decision, send_notification is fire-and-forget, get_location requests a one-shot position, and request_photo requests a one-shot image. The descriptions explicitly draw the approval-vs-notification boundary, so an agent cannot easily confuse them.
All four names follow a consistent verb_noun snake_case pattern (ask_approval, send_notification, get_location, request_photo). The verb variety is semantically motivated rather than arbitrary, and the pattern is perfectly predictable.
Four tools is a tight, well-scoped surface for a phone-based human-in-the-loop bridge. Every tool covers a genuinely distinct interaction type and none feels redundant or filler.
The surface covers the main human-interaction needs: permission, notification, location, and visual input. A minor gap is the absence of a way to ask a free-form question and get a text answer back, since ask_approval only returns APPROVED/DENIED/NO ANSWER.
Maintenance
Related MCP Connectors
Reach your own phone from an AI agent: notifications, approval questions, reminders, ring, files.
Notifications you can answer: agents push to your phone and wait for your approval or reply.
Give any AI agent a way to ask a person — for approval, a decision, an answer or a review.
Let your AI agents ask you for decisions and get your answers back, from your phone or the web.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI assistants to send push notifications and interactive alerts to iPhone and Mac devices via the BotBell app. It allows AI to receive user replies and manage notification bots for tasks like alerts, reminders, and remote approvals.218 npm1MIT
- AlicenseNot gradedqualityCmaintenanceEnables an AI agent to place outbound phone calls through the user's own Twilio account, delivering a spoken message or asking a single question and returning the recipient's transcribed reply to the agent. It exposes just two tools—one-way notifications and one-question calls to a fixed, preconfigured number with built-in rate limits and guardrails.112 PyPI1MIT

@quirna/mcpofficial
AlicenseNot gradedqualityCmaintenanceEnables AI agents to request human approval before consequential actions, with policy-based routing, phone-based approver decisions, and signed audit evidence.42 npmMIT
tmgr-notifyofficial
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