Apple MCP(モデルコンテキストプロトコル)ツール
Claude のような AI アシスタントが Model Context Protocol (MCP) を通じて Apple のアプリケーションやサービスと対話できるようにするツールのコレクションです。
概要
このパッケージには、次のようなさまざまな Apple アプリケーションやサービスと対話するための MCP ツールが含まれています。
- 連絡先: Appleの連絡先アプリから連絡先を検索して取得します
- メモ: Apple Notes アプリでメモを検索、取得、作成し、フォルダーを一覧表示します
- メッセージ: メッセージの送信、閲覧、スケジュール設定、未読メッセージの確認
- メール: 未読メールを読んだり、メールを検索したり、メールを送信したりできます
- リマインダー: Appleのリマインダーアプリでリマインダーを検索、作成、開く
- カレンダー: Apple カレンダー アプリでカレンダー イベントを検索、作成、開く
- マップ: 場所を検索、ガイドを管理、お気に入りを保存、ルートを検索
- ウェブ検索: DuckDuckGoを使用してウェブを検索し、検索結果からコンテンツを取得します
インストール
# Install with npm
npm install @sage/mcp-apple
# Install with yarn
yarn add @sage/mcp-apple
# Install with bun
bun add @sage/mcp-apple
要件
- macOSオペレーティングシステム
- Node.js 18+ または Bun ランタイム
- Apple アプリケーション (連絡先、メモ、メッセージ、メールなど) にアクセスするための適切な権限
使用法
MCPサーバーの起動
# Using the CLI
npx apple-mcp
# Using bun
bun run dev
クロードへの接続
これらのツールをClaudeで使用するには、MCPサーバーをClaudeに接続する必要があります。これは、MCPプロキシを使用するか、Claudeのインターフェース(利用可能な場合)から直接行うことができます。
# Example using mcp-proxy
mcp-proxy --server "bun run /path/to/apple-mcp/index.ts"
ツールの例
連絡先
// Search for a contact by name
{
"operation": "contacts",
"name": "John Doe"
}
// List all contacts
{
"operation": "contacts"
}
注記
// Search for notes containing specific text
{
"operation": "notes",
"operation": "search",
"searchText": "meeting notes"
}
// Create a new note
{
"operation": "notes",
"operation": "create",
"title": "Shopping List",
"body": "- Milk\n- Eggs\n- Bread",
"folderName": "Personal"
}
// List all notes in a folder
{
"operation": "notes",
"operation": "list",
"folderName": "Work"
}
// List all folders
{
"operation": "notes",
"operation": "listFolders"
}
// Create a new folder
{
"operation": "notes",
"operation": "createFolder",
"folderName": "Projects"
}
メッセージ
// Send a message
{
"operation": "messages",
"operation": "send",
"phoneNumber": "+1234567890",
"message": "Hello, how are you?"
}
// Read messages from a contact
{
"operation": "messages",
"operation": "read",
"phoneNumber": "+1234567890",
"limit": 5
}
// Schedule a message
{
"operation": "messages",
"operation": "schedule",
"phoneNumber": "+1234567890",
"message": "Don't forget our meeting tomorrow!",
"scheduledTime": "2023-12-01T09:00:00Z"
}
// Check unread messages
{
"operation": "messages",
"operation": "unread"
}
郵便
// Check unread emails
{
"operation": "mail",
"operation": "unread",
"limit": 10
}
// Search emails
{
"operation": "mail",
"operation": "search",
"searchTerm": "invoice",
"limit": 5
}
// Send an email
{
"operation": "mail",
"operation": "send",
"to": "recipient@example.com",
"subject": "Meeting Agenda",
"body": "Here's the agenda for our meeting tomorrow...",
"cc": "colleague@example.com"
}
// List mailboxes
{
"operation": "mail",
"operation": "mailboxes"
}
// List accounts
{
"operation": "mail",
"operation": "accounts"
}
リマインダー
// List all reminders
{
"operation": "reminders",
"operation": "list"
}
// Search for reminders
{
"operation": "reminders",
"operation": "search",
"searchText": "groceries"
}
// Create a reminder
{
"operation": "reminders",
"operation": "create",
"name": "Buy milk",
"listName": "Shopping",
"notes": "Get organic milk",
"dueDate": "2023-12-01T18:00:00Z"
}
// Open a reminder
{
"operation": "reminders",
"operation": "open",
"searchText": "Buy milk"
}
// List reminders by list ID
{
"operation": "reminders",
"operation": "listById",
"listId": "x-apple-reminder://list/123456"
}
カレンダー
// Search for events
{
"operation": "calendar",
"operation": "search",
"searchText": "meeting",
"fromDate": "2023-12-01T00:00:00Z",
"toDate": "2023-12-31T23:59:59Z"
}
// List upcoming events
{
"operation": "calendar",
"operation": "list",
"limit": 5
}
// Create an event
{
"operation": "calendar",
"operation": "create",
"title": "Team Meeting",
"startDate": "2023-12-05T14:00:00Z",
"endDate": "2023-12-05T15:00:00Z",
"location": "Conference Room A",
"notes": "Quarterly review meeting",
"isAllDay": false,
"calendarName": "Work"
}
// Open an event
{
"operation": "calendar",
"operation": "open",
"eventId": "x-apple-calendar://event/123456"
}
地図
// Search for locations
{
"operation": "maps",
"operation": "search",
"query": "coffee shops near me",
"limit": 5
}
// Save a location
{
"operation": "maps",
"operation": "save",
"name": "Favorite Coffee Shop",
"address": "123 Main St, Anytown, USA"
}
// Get directions
{
"operation": "maps",
"operation": "directions",
"fromAddress": "123 Main St, Anytown, USA",
"toAddress": "456 Oak Ave, Anytown, USA",
"transportType": "driving"
}
// Drop a pin
{
"operation": "maps",
"operation": "pin",
"name": "Meeting Point",
"address": "Central Park, New York, NY"
}
// List guides
{
"operation": "maps",
"operation": "listGuides"
}
// Create a guide
{
"operation": "maps",
"operation": "createGuide",
"guideName": "Favorite Restaurants"
}
// Add to guide
{
"operation": "maps",
"operation": "addToGuide",
"guideName": "Favorite Restaurants",
"address": "789 Pine St, Anytown, USA"
}
// Get map center coordinates
{
"operation": "maps",
"operation": "getCenter"
}
// Set map center coordinates
{
"operation": "maps",
"operation": "setCenter",
"latitude": 37.7749,
"longitude": -122.4194
}
ウェブ検索
// Search the web
{
"operation": "webSearch",
"query": "how to make chocolate chip cookies"
}
建築
Apple MCP ツールは、モジュール式アーキテクチャで構築されています。
- index.ts : MCPサーバーをセットアップし、ツールを登録するメインエントリポイント
- tools.ts : ツールのスキーマと説明を定義します
- src/handlers/ : 各ツールのハンドラー関数が含まれています
- src/scripts/ : Appleアプリケーションと対話するためのAppleScriptスクリプトが含まれています
- utils/ : 各Appleサービスのユーティリティモジュールが含まれています
このツールは遅延読み込みを使用してパフォーマンスを向上させ、必要なときにのみモジュールを読み込みます。
セキュリティと権限
このツールは、Appleの様々なアプリケーションやサービスへのアクセスを必要とします。macOSのプロンプトが表示されたら、許可を与えてください。これらの権限は、システム環境設定 > セキュリティとプライバシー > プライバシーで管理できます。
発達
設定
# Clone the repository
git clone https://github.com/yourusername/apple-mcp.git
cd apple-mcp
# Install dependencies
bun install
開発モードで実行
コードスタイル
- 2スペースのインデントを使用する
- 1行を100文字以下にする
- 関数のパラメータと戻り値に明示的な型注釈を使用する
- 型、インターフェース、ツール定数については PascalCase に従ってください
- 変数と関数にはキャメルケースを使用する
貢献
貢献を歓迎します!お気軽にプルリクエストを送信してください。
- リポジトリをフォークする
- 機能ブランチを作成します(
git checkout -b feature/amazing-feature
) - 変更をコミットします (
git commit -m 'Add some amazing feature'
) - ブランチにプッシュする (
git push origin feature/amazing-feature
) - プルリクエストを開く