Apple MCP (Model Context Protocol)-Tools
Eine Sammlung von Tools, die es KI-Assistenten wie Claude ermöglichen, über das Model Context Protocol (MCP) mit Apple-Anwendungen und -Diensten zu interagieren.
Überblick
Dieses Paket bietet MCP-Tools für die Interaktion mit verschiedenen Apple-Anwendungen und -Diensten, darunter:
Kontakte : Suchen und Abrufen von Kontakten aus der Apple-Kontakte-App
Notizen : Suchen, abrufen, Notizen erstellen und Ordner in der Apple Notes-App auflisten
Nachrichten : Nachrichten senden, lesen, planen und ungelesene Nachrichten prüfen
Mail : Ungelesene E-Mails lesen, E-Mails suchen und E-Mails senden
Erinnerungen : Suchen, erstellen und öffnen Sie Erinnerungen in der Apple-Erinnerungs-App
Kalender : Suchen, erstellen und öffnen Sie Kalenderereignisse in der Apple Kalender-App
Karten : Suchen Sie nach Orten, verwalten Sie Reiseführer, speichern Sie Favoriten und erhalten Sie Wegbeschreibungen
Websuche : Durchsuchen Sie das Web mit DuckDuckGo und rufen Sie Inhalte aus den Suchergebnissen ab
Related MCP server: MCP Personal Assistant Agent
Installation
# Install with npm
npm install @sage/mcp-apple
# Install with yarn
yarn add @sage/mcp-apple
# Install with bun
bun add @sage/mcp-appleAnforderungen
macOS-Betriebssystem
Node.js 18+ oder Bun-Laufzeit
Entsprechende Berechtigungen für den Zugriff auf Apple-Anwendungen (Kontakte, Notizen, Nachrichten, E-Mail usw.)
Verwendung
Starten des MCP-Servers
# Using the CLI
npx apple-mcp
# Using bun
bun run devVerbindung zu Claude
Um diese Tools mit Claude zu verwenden, müssen Sie den MCP-Server mit Claude verbinden. Dies kann über den MCP-Proxy oder direkt über Claudes Benutzeroberfläche erfolgen, sofern verfügbar.
# Example using mcp-proxy
mcp-proxy --server "bun run /path/to/apple-mcp/index.ts"Tool-Beispiele
Kontakte
// Search for a contact by name
{
"operation": "contacts",
"name": "John Doe"
}
// List all contacts
{
"operation": "contacts"
}Hinweise
// 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"
}Nachrichten
// 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"
}Erinnerungen
// 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"
}Kalender
// 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"
}Karten
// 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
}Websuche
// Search the web
{
"operation": "webSearch",
"query": "how to make chocolate chip cookies"
}Architektur
Das Apple MCP-Tool basiert auf einer modularen Architektur:
index.ts : Haupteinstiegspunkt, der den MCP-Server einrichtet und Tools registriert
tools.ts : Definiert die Werkzeugschemata und -beschreibungen
src/handlers/ : Enthält Handler-Funktionen für jedes Tool
src/scripts/ : Enthält AppleScript-Skripte für die Interaktion mit Apple-Anwendungen
utils/ : Enthält Dienstprogrammmodule für jeden Apple-Dienst
Das Tool verwendet Lazy Loading zur Verbesserung der Leistung und lädt Module nur, wenn sie benötigt werden.
Sicherheit und Berechtigungen
Dieses Tool benötigt Zugriff auf verschiedene Apple-Anwendungen und -Dienste. Sie müssen Berechtigungen erteilen, wenn Sie von macOS dazu aufgefordert werden. Diese Berechtigungen können unter „Systemeinstellungen“ > „Sicherheit & Datenschutz“ > „Datenschutz“ verwaltet werden.
Entwicklung
Aufstellen
# Clone the repository
git clone https://github.com/yourusername/apple-mcp.git
cd apple-mcp
# Install dependencies
bun installAusführen im Entwicklungsmodus
bun run devCodestil
Verwenden Sie eine Einrückung von 2 Leerzeichen
Beschränken Sie die Zeilen auf 100 Zeichen
Verwenden Sie explizite Typanmerkungen für Funktionsparameter und Rückgabewerte
Folgen Sie PascalCase für Typen, Schnittstellen und Tool-Konstanten
Verwenden Sie camelCase für Variablen und Funktionen
Beitragen
Beiträge sind willkommen! Senden Sie gerne einen Pull Request.
Forken Sie das Repository
Erstellen Sie Ihren Feature-Zweig (
git checkout -b feature/amazing-feature)Übernehmen Sie Ihre Änderungen (
git commit -m 'Add some amazing feature')Pushen zum Zweig (
git push origin feature/amazing-feature)Öffnen einer Pull-Anfrage