Sends desktop notifications to macOS notification center using osascript, supporting customizable parameters like title, message content, display time, subtitle, and notification sounds.
MCP Server with Windows 10 and macOS Notifications
Project Overview
This project aims to create a Model Context Protocol (MCP) server that can display desktop notifications using the win10toast library on Windows 10 and osascript on macOS. The server will receive requests from MCP clients (such as VSCode Cline) and display desktop notifications based on them.
Requirements
Functional requirements
MCP Protocol Support
An implementation of the Model Context Protocol to establish communication with MCP clients.
Support for the latest MCP specification (provides full compatibility with VSCode Client)
Handling synchronous and asynchronous requests
Notification System
Windows 10 uses the win10toast library to display desktop notifications
On macOS, use osascript to display notifications in Notification Center
Support for customizable notification parameters:
title
Message Content
Display Time
Icon (Windows only, optional)
Subtitle (macOS only, optional)
Notification sounds (macOS only, optional)
Notification type (information, warning, error, success)
Client connections
Listening on configurable network interfaces (not just 127.0.0.1 for localhost, but also 0.0.0.0 for all interfaces)
Configurable port (default: 8000)
Handling multiple simultaneous client connections
Proper error handling for connection issues
Command Processing
Handling notification commands from MCP clients
Supports simple API for triggering notifications
Validating commands and providing appropriate error responses
Technical requirements
Server Implementation
Implementation requires Python 3.8 or higher
Implemented as an asynchronous server using asyncio or a similar library
Follow best practices for MCP server implementation
Dependencies
win10toast for Windows 10 desktop notifications
osascript for macOS notifications (shipped with the system)
Libraries required for implementing the MCP protocol
Minimize external dependencies
setting
Support for configuration via command line arguments
Support for environment variables
Providing sensible default values for all settings
Logging and Error Handling
Implementing a comprehensive logging system
Logging of all client connections, commands and errors
Proper exception handling with meaningful error messages
Testing Requirements
Test script
Includes test scripts to demonstrate the functionality of the server
Examples of different notification types
Client Compatibility
Ensuring compatibility with VSCode Client
Documenting client-specific configuration requirements
Deliverables
Python implementation of MCP server
Test scripts to demonstrate functionality
requirements.txt that lists all dependencies
Usage and configuration documentation
Troubleshooting guide for common issues
Implementation Notes
Make the server bind to all interfaces (0.0.0.0) instead of just localhost
Use appropriate threading or asynchronous patterns to handle concurrent requests
Include appropriate security measures (such as input validation)
Provides detailed logging options for debugging connection issues
Implement a graceful shutdown of the server
Usage Example
The completed server can be run as follows:
And then you can trigger notifications via the MCP protocol from VSCode Cline or other MCP clients.
This server cannot be installed
local-only server
The server can only run on the client's local machine because it depends on local resources.
An MCP server that displays desktop notifications on Windows 10 and macOS, compatible with VSCode Cline and supporting customizable notification parameters.
Related MCP Servers
- AsecurityAlicenseAqualityA simple MCP server that can send notifications on mac devices.Last updated -51222MIT License
- -securityAlicense-qualityThis MCP server provides email sending functionality using Protonmail's SMTP service. It allows both Claude Desktop and Cline VSCode extension to send emails on your behalf using your Protonmail credentials.Last updated -18MIT License
- AsecurityFlicenseAqualityAn MCP server that enables sending Markdown-formatted notifications to Microsoft Teams channels through a simple tool interface.Last updated -12
- AsecurityAlicenseAqualityA Model Context Protocol server that provides system notification capabilities across various platforms (macOS, Windows, Linux) using node-notifier.