带有 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)而不仅仅是本地主机
- 使用适当的线程或异步模式来处理并发请求
- 包括适当的安全措施(例如输入验证)
- 提供用于调试连接问题的详细日志选项
- 实现服务器的正常关闭
使用示例
完成后的服务器可以按如下方式运行:
Copy
然后,您可以通过 MCP 协议从 VSCode Cline 或其他 MCP 客户端触发通知。