Notifications MCP Server
This server enables AI agents to play notification sounds and display desktop toast notifications when tasks are completed. It works cross-platform on Windows, macOS, and Linux.
Tools:
notify: Show a desktop toast notification and/or play a sound. Supports customizable title, message, and mode (toast,sound, orboth).play_notification: Play a notification sound with an optional message to indicate task completion.
Sound options:
5 bundled high-quality sounds:
cosmic,fairy,gentle(default),pleasant, andretroSet sound to
randomto play a random bundled sound each timeUse a custom MP3 file via the
MCP_NOTIFICATION_SOUND_PATHenvironment variableConfigure the default sound via environment variables (
MCP_NOTIFICATION_SOUNDorMCP_NOTIFICATION_SOUND_PATH)
Provides cross-platform sound playback support, specifically mentioning compatibility with macOS for playing notification sounds when tasks are completed.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Notifications MCP Serverplay a pleasant notification sound for task completion"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
✨ Notifications MCP Server ✨
Dream it, Pixel it. Made with ❤️ by Pink Pixel.
Overview
A Model Context Protocol server that allows AI agents to play notification sounds when tasks are completed. This TypeScript-based MCP server provides a simple, configurable notification system with bundled sounds that work out of the box with npx!
Related MCP server: ntfy-mcp-server
✨ Features
🔧 Tools
notify- Show a desktop toast notification and/or play a sound when tasks complete (Recommended for summaries)message(required): The notification message/summary of the completed tasktitle(optional): The title for the toast notification (defaults to "Task Completed")mode(optional):"toast" | "sound" | "both"(defaults to"both")sound(optional): Name of the sound to play, which overrides default settingsFully supports Windows, macOS, and Linux out of the box!
play_notification- Play a notification sound to indicate task completionTakes an optional
messageparameter to log/display with the notificationSupports cross-platform sound playback (Windows, macOS, and Linux)
Works with bundled sounds - no manual downloads required!
🎵 Built-in Sound Library
5 high-quality notification sounds bundled with the package:
cosmic- Space-themed notification 🌌fairy- Magical, whimsical tone 🧚♀️gentle- Soft, pleasant default sound (default) 🔔pleasant- Balanced, professional tone 📞retro- Nostalgic, vintage-style notification 🕹️random- Randomly plays one of the 5 sounds 🎲
🚀 Quick Start
Option 1: Use Bundled Sounds (Recommended) ⭐
Just run it with npx - sounds included!
{
"mcpServers": {
"notifications": {
"command": "npx",
"args": ["-y", "@pinkpixel/notification-mcp"]
}
}
}Option 2: Choose a Different Bundled Sound
{
"mcpServers": {
"notifications": {
"command": "npx",
"args": ["-y", "@pinkpixel/notification-mcp"],
"env": {
"MCP_NOTIFICATION_SOUND": "cosmic"
}
}
}
}Option 3: Random Sound Each Time 🎲
{
"mcpServers": {
"notifications": {
"command": "npx",
"args": ["-y", "@pinkpixel/notification-mcp"],
"env": {
"MCP_NOTIFICATION_SOUND": "random"
}
}
}
}Option 4: Use Your Own Custom Sound
{
"mcpServers": {
"notifications": {
"command": "npx",
"args": ["-y", "@pinkpixel/notification-mcp"],
"env": {
"MCP_NOTIFICATION_SOUND_PATH": "C:\\path\\to\\your\\sound.mp3"
}
}
}
}⚙️ Configuration
The notification sound can be configured using environment variables:
Environment Variables
Variable | Description | Default |
| Choose from bundled sounds: |
|
| Absolute path to your own MP3 file (overrides bundled sounds) |
|
Priority Order
Custom Path (
MCP_NOTIFICATION_SOUND_PATH) - highest priorityBundled Sound (
MCP_NOTIFICATION_SOUND) - choose from 5 included soundsDefault - gentle chime if nothing is specified
💻 Usage
Once configured, your MCP client can call either the unified notify tool or the audio-only play_notification tool:
1. Unified Toast + Sound Notification (Recommended)
await client.request({
method: "tools/call",
params: {
name: "notify",
arguments: {
title: "Build Succeeded",
message: "Antigravity successfully tested the package version 0.2.0! 🚀",
mode: "both", // "toast", "sound", or "both"
sound: "cosmic" // optional override
}
}
});2. Audio-Only Notification
await client.request({
method: "tools/call",
params: {
name: "play_notification",
arguments: {
message: "Task completed successfully! 🎉"
}
}
});🛠️ Development
Local Development Setup
# Clone the repository
git clone https://github.com/pinkpixel-dev/notification-mcp.git
cd notification-mcp
# Install dependencies
npm install
# Build the server
npm run build
# For development with auto-rebuild
npm run watchLocal Development Configuration
{
"mcpServers": {
"notifications": {
"command": "node",
"args": ["./build/index.js"],
"env": {
"MCP_NOTIFICATION_SOUND": "retro"
}
}
}
}Debugging
Use the MCP Inspector for interactive debugging:
npm run inspectorThe Inspector provides a web interface to test your MCP server in your browser.
📦 Installation Methods
NPX (Recommended)
No installation required - sounds are bundled automatically:
npx @pinkpixel/notification-mcpGlobal Install
npm install -g @pinkpixel/notification-mcp
notification-mcpLocal Install
npm install @pinkpixel/notification-mcp
npx notification-mcp🎵 Sound Files
All sound files are located in the sounds/ directory and are automatically included when you install the package:
Cosmic:
sounds/cosmic_chime.mp3- 🌌 Space-themedFairy:
sounds/fairy_chime.mp3- 🧚♀️ MagicalGentle:
sounds/gentle_chime.mp3- 🔔 Default (soft)Pleasant:
sounds/pleasant_chime.mp3- 📞 ProfessionalRetro:
sounds/retro_chime.mp3- 🕹️ VintageRandom: Set
MCP_NOTIFICATION_SOUND=random- 🎲 Surprise me!
🤝 Contributing
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
📄 License
This project is dual-licensed under the MIT and Apache 2.0 Licenses - see the LICENSE file for details.
🌟 About Pink Pixel
Website: pinkpixel.dev
GitHub: github.com/pinkpixel-dev
Discord: @sizzlebop
Made with ❤️ by Pink Pixel ✨
Available Tools
1 toolplay_notificationB
Play a notification sound to indicate task completion
| Name | Required | Description | Default |
|---|---|---|---|
| message | No | Optional message to display with notification |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the tool plays a sound but doesn't describe what kind of sound, whether it's audible to all users, if it requires specific permissions, or any side effects. For a notification tool with zero annotation coverage, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that communicates the core purpose without any wasted words. It's appropriately sized for a simple tool with one optional parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple notification tool with one optional parameter and no output schema, the description covers the basic purpose adequately. However, without annotations or behavioral details, it leaves important questions unanswered about how the notification actually works in practice.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% description coverage, so the parameter 'message' is already documented as 'Optional message to display with notification.' The description adds no additional parameter context beyond what's in the schema, meeting the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Play') and resource ('notification sound') with a specific purpose ('to indicate task completion'). It's unambiguous about what the tool does, though it doesn't need to distinguish from siblings since none exist.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides minimal guidance - it suggests using the tool 'to indicate task completion' but offers no explicit when-to-use rules, alternatives, or exclusions. No context about when this is appropriate versus other notification methods is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
With only one tool, there is no possibility of confusion or overlap between tools, as there are no other tools to compare it against. The tool's purpose is clearly defined and stands alone without ambiguity.
Since there is only one tool, naming consistency is inherently perfect; there are no other tool names to compare it to, and it follows a clear verb_noun pattern (play_notification). No inconsistencies can exist in a single-tool set.
A single tool for a 'Notifications MCP Server' feels thin and under-scoped, as it only provides a basic playback function without supporting operations like listing, creating, or managing notifications. This minimal set limits functionality and may not fully cover the expected domain of notifications.
The tool surface is severely incomplete for a notifications server, lacking essential operations such as creating, listing, updating, or deleting notifications. With only a playback tool, agents cannot perform basic CRUD or lifecycle management, leading to significant gaps in functionality.
Maintenance
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Real-time planetary signal engine and Model Context Protocol (MCP) server for autonomous AI agents.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
A Model Context Protocol server for Wix AI tools
Related MCP Servers
- AlicenseBqualityFmaintenanceA Model Context Protocol service that sends desktop notifications and alert sounds when AI agent tasks are completed, integrating with various LLM clients like Claude Desktop and Cursor.154MIT
- AlicenseNot gradedqualityAmaintenanceA Model Context Protocol server enabling AI systems to send real-time notifications to phones, desktops, and other devices through the ntfy publish/subscribe service.1,02520Apache 2.0
- AlicenseNot gradedqualityDmaintenanceAn MCP server that plays notification sounds when AI coding assistants like Windsurf or Cursor require user attention, such as when coding is complete or when user approval is needed.162MIT
- AlicenseCqualityFmaintenanceA Model Context Protocol server for macOS that enables AI assistants to play system sounds for audio feedback, offering informational, warning, and error sound options.41MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/pinkpixel-dev/notification-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server