Prototipo · Versión preliminar: todos los servidores del registro oficial, sincronizados cada 30 minutos. Las reseñas y las cuentas llegarán en una etapa posterior.
PopNx MCPServidores MCP para quienes usan IA · explicados con palabras sencillas

JCAppleScript

de johnnyclemversión 2.0.0i★ –iSe ejecuta en tu computadora
Nombre en el registroio.github.johnnyclem/jcas-mcp

Instalar

Resumen

Descripción del creador (original en inglés)

Control macOS apps via AppleScript/JXA: sanitized commands for Messages, Mail, Finder, and more.

Los tres pilares de PopNx MCP

Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.

Qué puedes hacer con él

Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.

  • Conexión: Se ejecuta en tu computadora
  • Transporte: stdio
  • Categoría: Otros

Instalación

Elige la app de IA que usas y copia la configuración.

Antes de instalar

¿Qué app usas?

Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.

Descargar el archivo .mcpb del creador

El enlace lleva al archivo del propio creador; no lo alojamos ni lo reempaquetamos. Abre el archivo y Claude Desktop lo instalará.

Ejecuta esto en tu terminal

Completa los valores vacíos antes de ejecutarlo.

Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.

Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.

Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.

Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.

Valores que debes completar

  • JCAS_SAFE_MODE env
    Set to 1 to disable tools that execute arbitrary code (execute_applescript, execute_jxa, tell_application) and registry commands flagged dangerous.
  • JCAS_APP_MANIFESTS env
    Colon-separated list of JSON manifest files with additional community app definitions to load at startup.

Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.

Qué puede hacer

Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.

Revisiones básicasi

Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 7 nov 2026

  • ✓ Superada

    El creador coincide con el repo

    El nombre en el registro se verificó con la cuenta de GitHub johnnyclem, dueña del repo

  • … Aún sin revisar

    Sigue en mantenimiento

    Todavía no hemos leído este repo en GitHub

  • … Aún sin revisar

    Tiene licencia

    Todavía no hemos leído este repo en GitHub

  • – No aplica

    El endpoint responde

    Este se ejecuta en tu computadora; no hay endpoint en internet

  • – No aplica

    Inicio de sesión con OAuth

    Se ejecuta en tu computadora y usa ajustes locales en su lugar

  • … Aún sin revisar

    Sin instrucciones ocultas en las descripciones de herramientas

    Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet

Comparado con otros en Otrosi

  • Más estrellas que el 0% de los otros 32708 servidores de esta categoría
  • Publicado en el registro más recientemente que el 31% de los otros 32708 servidores de esta categoría
  • Revisiones básicas iguales o mejores que el 100% de los otros 32708 servidores de esta categoría

Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.

Preguntas frecuentes

¿Es seguro JCAppleScript?

Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.

¿Qué claves o códigos necesita?

El registro no indica ninguna clave obligatoria, aunque algunos servidores te piden iniciar sesión la primera vez que los usas.

¿Se ejecuta en mi computadora o en la nube?

Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).

¿Sigue en mantenimiento?

El repo de GitHub cambió por última vez –, y la última versión (2.0.0) llegó al registro hace 2 meses.

¿Qué apps pueden usarlo?

Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas MCPB en tu computadora.

¿Qué puedo usar en su lugar?

En la misma categoría: Spec Driven Development, Remote Desktop Commander, OpenTakeoff

Alternativas

Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.

Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi

Spec Driven Development

de formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

Se ejecuta en tu computadora★ 440MITActualizado hace 14 meses
Instalar

Remote Desktop Commander

de desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

Se ejecuta en la nube★ 211Actualizado anteayer
Instalar

OpenTakeoff

de Kentucky-ai

Construction takeoff for AI agents: load plans, set scale, measure, count, export with provenance.

Se ejecuta en tu computadoraActualizado hoy
Instalar

README del creador

Abrir el README

Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.

JCAppleScript

A Swift package for executing AppleScript from macOS applications, featuring a built-in MCP server that lets AI assistants control macOS apps through pre-built command shortcuts.

Overview

JCAppleScript provides three components:

  1. JCAppleScript (library) - Core AppleScript execution engine
  2. AppShortcuts (library) - Registry of pre-built AppleScript commands for popular macOS apps
  3. jcas-mcp (executable) - MCP (Model Context Protocol) server for AI-driven app automation

Installation

Swift Package Manager

Add JCAppleScript to your Package.swift:

dependencies: [

.package(url: "https://github.com/johnnyclem/JCAppleScript.git", from: "2.0.0") ]

Then add the targets you need:

.target(

name: "YourTarget", dependencies: [ "JCAppleScript", // Core engine only "AppShortcuts", // App command registry ] )

Quick Start

Using the Core Engine
import JCAppleScript

let engine = AppleScriptEngine.shared

// Execute raw AppleScript let result = try engine.execute(""" tell application "Finder" display dialog "Hello from Swift!" end tell """)

// Send a command to an application let output = try engine.tell(application: "Music", command: "play")

// Execute a script file with variable substitution let fileResult = try engine.executeFile(at: "/path/to/script.scpt", variables: ["Alice", "Hello!"])

// Execute JavaScript for Automation (JXA) let jxa = try engine.execute("Application('Music').play()", language: .javaScript)

// Check syntax without executing try engine.checkSyntax("tell application \"Finder\" to activate")

// All execution APIs also have async variants let asyncResult = try await engine.execute("return 40 + 2")

When embedding untrusted values in script source, escape them first:

let userInput = "…"

let script = "display dialog \(AppleScriptString.quoted(userInput))"

Using App Shortcuts
import AppShortcuts

let registry = AppRegistry.shared

// Execute a pre-built command let result = try registry.executeCommand("messages.send_message", arguments: [ "recipient": "+15551234567", "message": "Hello from JCAppleScript!" ])

// Discover available commands let commands = registry.commands(forApp: "Reminders") for cmd in commands { print("\(cmd.id): \(cmd.name) - \(cmd.description)") }

// Search across all apps let results = registry.searchCommands("send")

Using the MCP Server

The jcas-mcp executable is a Model Context Protocol server that AI assistants (Claude, GPT, etc.) can use to control macOS applications.

It is published to the official MCP registry as `io.github.johnnyclem/jcas-mcp`, and each GitHub release ships a prebuilt jcas-mcp.mcpb bundle (universal macOS binary) that can be installed directly in Claude Desktop via Settings → Extensions.

Setup with Claude Desktop

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):

{

"mcpServers": { "applescript": { "command": "/path/to/jcas-mcp" } } }

Build the server:

swift build -c release

Binary at: .build/release/jcas-mcp

Available MCP Tools
ToolDescription
execute_applescriptExecute arbitrary AppleScript code †
execute_jxaExecute JavaScript for Automation (JXA) code †
tell_applicationSend a command to a specific app via tell block †
check_script_syntaxCompile a script (AppleScript or JXA) without executing it
list_running_applicationsGet currently running applications
list_registered_appsBrowse all registered app command sheets
search_commandsSearch for commands by keyword
run_app_commandExecute a pre-built command by ID
preview_app_commandDry-run: show the exact script a command would execute
get_app_commandsGet detailed command info for a specific app

† Hidden and disabled when the server runs in safe mode (see below).

Server Configuration
Environment variableEffect
JCAS_SAFE_MODE=1Disables the arbitrary-code tools (execute_applescript, execute_jxa, tell_application) and registry commands flagged dangerous (e.g. terminal.run_command, safari.run_javascript). Only pre-built, sanitized registry commands remain available.
JCAS_APP_MANIFESTS=a.json:b.jsonColon-separated JSON manifest files with additional community app definitions to load at startup.

CLI flags: jcas-mcp --manifest prints the full registry as JSON, --version prints the server version, --help shows usage.

Example AI Interaction
User: "Send a message to John saying I'll be late"

AI uses tool: run_app_command command_id: "messages.send_message" arguments: { "recipient": "John", "message": "I'll be late" }

Supported Applications

JCAppleScript ships with command sheets for 12 built-in macOS apps:

AppCategoryCommandsExamples
MessagesCommunication6Send message, list chats, get participants
MailCommunication7Compose email, search, check mail, list accounts
RemindersProductivity7Create/complete/delete reminders, search, list
CalendarProductivity6Create events, list today's events, upcoming
NotesProductivity8Create/search/append notes, manage folders
FinderSystem12File operations, folder contents, labels, trash
SafariInternet10Open URLs, manage tabs, run JavaScript, get page content
MusicMedia13Playback control, playlists, library search, ratings
TerminalDevelopment8Run commands, manage windows/tabs, profiles
System SettingsSystem13Dark mode, volume, notifications, dialogs, system info
XcodeDevelopment20+Open/build/run/test projects, schemes, build logs, debugging
Speech RecognitionSystem3Listen for spoken phrases via the system speech engine

Adding Custom App Support

Implement the ScriptableApp protocol to add support for any scriptable macOS app:

import AppShortcuts

struct MyApp: ScriptableApp { static let bundleIdentifier = "com.example.myapp" static let appName = "MyApp" static let description = "My custom application" static let category = AppCategory.productivity

static let commands: [AppCommand] = [ AppCommand( id: "myapp.do_thing", name: "Do Thing", description: "Performs the thing", parameters: [ CommandParameter(name: "input", description: "The input value"), ] ) { args in let input = args["input", default: ""] return """ tell application "MyApp" do thing with "\(input)" end tell """ }, ] }

// Register at runtime AppRegistry.shared.register(MyApp.self)

Community App Registry

JCAppleScript is designed to grow through community contributions. The app shortcut system uses a standard protocol (ScriptableApp) that makes it easy to:

  • Add new applications - Implement ScriptableApp for any scriptable macOS app
  • Extend existing apps - Submit new commands for already-registered apps
  • Share command sheets - Export/import app definitions via JSON manifests

We're building a browsable registry (similar to npmjs.org) where you can:

  • Browse applications and their supported AppleScript commands
  • Submit new commands for existing apps
  • Add entirely new applications to the registry
  • Generate JSON manifests for integration with other tools
Exporting and Importing the Registry
// Export all registered apps as manifest JSON

let json = try AppRegistry.shared.exportManifestJSON()

// Import community app definitions from a JSON manifest. // Manifest commands are declarative script templates with ${param} // placeholders; argument values are sanitized before substitution. try AppRegistry.shared.loadManifest(contentsOf: URL(fileURLWithPath: "community.json"))

Example manifest:

[

{ "name": "CoolApp", "bundleIdentifier": "com.example.coolapp", "description": "A community-contributed app", "category": "Productivity", "commands": [ { "id": "coolapp.greet", "name": "Greet", "description": "Show a greeting", "script": "tell application \"CoolApp\"\n greet \"${who}\"\nend tell", "parameters": [ {"name": "who", "description": "Who to greet", "required": true, "type": "string"} ] } ] } ]

The MCP server loads extra manifests from the JCAS_APP_MANIFESTS environment variable at startup.

Security Model

Registry command arguments are sanitized before script generation:

  • String, file-path, and date arguments are escaped (\, ", and control characters) so they cannot break out of AppleScript string literals.
  • Integer and boolean arguments are strictly validated/normalized — malformed values are rejected at validation and fall back to declared defaults during generation.
  • Values outside a parameter's allowedValues list are dropped.
  • Arguments that don't correspond to a declared parameter are discarded.

Commands that execute caller-supplied code (Terminal shell commands, Safari JavaScript) are flagged dangerous and can be disabled wholesale with JCAS_SAFE_MODE=1. Use the preview_app_command tool to inspect the exact script a command will run before executing it.

Note that execute_applescript, execute_jxa, and tell_application execute arbitrary code by design — only expose them to clients you trust, or run the server in safe mode.

Architecture

JCAppleScript/

├── Sources/ │ ├── JCAppleScript/ # Core engine │ │ ├── AppleScriptEngine.swift │ │ ├── AppleScriptSanitizer.swift │ │ ├── ScriptResult.swift │ │ └── ScriptError.swift │ ├── AppShortcuts/ # App command registry │ │ ├── AppProtocol.swift # ScriptableApp protocol │ │ ├── AppCommand.swift # Command & parameter types + sanitization │ │ ├── AppDefinition.swift # Instance-based app description │ │ ├── AppManifest.swift # JSON import/export │ │ ├── AppRegistry.swift # Central registry │ │ └── Apps/ # Built-in app sheets │ │ ├── MessagesApp.swift │ │ ├── RemindersApp.swift │ │ ├── FinderApp.swift │ │ ├── SafariApp.swift │ │ ├── MailApp.swift │ │ ├── CalendarApp.swift │ │ ├── NotesApp.swift │ │ ├── MusicApp.swift │ │ ├── TerminalApp.swift │ │ └── SystemSettingsApp.swift │ └── JCAppleScriptMCP/ # MCP server │ ├── main.swift │ ├── MCPServer.swift │ ├── MCPTransport.swift │ └── MCPTypes.swift ├── Tests/ ├── Legacy/ # Original Obj-C implementation ├── Package.swift └── LICENSE

Requirements

  • macOS 13.0+
  • Swift 5.9+

Legacy

The original Objective-C implementation (2013) is preserved in the Legacy/ directory for reference. It provided basic NSAppleScript wrapping with variable substitution. The new Swift implementation builds on those concepts while adding the MCP server, app registry, and modern Swift patterns.

License

MIT License - Copyright (c) 2013 John Clem. See LICENSE for details.

Pregunta a PopNx