Skip to main content
Glama
GhostTypes

Desktop Notification MCP Server

by GhostTypes

Desktop Notification MCP Server

A Model Context Protocol (MCP) server that enables AI agents to send cross-platform desktop notifications with priority levels, categories, and duration control.

Features

  • Cross-platform support (macOS, Windows, Linux)

  • Priority levels for urgency control

  • Category-based visual distinction

  • Configurable display duration

  • Optional notification sounds

  • Success/error status reporting

Related MCP server: mcp-win-toast

Installation

npm install
npm run build

Usage

With Claude Desktop

Add to your Claude Desktop configuration file:

macOS/Linux: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "desktop-notifications": {
      "command": "node",
      "args": [
        "/absolute/path/to/desktop-notification-mcp/dist/index.js"
      ]
    }
  }
}

Parameters

Parameter

Type

Default

Description

title

string

required

Notification title

message

string

required

Notification message body

sound

boolean

false

Enable notification sound

priority

string

"normal"

Priority level: "low", "normal", "high", "critical"

category

string

"task"

Category: "task", "error", "success", "progress", "question", "reminder"

duration

number

auto

Display duration in milliseconds (0 = persistent)

Priority Levels

  • low - Quick updates, 5 second timeout

  • normal - Standard notifications, 10 second timeout (default)

  • high - Important updates, 15 second timeout

  • critical - Critical alerts, persistent until dismissed

Categories

  • task - General task notifications

  • error - Error and failure notifications

  • success - Success and completion notifications

  • progress - Progress updates

  • question - Questions requiring user attention

  • reminder - Reminders and scheduled notifications

Examples

Basic Notification

{
  "title": "Task Complete",
  "message": "Your analysis has finished"
}

High Priority Error

{
  "title": "Build Failed",
  "message": "Tests failed - review errors in output",
  "priority": "high",
  "category": "error",
  "sound": true
}

Critical Alert (Persistent)

{
  "title": "User Input Required",
  "message": "Please review the following options",
  "priority": "critical",
  "category": "question",
  "sound": true
}

Progress Update

{
  "title": "Processing...",
  "message": "Step 3 of 10 complete",
  "priority": "low",
  "category": "progress",
  "duration": 3000
}

Success Notification

{
  "title": "Deployment Complete",
  "message": "Successfully deployed to production",
  "priority": "normal",
  "category": "success",
  "sound": true
}

Platform Support

The server automatically detects and uses the appropriate notification system:

  • macOS 10.8+: Notification Center

  • Windows 8+: Toast Notifications

  • Windows < 8: Taskbar Balloons

  • Linux: notify-send (requires libnotify-bin)

Platform-Specific Behavior

Linux: Priority maps to urgency parameter (low/normal/critical), duration controls timeout precisely

Windows/macOS: Priority and category shown via visual indicators, timeout behavior varies by OS version

Linux Requirements

Install notification support:

# Ubuntu/Debian
sudo apt-get install libnotify-bin

# Fedora
sudo dnf install libnotify

# Arch
sudo pacman -S libnotify

Available Tools

1 tool
send-notificationSend Desktop NotificationB

Display a cross-platform desktop notification with title, message, priority, category, duration control, and optional sound

ParametersJSON Schema
NameRequiredDescriptionDefault
soundNoEnable notification sound (OS default sound)
titleYesThe notification title
messageYesThe notification message body
categoryNoNotification category for visual distinction: task, error, success, progress, question, reminder. Default: tasktask
durationNoDisplay duration in milliseconds. 0 = persistent, undefined = based on priority. Default: priority-based
priorityNoNotification priority: low (5s), normal (10s), high (15s), critical (persistent). Default: normalnormal

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoError message if the notification failed
successYesWhether the notification was sent successfully

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. 'Cross-platform' is a useful availability hint, but it never says whether the call blocks until dismissal, whether it is fire-and-forget, what happens on headless/unsupported systems, or how failures surface.

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

Conciseness5/5

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

A single front-loaded sentence that names the resource first and then the configurable dimensions. No filler, nothing repeated, nothing that fails to earn its place.

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

Completeness3/5

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

An output schema exists, so return values need no explanation, and parameter semantics are fully covered by the schema. However, for a locally side-effecting display tool with no annotations, the description leaves blocking behavior and platform failure modes unaddressed.

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

Parameters3/5

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

Schema description coverage is 100%, with enum values, defaults, and duration semantics (0 = persistent, undefined = priority-based) already documented in the schema. The description merely restates the same fields, adding no format or interaction detail beyond the schema.

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

Purpose4/5

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

The description pairs a specific verb ('Display') with a specific resource ('cross-platform desktop notification') and enumerates its configurable facets. It is unambiguous, though there are no siblings to be distinguished from, so it stops short of the 5 anchor.

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

Usage Guidelines2/5

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

There is no statement of when to use this tool, when not to, or any alternative (no output/notification channel options are compared). Usage is only implied by the tool's surface function.

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

Tool Schema Changelog

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

  1. 1 tool updatev2.0.0
    • First observedsend-notification

TDQS

A3.5/5.0

Scored across 1 tool

Disambiguation5/5

There is only one tool, so there is no possibility of confusing it with another tool. Its purpose—sending a desktop notification—is completely unambiguous.

Naming Consistency5/5

The single tool uses a clear, readable kebab-case verb-noun pattern (send-notification). With only one tool, there are no competing conventions to create inconsistency.

Tool Count3/5

A server whose sole purpose is desktop notifications is reasonably scoped with one tool, since sending a notification is the only meaningful operation. However, a single-tool server is inherently limited and feels thin compared to typical multi-tool MCP servers.

Completeness4/5

The tool covers the core notification lifecycle operation with title, message, priority, category, duration, and sound options. There are no obvious missing CRUD operations for a one-way notification service, though features like listing or dismissing notifications could be considered minor gaps.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to send native macOS notifications for task completion alerts and reminders. Supports interactive features like custom system sounds, action buttons, and user replies directly from the notification center.
    201 npm
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Enables AI assistants to send Windows toast notifications and dialog boxes, allowing them to actively notify users and request confirmations through native Windows UI.
    2
    1
    ISC
  • A
    license
    B
    quality
    D
    maintenance
    Enables AI assistants to send desktop notifications on macOS with rich formatting, urgency levels, and sound options.
    1
    6 npm
    1
    MIT
  • A
    license
    D
    quality
    D
    maintenance
    Enables MCP agents to send desktop notifications for completed tasks, failures, and important updates, providing visible and reliable feedback.
    1
    33 npm
    2
    Apache 2.0