JCAppleScript MCP server
io.github.johnnyclem/jcas-mcp·v2.0.0·28 starsControl macOS apps via AppleScript/JXA: sanitized commands for Messages, Mail, Finder, and more.
28 stars
Reviews
Write oneNobody has reviewed JCAppleScript yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
JCAppleScript tools
No tool declarations could be read from the package source. They show once the server is installed.
Public scan report
scanner v0.1.10 · 2026-10-30 · same rubric, same numbers if you re-run it
- –Code scanpackage could not be scannedn/a
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 62 days ago12/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
How JCAppleScript compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 80/100
- higher than 60% of 48,243 servers
- GitHub stars
- 28
- more than 92% of 28,706 servers
Install JCAppleScript in Claude Code, Cursor or VS Code
The registry entry has no remote endpoint or installable package.
What the publisher says
From the JCAppleScript repository's README, as published. We do not edit it. Read it on GitHub
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:
- JCAppleScript (library) - Core AppleScript execution engine
- AppShortcuts (library) - Registry of pre-built AppleScript commands for popular macOS apps
- 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/claudedesktopconfig.json):
{
"mcpServers": {
"applescript": {
"command": "/path/to/jcas-mcp"
}
}
}Build the server:
swift build -c release
# Binary at: .build/release/jcas-mcpAvailable MCP Tools
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Grade history
- 2026-10-30downgradeA → Bscore 80
JCAppleScript: common questions
- Is JCAppleScript MCP server safe?
- Mostly: it is graded B (80/100). Read the JCAppleScript safety report
- Does JCAppleScript need an API key?
- No secret keys are declared. It reads 2 settings from the environment.
- Is JCAppleScript maintained?
- The last commit was 68 days ago (2026-08-29). The latest release is v2.0.0.
- What can I use instead of JCAppleScript?
- Servers from other publishers that do the same job: Mobilerun MCP server.
- How does JCAppleScript compare with other MCP servers?
- safety score 80/100 (higher than 60% of 48,243 servers); github stars 28 (more than 92% of 28,706 servers). Full comparison.
Alternatives to JCAppleScript
Same job from other publishers: the closest match first, then the best rated.
- MobilerunLet AI agents control Android and iOS devices on Mobilerun Cloud: screen, input, apps, workflows.not reviewedEstablishedA