1. Conduid
  2. Developer Tools
  3. Python Apple MCP
MCP server · Developer Tools

Python Apple MCP

MCP server: Python Apple MCP

Unclaimed last commit a year ago devtools
42Fair

Scored 5 months ago · breakdown

About Python Apple MCP

Python Apple MCP is an MCP server published by jxnl in the Developer Tools category: mCP server: Python Apple MCP.

The repository has 16 stars and 6 forks, with the last commit a year ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.

Install

From source
git clone https://github.com/jxnl/python-apple-mcp

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

✦

Ask AI about Python Apple MCP

Powered by Claude · Grounded in docs

I know everything about Python Apple MCP. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

Static checks derived from the repository 7 days ago. Heuristics on the source, not an audit.

  • ✓README presentThe repository ships documentation.
  • !License declaredNo license file. Legally you have no right to use it in a product.
  • ✓Tests presentA test suite exists in the repository.
  • !Dependencies pinnedNo lockfile. Installs can pull different code over time.
  • ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
  • !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.

README

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
  • Mail
  • Messages
  • Reminders
  • Calendar
  • Maps

Installation

  1. Clone the repository:
git clone https://github.com/jxnl/python-apple-mcp.git
cd python-apple-mcp
  1. Create a virtual environment:
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
  1. Install dependencies:
pip install -r requirements.txt
  1. Install test dependencies (optional):
pip install -r requirements-test.txt

Usage

Basic Example

from apple_mcp import FastMCP, Context

# Initialize FastMCP server
mcp = FastMCP("Apple MCP")

# Use the tools
@mcp.tool()
def find_contact(name: str) -> List[Contact]:
    """Search for contacts by name"""
    # Implementation here
    pass

# Run the server
if __name__ == "__main__":
    mcp.run()

Using Individual Modules

from utils.contacts import ContactsModule
from utils.notes import NotesModule

# Initialize modules
contacts = ContactsModule()
notes = NotesModule()

# Use the modules
async def main():
    # Find a contact
    contact = await contacts.find_contact("John")
    
    # Create a note
    await notes.create_note(
        title="Meeting Notes",
        body="Discussion points...",
        folder_name="Work"
    )

# Run the async code
import asyncio
asyncio.run(main())

Testing

Run the test suite:

pytest

Run tests with coverage:

pytest --cov=utils tests/

Run specific test file:

pytest tests/test_contacts.py

API Documentation

Contacts Module

  • find_contact(name: str) -> List[Contact]: Search for contacts by name
  • get_all_contacts() -> List[Contact]: Get all contacts
  • create_contact(name: str, phones: List[str]) -> Contact: Create a new contact

Notes Module

  • find_note(query: str) -> List[Note]: Search for notes
  • create_note(title: str, body: str, folder_name: str) -> Note: Create a new note
  • get_all_notes() -> List[Note]: Get all notes

Mail Module

  • send_email(to: str, subject: str, body: str) -> str: Send an email
  • search_emails(query: str) -> List[Email]: Search emails
  • get_unread_mails() -> List[Email]: Get unread emails

Messages Module

  • send_message(to: str, content: str) -> bool: Send an iMessage
  • read_messages(phone_number: str) -> List[Message]: Read messages
  • schedule_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 reminder
  • search_reminders(query: str) -> List[Dict]: Search reminders
  • get_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 event
  • search_events(query: str) -> List[Dict]: Search events
  • get_events() -> List[Dict]: Get all events

Maps Module

  • search_locations(query: str) -> List[Location]: Search for locations
  • get_directions(from_address: str, to_address: str, transport_type: str) -> str: Get directions
  • save_location(name: str, address: str) -> Dict: Save a location to favorites

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Commit your changes
  4. Push to the branch
  5. Create a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

README fetched from the repository 7 days ago. The original is authoritative.

Questions

About Python Apple MCP

How do I install Python Apple MCP?

No package has been published for this server, so install it from source: clone the repository and follow its README.

Is Python Apple MCP safe to use with an AI agent?

Its trust score is 42 out of 100 (fair). It passes 3 of the 6 static security checks run so far; the failures are listed above. It has no ConduID identity yet, so agent calls to it are not receipted.

Is Python Apple MCP still maintained?

The last commit was a year ago and 5 open issues. That's long enough that you should check whether the maintainer is responding to issues before depending on it.