Skip to main content
Glama

PushNotif Official MCP Server

schedule_push_notification

Create a new scheduled or recurring push notification campaign, edit an existing queued campaign (via update_campaign_id), or cancel a queued campaign before execution (via cancel_campaign_id). Use this tool for delayed, recurring, or editable future broadcasts; do not use it for immediate sending (use send_push_notification instead) or automated RSS feed polling (use configure_rss_autopush instead). Prerequisite: call list_apps to obtain app_id, or call get_campaign_analytics to obtain an existing cmp_sch_xxxx ID for editing or cancellation. Requires PUSHNOTIF_API_KEY; scheduling, editing, or canceling costs 0 credits up front, and 1 credit per delivered device is deducted only when the schedule fires (mutually exclusive modes: pass cancel_campaign_id to delete, update_campaign_id to modify fields in-place, or neither to create a new schedule). Returns JSON { ok, action, scheduled_campaign: { id, app_id, title, body, scheduled_for, recurrence_rule, status } }.

Input Schema

NameRequiredDescriptionDefault
urlNoOptional HTTPS destination URL opened when the notification is tapped
bodyNoNotification body text (1 to 240 characters; required when creating, optional when editing via update_campaign_id)
titleNoNotification headline (1 to 100 characters; required when creating, optional when editing via update_campaign_id)
app_idNoTarget application ID in format app_xxxx (required when creating a new schedule)
scheduled_forNoISO-8601 execution timestamp with timezone offset (e.g., '2026-10-21T08:00:00+07:00')
recurrence_ruleNoRecurrence pattern: 'once' (default), 'daily', 'twice_daily', 'weekly', 'monthly', 'every_30m', 'every_3h', 'every_6h', or a 5-field cron expression
cancel_campaign_idNoOptional existing scheduled campaign ID (format cmp_sch_xxxx from get_campaign_analytics) to cancel and remove from the queue
update_campaign_idNoOptional existing scheduled campaign ID (format cmp_sch_xxxx from get_campaign_analytics) to edit in-place with new title, body, url, scheduled_for, or recurrence_rule

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations: discloses the PUSHNOTIF_API_KEY requirement, the credit model (0 up front, 1 credit per delivered device charged when the schedule fires), and the mutual exclusivity of cancel/update/create modes, plus the return shape. Minor gap: annotations declare destructiveHint=false while the description says cancel_campaign_id will 'delete' and 'remove from the queue' — the description could reconcile that asymmetry (irreversible queue removal vs. no data destruction) rather than leave it implicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core verb+resource and every sentence carries information (alternatives, prerequisites, auth, cost, mode exclusivity, return shape). Dense single-paragraph packing of mode rules and cost rules makes it slower to scan than a short bulleted breakdown would be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter, zero-required mutation tool with conditional requirements and no output schema, the description supplies the mode logic, prerequisites, credential/cost behavior, and an inline return shape — everything needed to call it correctly in any of its three modes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so per-parameter meaning is already documented; the description still adds value by explaining that the three mode parameters are mutually exclusive and that passing neither means create. It does not, however, explain interactions such as what happens if title/body are supplied with cancel_campaign_id, or how scheduled_for and recurrence_rule interact.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names specific verbs and a specific resource: creating, editing (via update_campaign_id) and cancelling (via cancel_campaign_id) scheduled/recurring push campaigns, and explicitly excludes two named siblings (send_push_notification for immediate sends, configure_rss_autopush for feed polling). An agent can distinguish this from every sibling without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit when-to-use ('delayed, recurring, or editable future broadcasts'), when-not ('do not use it for immediate sending'), and named alternatives for the excluded cases. It also gives the prerequisite chain (call list_apps for app_id; call get_campaign_analytics for cmp_sch_xxxx), which is exactly the guidance an agent needs before invoking.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.