PushNotif MCP Server
# π PushNotif MCP Server (`pushnotif-mcp-server`)
[](https://modelcontextprotocol.io)
[](https://nodejs.org)
[](LICENSE)
Official open-source **Model Context Protocol (MCP) Server** implementation for **[PushNotif.biz.id](https://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, 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 **17 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.git
cd pushnotif-mcp
npm 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 (17 Tools)
### Account Onboarding (No API Key Required)
1. **`request_registration_otp`** β Send 6-digit verification OTP to user email (includes automatic duplicate email check).
2. **`register_new_account`** β Verify OTP, create a new PushNotif account (+1,000 Free Quota Credits forever), register first website, and return `api_key` (`pn_live_...`).
3. **`login_existing_account`** β Authenticate an existing account with email & password to retrieve its `api_key`.
### Workspace, Web Push, Mobile Push & In-App Automation
4. **`list_apps`** β List all registered websites/apps, active subscriber counts, and credit balance.
5. **`create_app`** β Register a new website or mobile app and generate VAPID keys.
6. **`get_integration_guide`** β Generate copy-paste SDK snippets for HTML/JS, Laravel, Next.js/React, WordPress, Android (Kotlin), and iOS (Swift).
7. **`send_push_notification`** β Broadcast instant Web Push (VAPID), Android (FCM), and iOS (APNs) notifications.
8. **`schedule_push_notification`** β Schedule one-time or recurring (`daily` / `weekly`) push campaigns.
9. **`configure_inapp_banner`** β Configure In-App Popup Modals, Top Sticky Bars, Bottom Slide Cards, or Live Activity Toasts.
10. **`configure_rss_autopush`** β Configure automated RSS / Sitemap / Atom feed monitoring.
11. **`configure_mobile_credentials`** β Upload Firebase FCM Service Account JSON or Apple APNs `.p8` credentials.
12. **`list_subscribers`** β View active subscriber device distribution and segments.
13. **`get_campaign_analytics`** β Inspect campaign delivery, click-through rate (CTR), and conversion metrics.
14. **`create_qris_invoice`** β Generate a live QRIS payment invoice (starting from Rp 1,000 / 5,000 Credits).
15. **`check_billing_and_qris_status`** β Check real-time QRIS payment status (`PENDING` / `PAID`) and credit balance.
16. **`update_app_branding`** β Update notification icon URL and automatic Welcome Push message.
17. **`update_profile`** β Update workspace display name or account password.
---
## π License
MIT License β Copyright (c) 2026 PushNotif.biz.id (`AarsyDesign`)
TDQS
Scored across 17 tools
Each tool targets a clearly distinct resource+action, and descriptions actively cross-reference the nearest confusable sibling (e.g. send vs. schedule vs. configure_inapp_banner vs. configure_rss_autopush, update_profile vs. update_app_branding). The send/schedule/banner/RSS quartet are all notification-adjacent yet cleanly separated by channel and timing. An agent can reliably pick the right tool.
Consistent snake_case verb_noun pattern throughout (list_apps, create_app, send_push_notification, configure_inapp_banner, check_billing_and_qris_status). Verbs are used with stable meaning (list/get for reads, create/configure/update for writes, check for status). No style mixing.
17 tools is slightly above the ideal 3-15 range but each earns its place given the broad domain (auth, apps, notifications, mobile/RSS/in-app channels, billing, analytics, subscribers). No obvious redundancy or filler tools. Marginally heavy but well-scoped for the feature surface.
Strong lifecycle coverage: registration/login, app creation and branding, multi-channel sending, scheduling/cancel, billing, analytics, subscriber inspection, and integration guides. Minor gaps remainβno delete_app, no subscriber/tag management, and scheduled campaigns can only be canceled, not edited. These are workaround-able, so a small deduction only.