Available Tools
All MCP tools exposed by the Pushary server
Tools Reference
The Pushary MCP server exposes 19 tools across six categories. Each tool uses your API key for authentication and delegates to the Pushary REST API.
Notifications
send_notification
Send a push notification to subscribers. Target by subscriber IDs, external IDs, or tags.
| Parameter | Type | Required | Description |
|---|---|---|---|
title | string | Yes | Notification title (max 100 chars) |
body | string | Yes | Notification body text (max 500 chars) |
url | string | No | URL opened when the notification is clicked |
iconUrl | string | No | Notification icon image URL |
imageUrl | string | No | Large image shown in the notification |
subscriberIds | string[] | No | Target specific subscriber IDs |
externalIds | string[] | No | Target subscribers by external ID |
tags | string[] | No | Target subscribers with any of these tags |
Side effect: Delivers real notifications to real users immediately.
Subscribers
list_subscribers
List push notification subscribers with optional filters. Returns a paginated list.
| Parameter | Type | Required | Description |
|---|---|---|---|
status | string | No | Filter: active, unsubscribed, expired, or bounced |
tags | string[] | No | Filter by tags |
externalId | string | No | Filter by external ID |
limit | number | No | Results per page (1-100, default 20) |
cursor | string | No | Pagination cursor from a previous response |
get_subscriber
Get full details of a single subscriber by ID, including browser, OS, location, tags, and activity.
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | The subscriber ID |
count_subscribers
Get subscriber counts broken down by status: total, active, and unsubscribed. No parameters required.
Campaigns
list_campaigns
List campaigns with pagination, returned in reverse chronological order.
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | number | No | Results per page (1-100) |
cursor | string | No | Pagination cursor |
create_campaign
Create a new push notification campaign in draft status.
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Internal campaign name |
title | string | Yes | Notification title (max 100 chars) |
body | string | Yes | Notification body (max 500 chars) |
iconUrl | string | No | Notification icon URL |
imageUrl | string | No | Large image URL |
actionUrl | string | No | Click-through URL |
scheduledAt | string | No | ISO 8601 datetime to schedule delivery |
segmentId | string | No | Target segment ID |
tags | string[] | No | Target subscribers with these tags |
Side effect: Creates a new campaign resource.
get_campaign
Get full campaign details by ID, including status, targeting, and delivery counts.
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | The campaign ID |
send_campaign
Send a draft or scheduled campaign immediately.
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | The campaign ID to send |
Side effect: Triggers push notification delivery to all targeted subscribers. This action cannot be undone.
pause_campaign
Pause an active or sending campaign.
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | The campaign ID to pause |
Side effect: Stops further notification delivery for this campaign.
get_campaign_stats
Get delivery statistics for a campaign: sent, delivered, clicked, failed counts and rates.
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | The campaign ID |
Templates
list_templates
List reusable notification templates with pagination.
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | number | No | Results per page (1-100) |
cursor | string | No | Pagination cursor |
create_template
Create a reusable notification template.
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Internal template name |
title | string | Yes | Notification title (max 100 chars) |
body | string | Yes | Notification body (max 500 chars) |
iconUrl | string | No | Notification icon URL |
imageUrl | string | No | Large image URL |
actionUrl | string | No | Click-through URL |
Side effect: Creates a new template resource.
Flows
list_flows
List automation flows with optional status filter.
| Parameter | Type | Required | Description |
|---|---|---|---|
status | string | No | Filter: draft, active, paused, or archived |
limit | number | No | Results per page (1-100) |
cursor | string | No | Pagination cursor |
create_flow
Create an automation flow with a trigger and steps.
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Flow name |
description | string | No | Flow description |
triggerType | string | Yes | notification_click, notification_impression, notification_dismiss, subscription, or unsubscription |
triggerCampaignId | string | No | Campaign ID for notification-based triggers |
steps | array | No | Ordered list of flow steps (see below) |
Each step in the steps array has:
| Field | Type | Description |
|---|---|---|
stepType | string | send_notification, delay, or exit |
config.notification | object | For send_notification: title, body, iconUrl?, imageUrl?, actionUrl? |
config.delay | object | For delay: value (number) and unit (seconds, minutes, hours, days) |
Side effect: Creates a new flow resource.
activate_flow
Activate a draft or paused flow.
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | The flow ID to activate |
Side effect: The flow begins processing subscriber events and executing steps automatically.
pause_flow
Pause an active flow.
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | The flow ID to pause |
Side effect: Stops the flow from processing new events. In-progress executions may still complete.
Human-in-the-Loop
These tools enable bidirectional communication between your AI agent and a human user via push notifications. The agent asks a yes/no question, the user responds by tapping a button in the notification, and the agent retrieves the answer.
ask_user_yes_no
Send a yes/no question to the user via push notification. The user receives a notification that opens a decision page with Yes and No buttons.
| Parameter | Type | Required | Description |
|---|---|---|---|
question | string | Yes | The yes/no question to ask (max 300 chars) |
subscriberIds | string[] | No | Target specific subscriber IDs |
externalIds | string[] | No | Target subscribers by external ID |
tags | string[] | No | Target subscribers with any of these tags |
Returns a correlationId that you pass to wait_for_answer to retrieve the response. Questions expire after 10 minutes.
Side effect: Sends a real push notification to the targeted subscribers.
wait_for_answer
Long-poll for the user's response to a question sent via ask_user_yes_no. Blocks until the user responds or the timeout is reached.
| Parameter | Type | Required | Description |
|---|---|---|---|
correlationId | string | Yes | The correlationId returned by ask_user_yes_no |
timeoutMs | number | No | How long to wait in milliseconds (default 30000, max 55000) |
Returns { answered: true, value: "yes" | "no" } if answered, or { answered: false } on timeout. If the answer is not ready, call this tool again with the same correlationId.
cancel_question
Cancel a pending question so it can no longer be answered.
| Parameter | Type | Required | Description |
|---|---|---|---|
correlationId | string | Yes | The correlationId of the question to cancel |
Returns { cancelled: true } if the question was found and deleted, or { cancelled: false } if it was already expired or not found.