Python Apple MCP (Model Context Protocol)
A Python implementation of the server that handles interactions with macOS applications such as Contacts, Notes, Mail, Messages, Reminders, Calendar, and Maps using FastMCP.
Features
- Interact with macOS native applications through AppleScript
- Asynchronous operations for better performance
- Comprehensive error handling
- Type-safe interfaces using Pydantic models
- Extensive test coverage
- Modular design for easy extension
Supported Applications
- Contacts
- Notes
- Messages
- Reminders
- Calendar
- Maps
Installation
- Clone the repository:
- Create a virtual environment:
- Install dependencies:
- Install test dependencies (optional):
Usage
Basic Example
Using Individual Modules
Testing
Run the test suite:
Run tests with coverage:
Run specific test file:
API Documentation
Contacts Module
find_contact(name: str) -> List[Contact]
: Search for contacts by nameget_all_contacts() -> List[Contact]
: Get all contactscreate_contact(name: str, phones: List[str]) -> Contact
: Create a new contact
Notes Module
find_note(query: str) -> List[Note]
: Search for notescreate_note(title: str, body: str, folder_name: str) -> Note
: Create a new noteget_all_notes() -> List[Note]
: Get all notes
Mail Module
send_email(to: str, subject: str, body: str) -> str
: Send an emailsearch_emails(query: str) -> List[Email]
: Search emailsget_unread_mails() -> List[Email]
: Get unread emails
Messages Module
send_message(to: str, content: str) -> bool
: Send an iMessageread_messages(phone_number: str) -> List[Message]
: Read messagesschedule_message(to: str, content: str, scheduled_time: str) -> Dict
: Schedule a message
Reminders Module
create_reminder(name: str, list_name: str, notes: str, due_date: str) -> Dict
: Create a remindersearch_reminders(query: str) -> List[Dict]
: Search remindersget_all_reminders() -> List[Dict]
: Get all reminders
Calendar Module
create_event(title: str, start_date: str, end_date: str, location: str, notes: str) -> Dict
: Create an eventsearch_events(query: str) -> List[Dict]
: Search eventsget_events() -> List[Dict]
: Get all events
Maps Module
search_locations(query: str) -> List[Location]
: Search for locationsget_directions(from_address: str, to_address: str, transport_type: str) -> str
: Get directionssave_location(name: str, address: str) -> Dict
: Save a location to favorites
Contributing
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
This server cannot be installed
local-only server
The server can only run on the client's local machine because it depends on local resources.
非同期操作と型セーフなインターフェースを備え、AppleScript を介して macOS ネイティブ アプリケーション (連絡先、メモ、メール、メッセージ、リマインダー、カレンダー、マップ) とのやり取りを可能にする Python サーバーです。
Related MCP Servers
- AsecurityAlicenseAqualityA 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 -1422348MIT License
- AsecurityAlicenseAqualityProvides a Model Context Protocol server for executing AppleScript and JavaScript for Automation scripts on macOS, featuring a knowledge base of pre-defined scripts and supporting automation of macOS applications and system functions.Last updated -276447MIT License
- -securityFlicense-qualityA modern, extensible server that provides a unified interface to control and interact with various macOS applications through plugins.Last updated -
- AsecurityAlicenseAqualityA Model Context Protocol server that enables direct integration with macOS Calendar application using AppleScript, allowing users to create, list, and search calendar events without requiring OAuth setup.Last updated -83MIT License