Skip to main content
Glama
mcp-notify

mcp-notify

by box7e7

Why MCP Notify?

Ever started a long-running AI task and walked away, only to come back wondering if it finished? MCP Notify solves this by sending push notifications directly to your phone.

  • Stay Informed — Get notified when builds complete, tests pass, or tasks finish

  • Works Everywhere — Claude Desktop, Claude Code CLI, Cursor, Windsurf

  • Simple Setup — One command to install, QR code to pair

  • Privacy First — Notifications are encrypted and never stored longer than needed


Related MCP server: MCPing

Quick Start

1. Install the MCP server:

npx -y mcp-notification setup

2. Download the iOS app:

3. Pair your device:

In your AI client, just say:

"Pair my phone"

Scan the QR code with the app. Done!


Installation

Run the setup wizard — it automatically detects and configures your AI clients:

npx -y mcp-notification setup

The wizard supports:

  • ✅ Claude Desktop

  • ✅ Claude Code CLI

  • ✅ Cursor

  • ✅ Windsurf

Manual Configuration

Add to ~/.claude/claude_desktop_config.json:

{
  "mcpServers": {
    "notify": {
      "command": "npx",
      "args": ["-y", "mcp-notification"]
    }
  }
}
claude mcp add --transport stdio --scope user notify -- npx -y mcp-notification

Add to .cursor/mcp.json or global config:

{
  "mcpServers": {
    "notify": {
      "command": "npx",
      "args": ["-y", "mcp-notification"]
    }
  }
}

Add to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "notify": {
      "command": "npx",
      "args": ["-y", "mcp-notification"]
    }
  }
}

After configuration, restart your AI client to load the MCP server.


Usage

Just talk naturally to your AI assistant:

"Notify me when you're done"
"Send a notification that the build completed"
"What's my notification quota?"
"List my paired devices"
"Remove my old phone"

Example Workflows

Long-running tasks:

"Run the full test suite and notify me when it's done"

Build monitoring:

"Build the project. If it succeeds, notify me with 'Build passed'. If it fails, send a high priority notification with the error."

Scheduled reminders:

"Send me a notification in 5 minutes to check the deployment"


MCP Tools

Tool

Description

Parameters

pair_device

Display QR code for pairing

device_name?

check_pairing_status

Check if QR was scanned

—

get_setup_status

Check if ready to send notifications

—

send_notification

Send a push notification

title, body?, priority?, url?, tags?

get_history

View notification history

limit?, tags?

get_quota

Check monthly usage limits

—

list_devices

List all paired devices

—

remove_device

Unpair a device

device_id

Notification Priority Levels

Priority

Behavior

low

Silent delivery

normal

Standard notification (default)

high

Prominent alert

critical

Bypasses Do Not Disturb


How It Works

┌─────────────────┐         ┌─────────────────┐         ┌─────────────────┐
│   AI Client     │         │   MCP Server    │         │   iOS App       │
│  (Claude, etc)  │◀───────▶│ (mcp-notification)│◀───────▶│  (MCP Notify)   │
└─────────────────┘   MCP   └─────────────────┘   APNs  └─────────────────┘
                    Protocol        │
                                    │
                            ┌───────▼───────┐
                            │  Notify API   │
                            │ (mcpnotify.dev)│
                            └───────────────┘

Command Detection:

The package automatically detects how it's being invoked:

Invocation

Result

mcp-notification setup

Setup wizard (always)

mcp-notification in terminal

Setup wizard (TTY detected)

Spawned by AI client

MCP stdio server (no TTY)

mcp-notification server

MCP server (always)

This is achieved by checking process.stdin.isTTY — when you run it in a terminal, stdin is connected to a TTY. When an AI client spawns it, stdin is a pipe for MCP JSON-RPC communication.


Configuration

Environment Variables

Variable

Description

Default

MCP_NOTIFY_API_URL

Backend API URL

https://api.mcpnotify.dev/v1

Credential Storage

Credentials are stored locally in ~/.mcp-notify/:

~/.mcp-notify/
├── credentials.json    # API key and user info
└── pairing_state.json  # Temporary pairing data

Troubleshooting

Setup wizard not detecting my client?

  1. Make sure the client is installed and working

  2. Check that config files exist and are writable

  3. Try manual configuration instead

Notifications not arriving?

  1. Check pairing status: say "check pairing status" to your AI

  2. Verify the iOS app has notification permissions enabled

  3. Check your quota: say "what's my quota"

"Already configured" message?

The setup wizard detects existing configurations. To reconfigure:

  1. Remove the existing entry from your client's config file

  2. Run the setup wizard again


Development

# Clone the repo
git clone https://github.com/box7e7/mcp-notify
cd mcp-notify

# Install dependencies
npm install

# Build
npm run build

# Test setup wizard locally
npm link
mcp-notification setup

# Run tests
npm test

# Development mode (watch)
npm run dev

Project Structure

mcp-notify/
├── src/
│   ├── index.ts              # Entry point (TTY detection)
│   ├── cli/
│   │   ├── setup.ts          # Setup wizard
│   │   ├── config-manager.ts # Client config management
│   │   └── platform-detector.ts
│   ├── tools/
│   │   ├── pairing.tools.ts  # Device pairing
│   │   ├── notification.tools.ts
│   │   └── account.tools.ts
│   └── services/
│       ├── api-client.ts     # Backend communication
│       ├── credentials.ts    # Local credential storage
│       └── qr-generator.ts   # QR code generation
├── package.json
└── tsconfig.json


License

MIT © box7e7


Available Tools

8 tools
check_pairing_statusA

Check if the QR code has been scanned and pairing is complete. Use this after displaying a QR code.

Inputs: no named parameters.

get_historyA

View your recent notification history.

Inputs: tags, limit.

get_quotaA

Check your notification quota and usage. Shows how many notifications you can send this month.

Inputs: no named parameters.

get_setup_statusA

Check if MCP Notify is set up and ready to send notifications. Returns pairing status and device count.

Inputs: no named parameters.

list_devicesA

List all paired devices that can receive notifications.

Inputs: no named parameters.

pair_deviceA

Pair your phone to receive notifications. Displays a QR code to scan with the MCP Notify mobile app. This is the first step for new users.

Inputs: device_name.

remove_deviceB

Remove a paired device. It will no longer receive notifications.

Inputs: device_id (required).

send_notificationA

Send a push notification to your paired devices. Use this when the user asks to be notified about something.

Inputs: title (required), url, body, tags, +1 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4/5.0

    Scored across 8 tools

    Disambiguation4/5

    Most tools target clearly distinct actions: pairing, sending, history, quota, and device management. The only mild overlap is between check_pairing_status and get_setup_status, but their descriptions differentiate an in-progress QR scan from overall readiness.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern in snake_case, such as pair_device, send_notification, get_history, and remove_device. The verbs are clear and the pattern is predictable throughout.

    Tool Count5/5

    Eight tools is a well-scoped size for a notification server, covering setup, sending, status, history, quota, and device management without unnecessary redundancy. Each tool earns its place.

    Completeness5/5

    The surface covers the full notification lifecycle: pairing, setup verification, sending, history, quota monitoring, device listing, and device removal. No obvious blocking gaps exist for the stated purpose.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      B
      quality
      D
      maintenance
      Enables AI assistants to send push notifications to mobile devices via Pushover, allowing users to receive instant alerts for task completions, errors, reminders, and custom messages through their AI conversations.
      1
      9 npm
      2
      MIT
    • A
      license
      B
      quality
      D
      maintenance
      Enables AI assistants to send desktop notifications on macOS with rich formatting, urgency levels, and sound options.
      1
      28 npm
      1
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables sending iOS push notifications through the Bark service directly from Claude conversations. Supports device aliases, all Bark API parameters, and async delivery.
      69 npm
      3
      MIT