applescript-mcp MCP サーバー
LLMアプリケーションがAppleScriptを介してmacOSと連携できるようにするモデルコンテキストプロトコル(CMP)サーバー。このサーバーは、AIアプリケーションがシステム機能の制御、ファイルの管理、通知の処理などを行うための標準化されたインターフェースを提供します。
特徴
🗓️ カレンダー管理(イベント、リマインダー)
📋 クリップボード操作
🔍 Finder との統合
🔔 システム通知
⚙️ システムコントロール(音量、ダークモード、アプリ)
📟 iTerm ターミナル統合
📬 メール(新しいメールの作成、メールの一覧表示、メールの取得)
🔄ショートカットの自動化
💬 メッセージ(チャットの一覧表示、メッセージの取得、メッセージの検索、メッセージの送信)
🗒️ メモ(フォーマットされたメモの作成、メモの一覧表示、メモの検索)
📄 Pages(ドキュメントの作成)
計画されている機能
🧭 Safari(Safariで開く、ページコンテンツを保存、選択したページ/タブを取得する)
✅ リマインダー(作成、取得)
前提条件
macOS 10.15以降
Node.js 18以降
利用可能なカテゴリ
カレンダー
指示 | 説明 | パラメータ |
| カレンダーイベントを作成 |
、
、
、
(オプション) |
| 今日のイベントを一覧表示する | なし |
例
クリップボード
指示 | 説明 | パラメータ |
| クリップボードにコピー |
|
| クリップボードの内容を取得する | なし |
| クリップボードをクリア | なし |
例
ファインダ
指示 | 説明 | パラメータ |
| 選択したファイルを取得する | なし |
| ファイルを検索する |
、
(オプション) |
| プレビューファイル |
|
例
通知
注意: 通知を送信するには、システム設定 > 通知 > スクリプト エディターで通知を有効にする必要があります。
指示 | 説明 | パラメータ |
| 通知を表示 |
、
、
(オプション) |
| DNDモードを切り替える | なし |
例
システム
指示 | 説明 | パラメータ |
| システム音量を設定する |
(0~100) |
| アクティブアプリを入手 | なし |
| アプリケーションを開く |
|
| 応募を締め切る |
、
(オプション) |
| ダークモードを切り替える | なし |
例
iTerm
指示 | 説明 | パラメータ |
| iTermに貼り付け | なし |
| コマンドを実行 |
、
(オプション) |
例
ショートカット
指示 | 説明 | パラメータ |
| ショートカットを実行する |
、
(オプション) |
| 利用可能なショートカットをすべて一覧表示する |
(オプション) |
例
郵便
指示 | 説明 | パラメータ |
| Mail.appで新しいメールを作成する |
、
、
|
| メールボックスからメールを一覧表示する |
(オプション)、
(オプション)、
(オプション) |
| 検索で特定のメールを取得する |
(オプション)、
(オプション)��
(オプション)、
(オプション)、
(オプション)、
(オプション)、
(オプション) |
例
メッセージ
指示 | 説明 | パラメータ |
| 利用可能なiMessageとSMSチャットを一覧表示する |
(オプション、デフォルト: false) |
| メッセージアプリからメッセージを受け取る |
(オプション、デフォルト: 100) |
| 特定のテキストを含むメッセージを検索する |
、
(オプション)、
(オプション)、
(オプション、デフォルト:50)、
(オプション、デフォルト:30) |
| 事前に入力されたメッセージまたは自動送信でメッセージアプリを開きます |
(必須)、
(オプション)、
(オプション、デフォルト:false) |
例
注記
指示 | 説明 | パラメータ |
| マークダウンのようなフォーマットでメモを作成する |
、
、
(書式設定オプションはオプション) |
| 直接HTMLコンテンツを含むメモを作成する |
、
|
| オプションで特定のフォルダからメモを一覧表示します |
(オプション) |
| タイトルで特定のメモを取得する |
、
(オプション) |
| 特定のテキストを含むメモを検索する |
、
(オプション)、
(オプション、デフォルト:5)、
(オプション、デフォルト:true) |
例
ページ
指示 | 説明 | パラメータ |
| プレーンテキストで新しいPages文書を作成する |
|
例
建築
applescript-mcp サーバーは TypeScript を使用して構築されており、モジュール アーキテクチャに従います。
コアコンポーネント
AppleScriptFramework (
framework.ts): 次の機能を果たすメイン サーバー クラス:MCPプロトコル通信を管理する
ツールの登録と実行を処理する
ログ機能を提供する
AppleScriptコマンドを実行する
カテゴリ(
src/categories/*.ts): 機能別に整理されたモジュール式のスクリプト コレクション:各カテゴリには関連するスクリプト(カレンダー、システム、メモなど)が含まれています。
カテゴリは
index.tsでフレームワークに登録されます。
型(
src/types/index.ts): 以下を定義する TypeScript インターフェース:ScriptDefinition: 個々のスクリプトの構造ScriptCategory: 関連スクリプトのコレクションLogLevel: 標準のログレベルFrameworkOptions: 構成オプション
実行フロー
クライアントはMCPプロトコル経由でツール要求を送信します
サーバーは適切なカテゴリとスクリプトを識別します
スクリプトコンテンツが生成される(静的または関数を介して動的)
AppleScriptはmacOSの
osascriptコマンドを介して実行されます結果がクライアントに返されます
ログシステム
このフレームワークには、次のような包括的なログ システムが含まれています。
stderr と MCP ログプロトコルの両方にログを記録します。
複数の重大度レベル (デバッグ、情報、警告、エラーなど) をサポートします
トラブルシューティングのための詳細な実行情報を提供します
発達
設定
新しい機能の追加
1. カテゴリファイルを作成する
src/categories/newcategory.tsを作成します:
2. スクリプトを追加する
3. 登録カテゴリー
src/index.tsを更新します:
高度なスクリプト開発
より複雑なスクリプトの場合は、次のことが可能です。
動的スクリプト生成を使用する:
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; }複雑なデータの処理:
// 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; }
デバッグ
MCPインスペクターの使用
MCP Inspector は、サーバーのテストとデバッグのための Web インターフェイスを提供します。
ログ記録
環境変数を設定してデバッグ ログを有効にします。
構成例
npm run buildを実行した後、 mcp.jsonファイルに以下を追加します。
よくある問題
権限エラー: システム環境設定 > セキュリティとプライバシー > プライバシー > オートメーションを確認してください
スクリプトの失敗: 統合前にスクリプトエディタアプリで直接スクリプトをテストする
通信の問題: stdio ストリームがリダイレクトされていないか確認してください
データベースアクセス: 一部の機能(メッセージなど)にはフルディスクアクセス権限が必要です
リソース
貢献
リポジトリをフォークする
機能ブランチを作成する
変更をコミットする
ブランチにプッシュする
プルリクエストを作成する
ライセンス
MITライセンス - 詳細はライセンスを参照
local-only server
The server can only run on the client's local machine because it depends on local resources.
Tools
LLM アプリケーションが AppleScript を通じて macOS と対話できるようにします。
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