
JCAppleScript
io.github.johnnyclem由 GitHub 帳號 johnnyclem 發布v2.0.0更新於 Oct 24, 2026
Control macOS apps via AppleScript/JXA: sanitized commands for Messages, Mail, Finder, and more.
概覽
本機 macOS MCP 伺服器,讓助理透過 AppleScript 與 JXA 控制「訊息」「郵件」「Finder」「備忘錄」「Safari」等 Apple 應用程式。
- 可以做什麼
- 執行任意 AppleScript 或 JXA 程式碼,或向指定應用程式送出 tell 指令,並在不執行的情況下檢查腳本語法(安全模式下可停用這些程式碼執行工具)。瀏覽、搜尋並檢視 12 個 macOS 應用程式的內建指令表,並可試跑指令以查看其將執行的確切腳本。執行「訊息」「郵件」「提醒事項」「行事曆」「備忘錄」「Finder」「Safari」「音樂」「終端機」「系統設定」、Xcode 與語音辨識的預設指令。列出正在執行的應用程式,並從 JSON 清單載入額外的社群應用程式定義。
- 適用情境
- 適合在 Mac 上讓助理傳送訊息或郵件、管理提醒事項、行事曆事件、備忘錄或檔案、控制「音樂」或 Safari,或透過審核過的快捷指令操作 Xcode 與「終端機」,而非自由撰寫腳本。
- 執行需求
- 在 macOS 13.0 或更新版本上以本機程序執行;發行版提供可直接安裝到 Claude Desktop 的通用二進位套件,也可用 Swift 5.9+ 自行建置。未宣告驗證機制。選用環境變數:JCAS_SAFE_MODE 與 JCAS_APP_MANIFESTS。可能需要在 macOS 中為目標應用程式授予自動化權限。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 JCAppleScript,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
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:
Then add the targets you need:
Quick Start
Using the Core Engine
When embedding untrusted values in script source, escape them first:
Using App Shortcuts
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):
Build the server:
Available MCP Tools
† Hidden and disabled when the server runs in safe mode (see below).
Server Configuration
CLI flags: jcas-mcp --manifest prints the full registry as JSON, --version prints the server version, --help shows usage.
Example AI Interaction
Supported Applications
JCAppleScript ships with command sheets for 12 built-in macOS apps:
Adding Custom App Support
Implement the ScriptableApp protocol to add support for any scriptable macOS app:
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
ScriptableAppfor 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
Example manifest:
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
allowedValueslist 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
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.
來源:README.md,提交 57e718e
工具
0版本歷史
1- v2.0.0最新Sep 16, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分