Pushary

Push notifications and human-in-the-loop approvals for AI agents.

От сообщества: Добавлен пользователем или импортирован; проверьте владельца перед подключениемРаботаетНужен API-ключГлобальныйБесплатноМожет изменять данные

Что умеет

  • Send Notification: Send a one-way push notification to the user's phone and browser. Nothing is awaited; use ask_user instead when you need an answer back. Reach for this when a long-running task fini
  • List Subscribers: List push notification subscribers for the site, with optional filters. Use it to find who can receive notifications, look up a subscriber ID for targeted delivery, or audit subscrip
  • Get Subscriber: Get full details of a single subscriber by ID: browser, OS, location, tags, subscription status, and activity. Use it to inspect one recipient before targeting them or to debug why a d

Какие данные видит

Нужен ли аккаунт

Нужен API-ключ из настроек сервиса

Push notifications and human-in-the-loop approvals for AI agents.

Your agent hits a decision it should not make alone, or finishes a long task while you are away from the terminal. Pushary sends the question to your phone. You answer from the lock screen and the agent keeps going.

Tools

  • ask_user asks the user a question. Use confirm for yes/no, select for a fixed set of options, input for free text.
  • wait_for_answer waits for the reply.
  • send_notification is one way: a long task finished, or the agent hit an error it cannot resolve.
  • cancel_question retracts a pending question that is no longer needed.

Pass agentName so the user knows which session is asking.

Setup

Get an API key at https://pushary.com/sign-up and pass it as api_key, then connect a phone from the dashboard so notifications have somewhere to land.

Works with Claude Code, Codex, Cursor, Cline, Windsurf, Hermes and any MCP client. Every question and answer is recorded, so there is an audit trail of what the agent asked and what you decided.

Список инструментов сервера (21)

Технические названия из tools/list. Нужны только разработчикам.

send_notificationSend a one-way push notification to the user's phone and browser. Nothing is awaited; use ask_user instead when you need an answer back. Reach for this when a long-running task finishes and the user asked to be told, when the agent hits an error it cannot resolve on its own, or for any "notify me when my agent needs me" moment while the user is away from the terminal. By default the notification reaches every device connected to the site; narrow delivery with subscriberIds, externalIds, or tags. The optional context object turns the tap-through into a rich detail page (summary, bullet details, changed files, error info, next steps), and context.askQuestion embeds a decision prompt on that page, returning a linkedCorrelationId you can poll with wait_for_answer. Returns per-channel delivery counts for web and mobile, plus a warning when zero devices are connected. Works from Claude Code, Codex, Cursor, Hermes, or any MCP client; no Claude subscription is required. SIDE EFFECT: delivers real notifications to real devices immediately.
list_subscribersList push notification subscribers for the site, with optional filters. Use it to find who can receive notifications, look up a subscriber ID for targeted delivery, or audit subscription health by status. Returns a paginated list; pass the cursor from the response to fetch the next page.
get_subscriberGet full details of a single subscriber by ID: browser, OS, location, tags, subscription status, and activity. Use it to inspect one recipient before targeting them or to debug why a device did not receive a notification.
count_subscribersGet subscriber counts for the site broken down by status: total, active, and unsubscribed. A quick way to check audience size before sending, or to verify that at least one device is subscribed. Takes no parameters.
list_campaignsList push notification campaigns in reverse chronological order, including each campaign's status (draft, scheduled, sending, sent, paused). Use it to find a campaign ID before calling get_campaign, send_campaign, or get_campaign_stats. Paginated; pass the cursor from the response to fetch the next page.
create_campaignCreate a push notification campaign in draft status. Nothing is delivered yet: send it with send_campaign, or set scheduledAt to queue it for a future time. Use campaigns instead of send_notification when the message targets an audience segment and you want delivery stats afterwards. SIDE EFFECT: creates a new campaign resource.
get_campaignGet full details of a campaign by ID: content, status, targeting, schedule, and delivery counts. Use it to verify a draft before send_campaign or to check the state of a campaign you sent earlier.
send_campaignSend a draft or scheduled campaign immediately, skipping any schedule. Confirm the campaign content and targeting with get_campaign first. SIDE EFFECT: triggers push notification delivery to all targeted subscribers. This action cannot be undone; consider asking the user with ask_user before sending on their behalf.
pause_campaignPause an active or currently sending campaign. Use it to stop a campaign that was sent by mistake or needs a content fix. SIDE EFFECT: halts further notification delivery for this campaign; notifications already delivered cannot be recalled.
get_campaign_statsGet delivery statistics for a campaign: sent, delivered, clicked, and failed counts plus their rates. Use it after send_campaign to report how a campaign performed.
list_templatesList reusable notification templates for the site. Use it to find an existing template before creating a duplicate with create_template. Paginated; pass the cursor from the response to fetch the next page.
create_templateCreate a reusable notification template so the same title, body, and imagery can be reused across campaigns without retyping. Nothing is sent by this call. SIDE EFFECT: creates a new template resource.
list_flowsList automation flows for the site, optionally filtered by status. Use it to find a flow ID before calling activate_flow or pause_flow, or to check what automations are currently running. Paginated; pass the cursor from the response to fetch the next page.
create_flowCreate an automation flow that sends notification sequences in response to subscriber events, such as a welcome series after subscription or a follow-up after a notification click. The flow is created in draft status and does nothing until activate_flow is called. SIDE EFFECT: creates a new flow resource.
activate_flowActivate a draft or paused flow so it starts running. Review the flow steps first with list_flows or the dashboard. SIDE EFFECT: the flow begins processing subscriber events and sending its notifications automatically until paused.
pause_flowPause an active flow so it stops reacting to subscriber events. Use it to halt an automation that is misfiring or no longer wanted; reactivate later with activate_flow. SIDE EFFECT: stops the flow from processing new events. In-progress executions may still complete.
ask_userAsk the user a question as a push notification on their phone and block until they answer. Reach for this whenever you need the user's decision and they may be away from the terminal: approving a risky or irreversible step (deleting files, force pushing, spending money, sending external messages), picking between implementation options, or supplying missing input. The user answers from the lock screen or a decision page; you do not need a separate wait_for_answer call because this tool waits by default. Three question types: "confirm" (yes/no), "select" (2 to 6 fixed choices), "input" (free text). Timing: a single call blocks for at most 55 seconds, but the question itself stays answerable for 10 minutes. On { answered: true } the response carries value with the user's choice or text. On { answered: false, timedOut: true } keep the returned correlationId and call wait_for_answer with it, retrying up to 3 times with timeoutMs 55000, before falling back to asking in the terminal. Every response carries answerUrl, the signed-in dashboard page where this question is waiting. When you report that you are waiting, print that URL to the user so they can answer from a browser instead of hunting for it. Works from Claude Code, Codex, Cursor, Hermes, or any MCP client; no Claude subscription is required. SIDE EFFECT: sends a real push notification.
propose_scopePropose what this run will touch and block until the user ratifies it. Call ONCE at the start of a multi-step run, before doing work. The user sees the paths you intend to change, the areas you promise to leave alone, and your definition of done, and approves the whole thing in one tap. After that, editing a file outside the agreed scope stops being auto-approvable: it becomes a separate "wants to widen scope" question instead of a silent approval, so you are asked once about the boundary rather than repeatedly about each file. Use glob syntax ("src/**", "**/*.test.ts"). Shell commands are NOT scoped here, they stay governed by the permission policy. Scope lives for this session only and is never inherited by another run. Returns { ratified, answered, value }; ratified:true means the contract is live. If the user declines, do not proceed as if they had agreed, ask them what scope they want. SIDE EFFECT: sends a real push notification.
wait_for_answerPoll for the user's answer to a previously created question. Use it in three cases: after ask_user with wait set to false, after an ask_user call that returned timedOut, or with the linkedCorrelationId from a send_notification that embedded an askQuestion. Each call blocks until the answer arrives or timeoutMs expires (default 30 seconds, max 55). Questions live for 10 minutes in Redis, so when a call comes back { answered: false }, retry with the same correlationId up to 3 times with timeoutMs 55000 to give the user time to reach their phone; only then treat the question as unanswered and fall back to asking in the terminal. Returns { answered: true, value } once the user responds, where value is "yes"/"no" for confirm, the chosen option for select, or the typed text for input.
cancel_questionRetract a pending question so it can no longer be answered. Use this when a question became irrelevant before the user replied: the agent found the answer itself, the task was aborted, or a newer question supersedes it. Cancelling prevents a stale approval from arriving later and acting on work that has moved on. Only affects questions that are still pending; questions expire on their own 10 minutes after creation. Returns { cancelled: true } when a pending question was removed, { cancelled: false } when it was already answered, expired, or unknown.
list_sessionsRead-only fleet view. Returns the live agent sessions for your site, keyed by machine and session, with each session's computed status (active, idle, waiting, errored) and any pending approval questions. Use it to check what your parallel agents are doing, spot which one is blocked waiting on a human answer, or confirm a session is still alive before assigning follow-up work. Does NOT start, stop, or steer agents, and sends no notification.