PushNotif Official MCP Server

io.github.AarsyDesignPublished by GitHub account AarsyDesignv2.5.0Updated Oct 25, 2026

Web Push (VAPID), Android (FCM), iOS (APNs), In-App Popup, Toast & Transactional Email OTP engine.

Overview

AI-generated overview

PushNotif's official MCP server for creating accounts, managing apps, and sending web, mobile and in-app push notifications plus transactional emails.

What you can do
  • Register or log in to a PushNotif account and retrieve an API key
  • List, create, rebrand and delete websites or mobile apps, with VAPID keys and SDK snippets
  • Send instant or scheduled/recurring push notifications over Web Push, FCM and APNs
  • Configure in-app banners, social proof toasts, RSS auto-push and payment webhooks
  • Manage subscribers: list devices, assign segment tags, unsubscribe, bulk import, export
  • Send transactional emails and OTPs, read campaign analytics, and handle QRIS credit top-ups
When to use it
Useful when you want an assistant to set up and operate a PushNotif notification workspace from chat: onboarding a site or app, broadcasting or scheduling pushes, configuring in-page promos and email automation, or checking delivery metrics and credit balance.
Requirements
A remote Streamable HTTP endpoint, or a local Node.js/npx or Docker run of the server. An API key sent as an Authorization Bearer header (or PUSHNOTIF_API_KEY for local runs); account registration and login tools work without a key. Network access to the PushNotif service.
Before you install
The server handles live API keys and account credentials (email and password) passed through chat, and can create or update passwords. It can send real notifications and emails to subscribers, delete apps with all their subscribers and history, and generate QRIS invoices that spend real money on credits. FCM service account JSON and APNs .p8 credentials may be uploaded.

Installation

In SourceWeft

  1. Open PushNotif Official MCP Server in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.AarsyDesign%2Fpushnotif-mcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "pushnotif-official": {
      "type": "http",
      "url": "https://pushnotif.biz.id/mcp"
    }
  }
}

README

🔔 PushNotif MCP Server (pushnotif-mcp-server)

[Listed on mcpservers.org] [AllMCPs Verified] [AgentShield Security]

[MCP Protocol] [Node.js] [License: MIT]

Official open-source Model Context Protocol (MCP) Server implementation for PushNotif.biz.id — allowing AI coding assistants (Claude Desktop, Claude Code, Cursor, Windsurf, Cline, and Glama) to register accounts, generate SDK snippets, broadcast Web Push (VAPID) & Mobile Push (Android FCM / iOS APNs), configure In-App Popup Banners, Social Proof Toasts, Transactional Email OTP, and manage QRIS credits.


📦 Repository Architecture (Open-Source MCP Server Implementation)

This repository contains the complete, runnable MCP Server implementation built on @modelcontextprotocol/sdk:

  • src/index.js — Full Stdio MCP Server implementation (@modelcontextprotocol/sdk) exposing all 19 PushNotif tools (ListToolsRequestSchema & CallToolRequestSchema).
  • Dockerfile — Containerized build for Glama.ai automated inspection and local Docker execution.
  • package.json — Node.js ES Module package (bin: pushnotif-mcp).
  • glama.json & smithery.yaml — Registry metadata manifests.

🚀 Quick Start (Local Stdio MCP Server)

Option 1: Run via Node.js / npx (Stdio)

Clone and install dependencies:

bash
git clone https://github.com/AarsyDesign/pushnotif-mcp.gitcd pushnotif-mcpnpm install

Add to your claude_desktop_config.json or .cursor/mcp.json:

json
{  "mcpServers": {    "pushnotif": {      "command": "node",      "args": ["/absolute/path/to/pushnotif-mcp/src/index.js"],      "env": {        "PUSHNOTIF_API_KEY": "pn_live_YOUR_API_KEY_HERE"      }    }  }}

Option 2: Run via Docker (Stdio)

bash
docker build -t pushnotif-mcp .docker run -i --rm -e PUSHNOTIF_API_KEY=pn_live_YOUR_API_KEY_HERE pushnotif-mcp

Option 3: Direct Streamable HTTP Endpoint

You can also connect directly via Streamable HTTP at https://pushnotif.biz.id/mcp with Authorization: Bearer pn_live_YOUR_API_KEY_HERE.


🛠️ Available Tools (19 Full-Lifecycle Tools)

Account Onboarding (No API Key Required)

  1. register_new_account — Two-step onboarding to request a 6-digit email OTP or verify the OTP to create a new PushNotif account (+1,000 Free Quota Credits forever), register the first website, and return api_key (pn_live_...).
  2. login_existing_account — Authenticate an existing account with email & password to retrieve its api_key and optionally update workspace profile name or password.

Workspace, Web Push, Mobile Push, In-App & Transactional Email Automation

  1. list_apps — List all registered websites/apps, active subscriber counts, credit balance, and optional ready-to-paste SDK snippets (html, nextjs, laravel, wordpress, flutter).
  2. create_app — Register a new website or mobile app and generate VAPID keys.
  3. update_app_branding — Update notification icon URL, automatic Welcome Push message, or upload Firebase FCM Service Account JSON / Apple APNs .p8 credentials.
  4. delete_app — Permanently delete a registered application along with its subscribers, campaigns, and logs.
  5. send_push_notification — Broadcast instant Web Push (VAPID), Android (FCM), and iOS (APNs) notifications.
  6. schedule_push_notification — Schedule one-time or recurring (daily / weekly) push campaigns.
  7. configure_inapp_banner — Configure In-App Popup Modals, Top Sticky Bars, or Bottom Slide Cards.
  8. configure_social_toast — Configure standalone on-site Live Activity Social Proof Toast popups.
  9. configure_rss_autopush — Configure automated 24/7 RSS / Sitemap / Atom feed monitoring and auto-push.
  10. configure_payment_webhook — Generate incoming webhook URLs for Midtrans, Xendit, Mayar, Lynk.id, Duitku, Tripay, WooCommerce, and GitHub, or trigger a live test event.
  11. configure_email_automation — Configure per-app switches for Automated Transactional Emails (Order Paid Receipt, Welcome Email, Broadcast Mirror) and custom Reply-To.
  12. send_transactional_email — Send 1-to-1 transactional emails (otp_code, payment_invoice, order_status, security_alert) via PushNotif's anti-phishing locked templates.
  13. list_subscribers — View active subscriber device distribution and segment tags.
  14. update_subscriber_tags — Assign, replace, or remove audience segment tags on subscriber devices.
  15. get_campaign_analytics — Inspect campaign delivery, click-through rate (CTR), and conversion metrics.
  16. create_qris_invoice — Generate a live QRIS payment invoice (starting from Rp 1,000 / 5,000 Credits).
  17. check_billing_and_qris_status — Check real-time QRIS payment status (PENDING / PAID), credit ledger history, and downloadable PDF invoices.

📄 License

MIT License — Copyright (c) 2026 PushNotif.biz.id (AarsyDesign)

Source: README.md at commit d4e701f

Tools

19

register_new_account

Register New Account (Request or Verify OTP)

Two-step onboarding tool to request a 6-digit email OTP (step 1: omit otp_code) or verify the OTP to create a new PushNotif account with 1,000 free lifetime credits, register the initial website, and return a live API key (step 2: pass otp_code, password, and name). Use this tool only for brand-new user signups; do not use it for existing accounts (use login_existing_account instead) or to add websites to an existing account (use create_app instead). Public endpoint requiring no API key; step 1 is rate-limited to 5 OTPs per 10 minutes per IP (valid 10 minutes), while step 2 irreversibly creates a tenant and ECDSA P-256 VAPID keypair. Returns JSON { ok, step, tenant: { id, name, email, api_key, credits }, app: { id, site_name, site_url, vapid_public_key } }.

Parametersnameemailrequiredotp_codepasswordsite_urlsite_name

login_existing_account

Login Existing Account & Manage Profile

Authenticate an existing PushNotif account using email and password to retrieve its live API key and registered apps, with optional inline profile name or password update (when new_name or new_password is provided). Use this tool for existing users connecting from chat or updating account credentials; do not use it for new signups (use register_new_account instead) or app-level branding (use update_app_branding instead). Requires valid email and password (no prior API key needed), costs 0 credits, and is rate-limited against brute-force attempts; read-only unless new_name or new_password is supplied. Returns JSON { ok, tenant: { id, name, email, api_key, credits }, apps: [{ id, site_name, site_url }], profile_updated }.

Parametersemailrequirednew_namepasswordrequirednew_password

list_apps

List Registered Apps & SDK Integration Guides

List all registered websites and mobile apps in the workspace with active subscriber counts, current credit balance, and optional framework SDK installation snippets (when include_sdk_framework is set). Use this tool first as a prerequisite to obtain a valid app_id before calling send_push_notification, schedule_push_notification, update_app_branding, delete_app, configure_inapp_banner, or configure_rss_autopush; do not use it to inspect individual subscriber devices (use list_subscribers instead). Read-only operation requiring PUSHNOTIF_API_KEY with 0 credit cost; when include_sdk_framework is passed ('html', 'nextjs', 'laravel', 'wordpress', 'flutter'), each app entry also includes ready-to-paste SDK setup code. Returns JSON { tenant_name, credits_balance, total_apps, apps: [{ id, site_name, site_url, active_subscribers, sdk_guide }] }.

Parametersapp_idinclude_sdk_framework

create_app

Create New Website or Mobile App

Register a new website domain or mobile application under the authenticated workspace and generate its unique ECDSA P-256 VAPID keypair and 1-line HTML SDK snippet. Use this tool when adding an additional website or app to an existing account; do not use it to modify an existing app's icon, welcome push, or mobile keys (use update_app_branding instead) or to remove an app (use delete_app instead). Requires PUSHNOTIF_API_KEY, costs 0 credits, and creates a persistent app record where site_url must be a valid HTTPS origin (or http://localhost for local testing). Returns JSON { ok, app: { id, site_name, site_url, vapid_public_key, created_at }, sdk_snippet }.

Parameterssite_urlrequiredsite_namerequired

update_app_branding

Update App Branding, Welcome Drip, Custom VAPID & Mobile Credentials

Update an existing application's notification icon URL, automated welcome push message (including drip delay welcome_delay_sec and promo target URL welcome_url), zero-downtime custom VAPID keys (vapid_public_key & vapid_private_key for migrating from OneSignal/LaraPush), and optional native mobile push credentials (Android FCM HTTP v1 service account JSON and iOS APNs .p8 key). Use this tool to configure app-level branding, onboarding welcome alerts, custom VAPID key migration, or native mobile credentials; do not use it to create a new app (use create_app instead) or configure on-site HTML popups (use configure_inapp_banner instead). Prerequisite: call list_apps first to obtain app_id. Requires PUSHNOTIF_API_KEY and idempotently updates only the fields provided at 0 configuration cost (when welcome_enabled=true, each new subscriber welcome push deducts 1 credit; APNs requires apns_key_id, apns_team_id, apns_bundle_id, and apns_p8_key together). Returns JSON { ok, app_id, icon_url, welcome_enabled, welcome_url, welcome_delay_sec, custom_vapid_updated, android_fcm_configured, ios_apns_configured }.

Parametersapp_idrequiredicon_urlapns_key_idapns_p8_keywelcome_urlapns_team_idwelcome_bodywelcome_titleapns_bundle_idwelcome_enabledvapid_public_keyvapid_private_key+2 more

delete_app

Delete Application Permanently

Permanently delete a registered application (app_id) along with all of its subscriber device tokens, scheduled campaigns, and delivery history. Use this tool only when a user explicitly asks to remove a duplicate or decommissioned app; do not use it to pause notifications or change app settings (use update_app_branding or configure_inapp_banner instead). Prerequisite: call list_apps first to verify the exact app_id and active subscriber count. Requires PUSHNOTIF_API_KEY, costs 0 credits, and is irreversibly destructive (confirm_delete must be set to true or the call is rejected). Returns JSON { ok, deleted_app_id, deleted_site_name, subscribers_removed }.

Parametersapp_idrequiredconfirm_deleterequired

send_push_notification

Send Immediate Push Notification Broadcast

Broadcast an immediate push notification across Web Push (VAPID), Android (FCM), and iOS (APNs) to active subscribers of a specific app_id. Use this tool for instant real-time delivery; do not use it for future or recurring broadcasts (use schedule_push_notification instead) or on-site HTML popups (use configure_inapp_banner instead). Prerequisite: call list_apps first to obtain app_id. Requires PUSHNOTIF_API_KEY, deducts 1 credit (Rp 0.20) per successfully delivered device (0 credits charged for 404/410 dead tokens, which are auto-pruned), and is irreversible once dispatched; when segment is set to a custom tag (from update_subscriber_tags) instead of 'all', only subscribers carrying that tag receive the broadcast, and omitting url defaults the tap action to the app's registered site_url. Returns JSON { ok, campaign_id, total_targeted, total_delivered, total_gone_pruned, credits_deducted, credits_remaining }.

Parametersurlbodyrequiredtitlerequiredapp_idrequiredsegmenticon_url

schedule_push_notification

Create, Edit, or Cancel Scheduled Push Campaign

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 } }.

Parametersurlbodytitleapp_idscheduled_forrecurrence_rulecancel_campaign_idupdate_campaign_id

configure_inapp_banner

Configure In-App Popup & Sticky Promo Banner

Configure and publish an on-site In-App Popup or Banner (center modal, top sticky bar, or bottom slide-in toast) rendered inside the website by the PushNotif SDK without requiring browser push permission. Use this tool for visual in-page promos and announcements; do not use it for OS lock-screen notifications (use send_push_notification instead). Prerequisite: call list_apps first to obtain app_id. Requires PUSHNOTIF_API_KEY; saving configuration is idempotent and costs 0 credits, while each live visitor display deducts 1 credit (inapp_trigger controls when the banner fires—such as 'scroll_50' for 50% page scroll or 'event:add_to_cart' for custom DOM events—combined with inapp_freq to cap repeat impressions per visitor). Returns JSON { ok, app_id, inapp_enabled, inapp_style, inapp_trigger, inapp_freq }.

Parametersapp_idrequiredinapp_bodyrequiredinapp_freqinapp_styleinapp_titlerequiredsegment_taginapp_accentinapp_cta_urlinapp_enabledinapp_triggerinapp_cta_textinapp_image_url+4 more

configure_rss_autopush

Configure 24/7 RSS & Sitemap Auto-Push

Configure automated 24/7 RSS, Atom, or XML Sitemap polling for an app_id, or trigger an immediate feed check and push broadcast via dispatch_now=true. Use this tool when a blog, news portal, or store wants newly published URLs automatically broadcast as push notifications; do not use it for manual one-off messages (use send_push_notification instead) or fixed-time calendar campaigns (use schedule_push_notification instead). Prerequisite: call list_apps first to obtain app_id. Requires PUSHNOTIF_API_KEY; feed URLs are validated against SSRF rules, deduplicated by item GUID/URL so each post is sent only once, and deduct 1 credit per delivered subscriber when a new item is broadcast (setting dispatch_now=true immediately fetches and broadcasts the newest feed entry even if rss_enabled=false). Returns JSON { ok, app_id, rss_enabled, rss_feed_url, rss_interval, dispatched_now, latest_item_title }.

Parametersapp_idrequiredrss_prefixrss_enableddispatch_nowrss_feed_urlrss_interval

configure_payment_webhook

Configure Universal Incoming Webhook & Simulate Event

Generate the ready-to-paste Universal Incoming Webhook URL (POST /api/v1/apps/{app_id}/incoming-event) for 9 auto-detected formats (Midtrans, Xendit, Mayar, Lynk.id, Duitku, Tripay, Supabase Database/Auth, Saweria/Trakteer, Shopify, WooCommerce, GitHub, and Custom JSON), or trigger a live test event when simulate_test=true. Use this tool when connecting a payment gateway, Supabase backend, creator tipping page, or e-commerce store to automatically show a Live Activity Toast, broadcast a Web Push, and/or send a transactional receipt email upon settlement; do not use it for RSS blog feeds (use configure_rss_autopush instead) or manual push campaigns (use send_push_notification instead). Prerequisite: call list_apps first to obtain app_id. Requires PUSHNOTIF_API_KEY; generating the webhook URL costs 0 credits, while live or simulated push broadcasts deduct 1 credit per delivered device (toast_only mode costs 0 credits on display). Returns JSON { ok, app_id, mode, webhook_url, supported_platforms, setup_guides, simulation_result }.

Parametersmodeapp_idrequiredplatformitem_namebuyer_namesimulate_test

list_subscribers

List or Export Active Subscribers & Platform Breakdown

Retrieve active subscriber device records, assigned segment tags, platform breakdown counts (Web VAPID, Android FCM, iOS APNs), or full CSV/JSON backup export for zero-downtime migration. Use this tool to inspect audience size, platform distribution, export subscriber tokens (export_format="csv" or "json"), or obtain a subscriber_id before calling update_subscriber_tags; do not use it to view campaign click metrics (use get_campaign_analytics instead) or modify/import subscribers (use update_subscriber_tags instead). Read-only operation requiring PUSHNOTIF_API_KEY with 0 credit cost; filter by app_id and optional tag to narrow results. Returns JSON { total_active, platform_breakdown: { web, android_fcm, ios_apns }, subscribers: [{ id, app_id, platform, tags, created_at }], export_data }.

Parameterstaglimitapp_idexport_format

update_subscriber_tags

Update Subscriber Tags, Unsubscribe, or Bulk Import Subscribers

Assign or remove audience segment tags on a subscriber device (subscriber_id), permanently unsubscribe a device (unsubscribe=true), or bulk-import existing Web Push subscribers via CSV or JSON array (import_app_id + import_csv or import_subscribers) at 0 credit cost. Use this tool to manage subscriber segmentation, remove a device, or migrate subscribers from OneSignal/LaraPush/Webpushr; do not use it to list or export subscribers (use list_subscribers instead). Requires PUSHNOTIF_API_KEY and costs 0 credits. Returns JSON { ok, subscriber_id, action, tags, removed, imported, updated }.

Parametersadd_tagsimport_csvremove_tagsunsubscribeimport_app_idsubscriber_idimport_subscribers

get_campaign_analytics

Get Campaign Delivery Metrics & Scheduled Queue

Retrieve historical push campaign delivery metrics (delivered count, click count, CTR percentage, credits spent) and active scheduled queue items (cmp_sch_xxxx). Use this tool to audit campaign performance or look up scheduled campaign IDs before editing or canceling them with schedule_push_notification; do not use it to inspect QRIS payment invoices (use check_billing_and_qris_status instead) or subscriber device lists (use list_subscribers instead). Read-only operation requiring PUSHNOTIF_API_KEY with 0 credit cost; omitting app_id aggregates metrics across all workspace apps up to limit rows. Returns JSON { summary: { total_sent, total_clicks, avg_ctr_percent }, campaigns: [{ id, app_id, title, delivered_count, click_count, ctr_percent, created_at }], scheduled_queue: [{ id, app_id, title, scheduled_for, recurrence_rule, status }] }.

Parameterslimitapp_id

create_qris_invoice

Create QRIS Credit Top-Up Invoice

Create a prepaid credit top-up invoice payable via Indonesian QRIS (all banks and e-wallets) at a flat rate of Rp 0.20 per credit (Rp 1,000 = 5,000 non-expiring credits). Use this tool when the user wants to purchase additional credits; do not use it to check whether an existing invoice has been paid (use check_billing_and_qris_status instead). Requires PUSHNOTIF_API_KEY, generates a PENDING order valid for 30 minutes at 0 fee, and automatically credits the workspace upon payment webhook confirmation; if both package_id and custom amount_rp are supplied, amount_rp takes precedence (minimum Rp 1,000). Returns JSON { ok, order: { id, amount_rp, credits_added, status, qris_checkout_url, expires_at } }.

Parametersamount_rppackage_id

check_billing_and_qris_status

Check QRIS Payment Status & Credit Ledger

Check QRIS top-up order payment status (PENDING or PAID), current workspace credit balance, credit mutation ledger history, and official downloadable PDF invoice URLs. Use this tool to verify whether an order from create_qris_invoice has settled or to audit credit consumption; do not use it to generate a new payment invoice (use create_qris_invoice instead) or view campaign click rates (use get_campaign_analytics instead). Read-only operation requiring PUSHNOTIF_API_KEY with 0 credit cost; pass order_id to inspect a single invoice or omit it to list recent orders and ledger entries. Returns JSON { credits_balance, orders: [{ id, amount_rp, credits_added, status, invoice_pdf_url, created_at }], recent_ledger: [{ id, delta, reason, created_at }] }.

Parametersorder_id

configure_social_toast

Configure Standalone Live Activity Social Proof Toast

Configure the standalone on-site Live Activity Social Proof Toast (corner notification card showing recent subscriber joins, logins, and purchases) and its 3 automated DOM/webhook sensors for an app_id without overwriting the In-App Promo Banner. Use this tool to enable/disable social proof toasts, change visual theme or screen corner, or toggle auto-capture sensors; do not use it for promo popups (use configure_inapp_banner instead). Requires PUSHNOTIF_API_KEY and costs 0 credits. Returns JSON { ok, app_id, toast_enabled, toast_theme, toast_position, toast_action, sensors }.

Parametersapp_idrequiredtoast_themetoast_actiontoast_enabledtoast_positiontoast_custom_urltoast_sensor_buytoast_sensor_subtoast_custom_bodytoast_custom_htmltoast_sensor_authtoast_custom_title

configure_email_automation

Configure Email OTP, Webhook Receipt & Push Module Switches

Configure per-app module switches (ON/OFF) for Transactional Email OTP, Automated Payment Webhook Email Receipts, Order Status Emails, and the Web Push Notification collector, plus sender brand name and Reply-To email address. Use this tool to enable or disable individual channels per website; do not use it to send an immediate email or OTP (use send_transactional_email instead). Requires PUSHNOTIF_API_KEY and costs 0 credits. Returns JSON { ok, app_id, push_enabled, email_otp_enabled, email_invoice_enabled, email_status_enabled, email_brand_name, email_reply_to }.

Parametersapp_idrequiredpush_enabledemail_reply_toemail_brand_nameemail_otp_enabledemail_status_enabledemail_invoice_enabled

send_transactional_email

Send Transactional Email (OTP, Invoice, Order Status) or Verify OTP

Send a 1-to-1 locked transactional email (6-digit OTP challenge, paid invoice receipt, or order shipping status update) or verify a 6-digit OTP code entered by a user. Use this tool for transactional 1-to-1 emails and managed OTP verification; bulk marketing or promotional blasts are strictly prohibited. Requires PUSHNOTIF_API_KEY; sending an email or OTP deducts 25 credits (Rp 5), while verifying an OTP code (action=verify_otp) costs 0 credits. Returns JSON delivery receipt or OTP verification token.

Parametersactionrequiredapp_idrequiredotp_codeto_emailrequireddetail_textreference_id

Version history

1
  1. v2.5.0LatestOct 25, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts