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:
Copy
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 -598TypeScriptMIT License
- -securityAlicense-qualityThe MCP server that keeps you informed by sending the notification on phone using ntfy.shLast updated -186JavaScriptApache 2.0
- -securityFlicense-qualityAn 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.Last updated -1241TypeScript
- -securityAlicense-qualityA macOS app that provides an MCP server to your Messages, Contacts, and moreLast updated -452Apache 2.0