Servidor MCP con notificaciones de Windows 10 y macOS
Descripción general del proyecto
Este proyecto tiene como objetivo crear un servidor de Protocolo de Contexto de Modelo (MCP) capaz de mostrar notificaciones de escritorio. En Windows 10 utiliza la biblioteca win10toast y en macOS utiliza osascript para mostrar notificaciones. Este servidor recibe solicitudes de clientes MCP (como VSCode Cline) y muestra notificaciones de escritorio en consecuencia.
Requisitos
Requisitos funcionales
- Compatibilidad con el protocolo MCP
- Una implementación del Protocolo de Contexto de Modelo para establecer comunicación con clientes MCP.
- Compatibilidad con la última especificación MCP (proporciona compatibilidad total con VSCode Client)
- Manejo de solicitudes sincrónicas y asincrónicas
- Sistema de notificación
- Windows 10 usa la biblioteca win10toast para mostrar notificaciones del escritorio
- En macOS, use osascript para mostrar notificaciones en el Centro de notificaciones
- Soporte para parámetros de notificación personalizables:
- título
- Contenido del mensaje
- Tiempo de visualización
- Icono (solo Windows, opcional)
- Subtítulo (solo macOS, opcional)
- Sonidos de notificación (solo macOS, opcional)
- Tipo de notificación (información, advertencia, error, éxito)
- Conexiones de cliente
- Escuchar en interfaces de red configurables (no solo 127.0.0.1 para localhost, sino también 0.0.0.0 para todas las interfaces)
- Puerto configurable (predeterminado: 8000)
- Manejo de múltiples conexiones de cliente simultáneas
- Manejo adecuado de errores en caso de problemas de conexión
- Procesamiento de comandos
- Manejo de comandos de notificación de clientes MCP
- Admite API simple para activar notificaciones
- Validar comandos y proporcionar respuestas de error apropiadas
Requisitos técnicos
- Implementación del servidor
- La implementación requiere Python 3.8 o superior
- Implementado como un servidor asincrónico utilizando asyncio o una biblioteca similar
- Siga las mejores prácticas para la implementación del servidor MCP
- Dependencias
- win10toast para notificaciones de escritorio de Windows 10
- osascript para notificaciones de macOS (incluido con el sistema)
- Bibliotecas necesarias para implementar el protocolo MCP
- Minimizar las dependencias externas
- configuración
- Soporte para configuración mediante argumentos de línea de comandos
- Soporte para variables de entorno
- Proporcionar valores predeterminados razonables para todas las configuraciones
- Registro y manejo de errores
- Implementación de un sistema de registro integral
- Registro de todas las conexiones, comandos y errores del cliente
- Manejo adecuado de excepciones con mensajes de error significativos
Requisitos de prueba
- Guión de prueba
- Incluye scripts de prueba para demostrar la funcionalidad del servidor.
- Ejemplos de diferentes tipos de notificaciones
- Compatibilidad del cliente
- Garantizar la compatibilidad con el cliente VSCode
- Documentar los requisitos de configuración específicos del cliente
Entregables
- Implementación de Python del servidor MCP
- Scripts de prueba para demostrar la funcionalidad
- requirements.txt que enumera todas las dependencias
- Documentación de uso y configuración
- Guía de solución de problemas comunes
Notas de implementación
- Hacer que el servidor se vincule a todas las interfaces (0.0.0.0) en lugar de solo a localhost
- Utilice subprocesos adecuados o patrones asincrónicos para gestionar solicitudes simultáneas
- Incluir medidas de seguridad adecuadas (como validación de entrada)
- Proporciona opciones de registro detalladas para depurar problemas de conexión.
- Implementar un apagado elegante del servidor
Ejemplo de uso
El servidor completado se puede ejecutar de la siguiente manera:
Copy
Y luego puedes activar notificaciones a través del protocolo MCP desde VSCode Cline u otros clientes MCP.