# Pushary MCP server

Notify me when my agent needs me: approve from my phone, answer questions away from the terminal.

## Links
- Registry page: https://www.getdrio.com/mcp/io-github-pushary-pushary
- Repository: https://github.com/Pushary/pushary-skill

## Install
- Endpoint: https://pushary.com/api/mcp/mcp
- Auth: Auth required by registry metadata

## Setup notes
- Remote header: Authorization (required; secret)
- Remote header: Authorization (required; secret)
- The upstream registry signals required auth or secrets.
- Remote endpoint: https://pushary.com/api/mcp/mcp
- Header: Authorization
- Remote endpoint: https://pushary.com/api/mcp/sse
- Header: Authorization

## Tools
- send_notification (Send Push 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 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. Endpoint: https://pushary.com/api/mcp/mcp
- list_subscribers (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 subscription health by status. Returns a paginated list; pass the cursor from the response to fetch the next page. Endpoint: https://pushary.com/api/mcp/mcp
- get_subscriber (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 device did not receive a notification. Endpoint: https://pushary.com/api/mcp/mcp
- count_subscribers (Count Subscribers) - Get 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. Endpoint: https://pushary.com/api/mcp/mcp
- list_campaigns (List Campaigns) - List 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. Endpoint: https://pushary.com/api/mcp/mcp
- create_campaign (Create Campaign) - Create 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. Endpoint: https://pushary.com/api/mcp/mcp
- get_campaign (Get Campaign) - Get 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. Endpoint: https://pushary.com/api/mcp/mcp
- send_campaign (Send Campaign) - Send 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. Endpoint: https://pushary.com/api/mcp/mcp
- pause_campaign (Pause Campaign) - Pause 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. Endpoint: https://pushary.com/api/mcp/mcp
- get_campaign_stats (Get Campaign Statistics) - Get 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. Endpoint: https://pushary.com/api/mcp/mcp
- list_templates (List Templates) - List 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. Endpoint: https://pushary.com/api/mcp/mcp
- create_template (Create Template) - Create 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. Endpoint: https://pushary.com/api/mcp/mcp
- list_flows (List Flows) - List 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. Endpoint: https://pushary.com/api/mcp/mcp
- create_flow (Create Flow) - Create 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. Endpoint: https://pushary.com/api/mcp/mcp
- activate_flow (Activate Flow) - Activate 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. Endpoint: https://pushary.com/api/mcp/mcp
- pause_flow (Pause Flow) - Pause 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. Endpoint: https://pushary.com/api/mcp/mcp
- ask_user (Ask User a Question) - Ask 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. Endpoint: https://pushary.com/api/mcp/mcp
- propose_scope (Propose Run Scope) - Propose 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. Endpoint: https://pushary.com/api/mcp/mcp
- wait_for_answer (Wait for User Answer) - Poll 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. Endpoint: https://pushary.com/api/mcp/mcp
- cancel_question (Cancel Pending Question) - Retract 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. Endpoint: https://pushary.com/api/mcp/mcp
- list_sessions (Agent Status) - Read-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. Endpoint: https://pushary.com/api/mcp/mcp

## Resources
Not captured

## Prompts
Not captured

## Metadata
- Owner: io.github.Pushary
- Version: 1.1.0
- Runtime: Sse, Streamable Http
- Transports: HTTP
- License: Not captured
- Language: Not captured
- Stars: Not captured
- Updated: Jul 5, 2026
- Source: https://registry.modelcontextprotocol.io
