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