带有 Windows 10 和 macOS 通知的 MCP 服务器
项目概述
该项目旨在创建一个能够显示桌面通知的模型上下文协议 (MCP) 服务器。在 Windows 10 上,它使用 win10toast 库,而在 macOS 上,它使用 osascript 来显示通知。该服务器接收来自 MCP 客户端(例如 VSCode Cline)的请求并相应地显示桌面通知。
要求
功能要求
MCP 协议支持
模型上下文协议的实现,用于与 MCP 客户端建立通信。
支持最新的 MCP 规范(提供与 VSCode Client 的完全兼容性)
处理同步和异步请求
通知系统
Windows 10 使用 win10toast 库显示桌面通知
在 macOS 上,使用 osascript 在通知中心显示通知
支持自定义通知参数:
标题
消息内容
显示时间
图标(仅限 Windows,可选)
字幕(仅限 macOS,可选)
通知声音(仅限 macOS,可选)
通知类型(信息、警告、错误、成功)
客户端连接
监听可配置的网络接口(不仅是本地主机的 127.0.0.1,还有所有接口的 0.0.0.0)
可配置端口(默认值:8000)
处理多个同时的客户端连接
正确处理连接问题的错误
命令处理
处理来自 MCP 客户端的通知命令
支持简单的 API 来触发通知
验证命令并提供适当的错误响应
技术要求
服务器实现
实现需要 Python 3.8 或更高版本
使用 asyncio 或类似库实现异步服务器
遵循 MCP 服务器实施的最佳实践
依赖项
win10toast 用于 Windows 10 桌面通知
用于 macOS 通知的 osascript(随系统附带)
实现 MCP 协议所需的库
尽量减少外部依赖
环境
支持通过命令行参数进行配置
支持环境变量
为所有设置提供合理的默认值
日志记录和错误处理
实施全面的日志系统
记录所有客户端连接、命令和错误
正确处理异常并给出有意义的错误消息
测试要求
测试脚本
包括测试脚本来演示服务器的功能
不同通知类型的示例
客户端兼容性
确保与 VSCode 客户端兼容
记录客户特定的配置要求
交付成果
MCP服务器的Python实现
测试脚本来演示功能
列出所有依赖项的 requirements.txt
使用和配置文档
常见问题故障排除指南
实施说明
使服务器绑定到所有接口(0.0.0.0)而不仅仅是本地主机
使用适当的线程或异步模式来处理并发请求
包括适当的安全措施(例如输入验证)
提供用于调试连接问题的详细日志选项
实现服务器的正常关闭
使用示例
完成后的服务器可以按如下方式运行:
然后,您可以通过 MCP 协议从 VSCode Cline 或其他 MCP 客户端触发通知。
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.
一个在 Windows 10 和 macOS 上显示桌面通知的 MCP 服务器,兼容 VSCode Cline 并支持可自定义的通知参数。
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.