Servidor MCP applescript-mcp
Un servidor de Protocolo de Contexto de Modelo que permite que las aplicaciones LLM interactúen con macOS mediante AppleScript. Este servidor proporciona una interfaz estandarizada para que las aplicaciones de IA controlen las funciones del sistema, administren archivos, gestionen notificaciones y más.
Características
🗓️ Gestión de calendario (eventos, recordatorios)
Operaciones del portapapeles
🔍 Integración con Finder
🔔 Notificaciones del sistema
⚙️ Controles del sistema (volumen, modo oscuro, aplicaciones)
Integración del terminal iTerm
📬 Correo (crear nuevo correo electrónico, listar correos electrónicos, recibir correo electrónico)
🔄 Automatización de atajos
💬 Mensajes (listar chats, recibir mensajes, buscar mensajes, enviar un mensaje)
🗒️ Notas (crear notas formateadas, enumerar notas, buscar notas)
📄 Páginas (crear documentos)
Funciones planificadas
🧭 Safari (abrir en Safari, guardar el contenido de la página, obtener la página/pestaña seleccionada)
✅ Recordatorios (crear, recibir)
Prerrequisitos
macOS 10.15 o posterior
Node.js 18 o posterior
Categorías disponibles
Calendario
Dominio | Descripción | Parámetros |
| Crear evento de calendario |
,
,
,
(opcional) |
| Enumere los eventos de hoy | Ninguno |
Ejemplos
Portapapeles
Dominio | Descripción | Parámetros |
| Copiar al portapapeles |
|
| Obtener el contenido del portapapeles | Ninguno |
| Borrar el portapapeles | Ninguno |
Ejemplos
Descubridor
Dominio | Descripción | Parámetros |
| Obtener archivos seleccionados | Ninguno |
| Buscar archivos |
,
(opcional) |
| Archivo de vista previa |
|
Ejemplos
Notificaciones
Nota: Para enviar notificaciones es necesario habilitar las notificaciones en Configuración del sistema > Notificaciones > Editor de scripts.
Dominio | Descripción | Parámetros |
| Mostrar notificación |
,
,
(opcional) |
| Activar o desactivar el modo DND | Ninguno |
Ejemplos
Sistema
Dominio | Descripción | Parámetros |
| Establecer el volumen del sistema |
(0-100) |
| Obtener aplicación activa | Ninguno |
| Abrir solicitud |
|
| Cerrar aplicación |
,
(opcional) |
| Activar el modo oscuro | Ninguno |
Ejemplos
iTerm
Dominio | Descripción | Parámetros |
| Pegar en iTerm | Ninguno |
| Ejecutar comando |
,
(opcional) |
Ejemplos
Atajos
Dominio | Descripción | Parámetros |
| Ejecutar un atajo |
,
(opcional) |
| Listar todos los accesos directos disponibles |
(opcional) |
Ejemplos
Correo
Dominio | Descripción | Parámetros |
| Crear un nuevo correo electrónico en Mail.app |
,
,
|
| Listar correos electrónicos de un buzón |
(opcional),
(opcional),
(opcional) |
| Obtenga un correo electrónico específico mediante una búsqueda |
(opcional),
(opcional),
(opcional),
(opcional),
(opcional),
(opcional),
(opcional) |
Ejemplos
Mensajes
Dominio | Descripción | Parámetros |
| Lista de chats de iMessage y SMS disponibles |
(opcional, valor predeterminado: falso) |
| Recibir mensajes desde la aplicación Mensajes |
(opcional, predeterminado: 100) |
| Buscar mensajes que contengan texto específico |
,
(opcional),
(opcional),
(opcional, predeterminado: 50),
(opcional, predeterminado: 30) |
| Abra la aplicación Mensajes con un mensaje precargado o envío automático |
(obligatorio),
(opcional),
(opcional, predeterminado: falso) |
Ejemplos
Notas
Dominio | Descripción | Parámetros |
| Crea una nota con formato similar a Markdown |
,
,
(opcional con opciones de formato) |
| Crear una nota con contenido HTML directo |
,
|
| Lista de notas, opcionalmente de una carpeta específica |
(opcional) |
| Obtener una nota específica por título |
,
(opcional) |
| Buscar notas que contengan texto específico |
,
(opcional),
(opcional, predeterminado: 5),
(opcional, predeterminado: verdadero) |
Ejemplos
Páginas
Dominio | Descripción | Parámetros |
| Crear un nuevo documento de Pages con texto sin formato |
|
Ejemplos
Arquitectura
El servidor applescript-mcp está construido con TypeScript y sigue una arquitectura modular:
Componentes principales
AppleScriptFramework (
framework.ts): La clase de servidor principal que:Gestiona la comunicación del protocolo MCP
Maneja el registro y ejecución de herramientas.
Proporciona funcionalidad de registro
Ejecuta comandos de AppleScript
Categorías (
src/categories/*.ts): colecciones de scripts modulares organizadas por funcionalidad:Cada categoría contiene scripts relacionados (por ejemplo, calendario, sistema, notas)
Las categorías se registran en el marco en
index.ts
Tipos (
src/types/index.ts): Interfaces de TypeScript que definen:ScriptDefinition: Estructura para scripts individualesScriptCategory: Colección de scripts relacionadosLogLevel: niveles de registro estándarFrameworkOptions: Opciones de configuración
Flujo de ejecución
El cliente envía una solicitud de herramienta a través del protocolo MCP
El servidor identifica la categoría y el script adecuados
El contenido del script se genera (estático o dinámicamente mediante una función)
AppleScript se ejecuta a través del comando
osascriptde macOSLos resultados se devuelven al cliente.
Sistema de registro
El marco incluye un sistema de registro integral que:
Registra tanto el protocolo de registro stderr como el de MCP
Admite múltiples niveles de gravedad (depuración, información, advertencia, error, etc.)
Proporciona información detallada de ejecución para la resolución de problemas.
Desarrollo
Configuración
Añadiendo nueva funcionalidad
1. Crear archivo de categoría
Crear src/categories/newcategory.ts :
2. Agregar scripts
3. Categoría de registro
Actualizar src/index.ts :
Desarrollo avanzado de scripts
Para scripts más complejos, puedes:
Utilice la generación dinámica de scripts :
script: (args) => { // Process arguments and build script dynamically let scriptContent = `tell application "App"\n`; if (args.condition) { scriptContent += ` // Conditional logic\n`; } scriptContent += `end tell`; return scriptContent; }Procesar datos complejos :
// Example from Notes category function generateNoteHtml(args: any): string { // Process markdown-like syntax into HTML let processedContent = content; if (format.headings) { processedContent = processedContent.replace(/^# (.+)$/gm, '<h1>$1</h1>'); // ... } return processedContent; }
Depuración
Uso del inspector MCP
El Inspector MCP proporciona una interfaz web para probar y depurar su servidor:
Explotación florestal
Habilite el registro de depuración configurando la variable de entorno:
Ejemplo de configuración
Después de ejecutar npm run build agregue lo siguiente a su archivo mcp.json :
Problemas comunes
Errores de permisos : Consultar Preferencias del sistema > Seguridad y privacidad > Privacidad > Automatización
Errores de script : Pruebe los scripts directamente en Script Editor.app antes de la integración
Problemas de comunicación : compruebe que los flujos de stdio no se redirigen
Acceso a la base de datos : algunas funciones (como Mensajes) requieren permiso de acceso completo al disco
Recursos
Contribuyendo
Bifurcar el repositorio
Crear una rama de características
Confirme sus cambios
Empujar hacia la rama
Crear una solicitud de extracción
Licencia
Licencia MIT: consulte LICENCIA para obtener más detalles
local-only server
The server can only run on the client's local machine because it depends on local resources.
Tools
Permite que las aplicaciones LLM interactúen con macOS a través de AppleScript.
Related MCP Servers
- Asecurity-licenseAqualityEnables LLMs to interact with web pages, take screenshots, and execute JavaScript in a real browser environmentLast updated -10633260MIT License
- Asecurity-licenseAqualityFacilitates controlling Apple Music on macOS via AppleScript through MCP commands, allowing users to manage playback, search for tracks, and create playlists.Last updated -1059MIT License
- Asecurity-licenseAqualityEnables interaction with lightning addresses and common lightning tools via your LLM, providing Lightning Network functionality through natural language.Last updated -3121
- Asecurity-licenseAqualityA Model Context Protocol server that enables running AppleScript code to interact with Mac applications and system features including Notes, Calendar, Contacts, Messages, file management, and more.Last updated -1165367MIT License