mcp-notify

mcp-notify

Sends push notifications from AI assistants to your mobile device. Supports Claude, Cursor, Windsurf, and more.

Category
Visit Server

README

<p align="center"> <img src="https://mcpnotify.dev/logo.png" alt="MCP Notify Logo" width="120" height="120"> </p>

<h1 align="center">MCP Notify</h1>

<p align="center"> <strong>Push notifications for AI developers, delivered via MCP</strong> </p>

<p align="center"> Get real-time notifications from Claude Desktop, Claude Code, Cursor, and Windsurf on your mobile device. </p>

<p align="center"> <a href="https://www.npmjs.com/package/mcp-notification"><img src="https://img.shields.io/npm/v/mcp-notification.svg" alt="npm version"></a> <a href="https://www.npmjs.com/package/mcp-notification"><img src="https://img.shields.io/npm/dm/mcp-notification.svg" alt="npm downloads"></a> <a href="https://github.com/box7e7/mcp-notify/blob/main/LICENSE"><img src="https://img.shields.io/npm/l/mcp-notification.svg" alt="license"></a> <a href="https://github.com/box7e7/mcp-notify"><img src="https://img.shields.io/github/stars/box7e7/mcp-notify.svg?style=social" alt="GitHub stars"></a> </p>

<p align="center"> <a href="#quick-start">Quick Start</a> • <a href="#installation">Installation</a> • <a href="#usage">Usage</a> • <a href="#mcp-tools">MCP Tools</a> • <a href="#how-it-works">How It Works</a> </p>


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

Quick Start

1. Install the MCP server:

npx -y mcp-notification setup

2. Download the iOS app:

<a href="https://apps.apple.com/app/mcp-notify/id123456789"> <img src="https://developer.apple.com/assets/elements/badges/download-on-the-app-store.svg" alt="Download on App Store" height="50"> </a>

3. Pair your device:

In your AI client, just say:

"Pair my phone"

Scan the QR code with the app. Done!


Installation

Automated Setup (Recommended)

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

<details> <summary><strong>Claude Desktop</strong></summary>

Add to ~/.claude/claude_desktop_config.json:

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

</details>

<details> <summary><strong>Claude Code CLI</strong></summary>

claude mcp add --transport stdio --scope user notify -- npx -y mcp-notification

</details>

<details> <summary><strong>Cursor</strong></summary>

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

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

</details>

<details> <summary><strong>Windsurf</strong></summary>

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

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

</details>

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

Links

  • Website: https://mcpnotify.dev
  • iOS App: App Store
  • npm: https://www.npmjs.com/package/mcp-notification
  • Support: support@mcpnotify.dev

License

MIT © box7e7


<p align="center"> <sub>Built with ❤️ for the AI developer community</sub> </p>

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured