osascript MCP服务器
一种MCP服务器,可以运行macOS的osascript(AppleScript/JavaScript for Automation)。
特徴
- AppleScript支持:运行macOS的本机AppleScript
- JXA支持: JavaScript for Automation(JXA)を実行
- 安全设计:仅限文件删除命令块(其他全部允许)
- Desktop Extension 対応:以.mcpb格式一键安装
安装
方法1:从MCPB文件(推荐)
.mcpb下载文件- 拖放到Claude Desktop
- 允许安装
方法2:手动设定
Claude Desktop的配置文件(~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"osascript": {
"command": "node",
"args": ["/path/to/osascript-mcp/server/index.js"],
"env": {
"OSASCRIPT_TIMEOUT": "30000",
"OSASCRIPT_LOG_SCRIPTS": "true"
}
}
}
}使用方法
运行AppleScript
tell application "Finder" to get name of every disk运行JXA(JavaScript)
Application("System Events").processes().map(p => p.name())允许的操作
下面的操作是全部允许已完成:
壳命令(非删除)
do shell script "ls -la ~/Desktop"
do shell script "whoami"
do shell script "curl -s https://api.github.com"
do shell script "cat ~/.zshrc"Finder 操作
tell application "Finder" to get name of every disk
tell application "Finder" to get every file of desktop
tell application "Finder" to open folder "Documents" of home系统事件
tell application "System Events" to get name of every process
tell application "System Events" to keystroke "hello"
tell application "System Events" to key code 36 -- Enter应用程序控制
tell application "Safari" to get URL of current tab of window 1
tell application "Music" to get name of current track
tell application "Calendar" to get events of calendar 1被阻止的操作
以下仅删除操作将被阻止:
在壳中删除
-- これらはブロックされます
do shell script "rm test.txt"
do shell script "rm -rf ~/test"
do shell script "rmdir testdir"在查找器中删除
-- これらはブロックされます
tell application "Finder" to delete file "test.txt" of desktop
move file "test.txt" to trash
empty trash配置选项
|选项|说明|默认| |-----------|------|-----------| | timeout |脚本执行超时(毫秒)|30000| | log_scripts |是否日志输出脚本|真|
开発
构建
# 依存関係インストール
npm install
# ローカルテスト
npm start
# MCPB パッケージ作成
npm install -g @anthropic-ai/mcpb
mcpb validate manifest.json
mcpb pack .测试
# 許可されるスクリプトのテスト
echo 'tell application "Finder" to get name of every disk' | node server/index.js
# サーバーの直接実行(デバッグ用)
node server/index.js安全性
此服务器采用“最低安全性”设计:
- ✅ 许可:外壳命令(
ls,curl,cat的下界 - ✅ 许可:系统事件(
keystroke,key code) - ✅ 许可:控制所有应用程序
- ❌ 块:
rm,delete,trash等删除操作
如果需要更严格的安全性server/index.js 的,之 BLOCKED_PATTERNS 中所述修改相应参数的值。
许可证
麻省理工学院
