applescript-mcp MCP サーバー
LLMアプリケーションがAppleScriptを介してmacOSと連携できるようにするモデルコンテキストプロトコル(CMP)サーバー。このサーバーは、AIアプリケーションがシステム機能の制御、ファイルの管理、通知の処理などを行うための標準化されたインターフェースを提供します。
特徴
- 🗓️ カレンダー管理(イベント、リマインダー)
- 📋 クリップボード操作
- 🔍 Finder との統合
- 🔔 システム通知
- ⚙️ システムコントロール(音量、ダークモード、アプリ)
- 📟 iTerm ターミナル統合
- 📬 メール(新しいメールの作成、メールの一覧表示、メールの取得)
- 🔄ショートカットの自動化
- 💬 メッセージ(チャットの一覧表示、メッセージの取得、メッセージの検索、メッセージの送信)
- 🗒️ メモ(フォーマットされたメモの作成、メモの一覧表示、メモの検索)
- 📄 Pages(ドキュメントの作成)
計画されている機能
- 🧭 Safari(Safariで開く、ページコンテンツを保存、選択したページ/タブを取得する)
- ✅ リマインダー(作成、取得)
前提条件
- macOS 10.15以降
- Node.js 18以降
利用可能なカテゴリ
カレンダー
指示 | 説明 | パラメータ |
---|---|---|
add | カレンダーイベントを作成 | title 、 startDate 、 endDate 、 calendar (オプション) |
list | 今日のイベントを一覧表示する | なし |
例
クリップボード
指示 | 説明 | パラメータ |
---|---|---|
set_clipboard | クリップボードにコピー | content |
get_clipboard | クリップボードの内容を取得する | なし |
clear_clipboard | クリップボードをクリア | なし |
例
ファインダ
指示 | 説明 | パラメータ |
---|---|---|
get_selected_files | 選択したファイルを取得する | なし |
search_files | ファイルを検索する | query 、 location (オプション) |
quick_look | プレビューファイル | path |
例
通知
注意: 通知を送信するには、システム設定 > 通知 > スクリプト エディターで通知を有効にする必要があります。
指示 | 説明 | パラメータ |
---|---|---|
send_notification | 通知を表示 | title 、 message 、 sound (オプション) |
toggle_do_not_disturb | DNDモードを切り替える | なし |
例
システム
指示 | 説明 | パラメータ |
---|---|---|
volume | システム音量を設定する | level (0~100) |
get_frontmost_app | アクティブアプリを入手 | なし |
launch_app | アプリケーションを開く | name |
quit_app | 応募を締め切る | name 、 force (オプション) |
toggle_dark_mode | ダークモードを切り替える | なし |
例
iTerm
指示 | 説明 | パラメータ |
---|---|---|
paste_clipboard | iTermに貼り付け | なし |
run | コマンドを実行 | command 、 newWindow (オプション) |
例
ショートカット
指示 | 説明 | パラメータ |
---|---|---|
run_shortcut | ショートカットを実行する | name 、 input (オプション) |
list_shortcuts | 利用可能なショートカットをすべて一覧表示する | limit (オプション) |
例
郵便
指示 | 説明 | パラメータ |
---|---|---|
create_email | Mail.appで新しいメールを作成する | recipient 、 subject 、 body |
list_emails | メールボックスからメールを一覧表示する | mailbox (オプション)、 count (オプション)、 unreadOnly (オプション) |
get_email | 検索で特定のメールを取得する | subject (オプション)、 sender (オプション)、 dateReceived (オプション)、 mailbox (オプション)、 account (オプション)、 unreadOnly (オプション)、 includeBody (オプション) |
例
メッセージ
指示 | 説明 | パラメータ |
---|---|---|
list_chats | 利用可能なiMessageとSMSチャットを一覧表示する | includeParticipantDetails (オプション、デフォルト: false) |
get_messages | メッセージアプリからメッセージを受け取る | limit (オプション、デフォルト: 100) |
search_messages | 特定のテキストを含むメッセージを検索する | searchText 、 sender (オプション)、 chatId (オプション)、 limit (オプション、デフォルト:50)、 daysBack (オプション、デフォルト:30) |
compose_message | 事前に入力されたメッセージまたは自動送信でメッセージアプリを開きます | recipient (必須)、 body (オプション)、 auto (オプション、デフォルト:false) |
例
注記
指示 | 説明 | パラメータ |
---|---|---|
create | マークダウンのようなフォーマットでメモを作成する | title 、 content 、 format (書式設定オプションはオプション) |
createRawHtml | 直接HTMLコンテンツを含むメモを作成する | title 、 html |
list | オプションで特定のフォルダからメモを一覧表示します | folder (オプション) |
get | タイトルで特定のメモを取得する | title 、 folder (オプション) |
search | 特定のテキストを含むメモを検索する | query 、 folder (オプション)、 limit (オプション、デフォルト:5)、 includeBody (オプション、デフォルト:true) |
例
ページ
指示 | 説明 | パラメータ |
---|---|---|
create_document | プレーンテキストで新しいPages文書を作成する | content |
例
建築
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
を更新します:
高度なスクリプト開発
より複雑なスクリプトの場合は、次のことが可能です。
- 動的スクリプト生成を使用する:
- 複雑なデータの処理:
デバッグ
MCPインスペクターの使用
MCP Inspector は、サーバーのテストとデバッグのための Web インターフェイスを提供します。
ログ記録
環境変数を設定してデバッグ ログを有効にします。
構成例
npm run build
を実行した後、 mcp.json
ファイルに以下を追加します。
よくある問題
- 権限エラー: システム環境設定 > セキュリティとプライバシー > プライバシー > オートメーションを確認してください
- スクリプトの失敗: 統合前にスクリプトエディタアプリで直接スクリプトをテストする
- 通信の問題: stdio ストリームがリダイレクトされていないか確認してください
- データベースアクセス: 一部の機能(メッセージなど)にはフルディスクアクセス権限が必要です
リソース
貢献
- リポジトリをフォークする
- 機能ブランチを作成する
- 変更をコミットする
- ブランチにプッシュする
- プルリクエストを作成する
ライセンス
MITライセンス - 詳細はライセンスを参照
You must be authenticated.
local-only server
The server can only run on the client's local machine because it depends on local resources.
LLM アプリケーションが AppleScript を通じて macOS と対話できるようにします。
Related MCP Servers
- AsecurityAlicenseAqualityEnables LLMs to interact with web pages, take screenshots, and execute JavaScript in a real browser environmentLast updated -1032785JavaScriptMIT License
- AsecurityFlicenseAqualityEnables LLMs to perform web browsing tasks, take screenshots, and execute JavaScript using Puppeteer for browser automation.Last updated -415,5021JavaScript
- AsecurityFlicenseAqualityEnables browser automation for LLMs on Linux display servers, supporting web interaction, screenshots, and JavaScript execution in a real browser.Last updated -754JavaScript
- -securityAlicense-qualityA comprehensive toolkit that enhances LLM capabilities through the Model Context Protocol, allowing LLMs to interact with external services including command-line operations, file management, Figma integration, and audio processing.Last updated -17PythonApache 2.0