Skip to main content
Glama

Python Apple MCP

by jxnl

MCP (Protocolo de contexto de modelo) de Python Apple

Una implementación de Python del servidor que maneja las interacciones con aplicaciones macOS como Contactos, Notas, Correo, Mensajes, Recordatorios, Calendario y Mapas usando FastMCP.

Características

  • Interactúe con aplicaciones nativas de macOS a través de AppleScript
  • Operaciones asincrónicas para un mejor rendimiento
  • Manejo integral de errores
  • Interfaces de tipos seguros que utilizan modelos de Pydantic
  • Amplia cobertura de pruebas
  • Diseño modular para una fácil ampliación

Aplicaciones compatibles

  • Contactos
  • Notas
  • Correo
  • Mensajes
  • Recordatorios
  • Calendario
  • Mapas

Instalación

  1. Clonar el repositorio:
git clone https://github.com/jxnl/python-apple-mcp.git cd python-apple-mcp
  1. Crear un entorno virtual:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
  1. Instalar dependencias:
pip install -r requirements.txt
  1. Instalar dependencias de prueba (opcional):
pip install -r requirements-test.txt

Uso

Ejemplo básico

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()

Uso de módulos individuales

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())

Pruebas

Ejecute el conjunto de pruebas:

pytest

Ejecutar pruebas con cobertura:

pytest --cov=utils tests/

Ejecutar archivo de prueba específico:

pytest tests/test_contacts.py

Documentación de la API

Módulo de contactos

  • find_contact(name: str) -> List[Contact] : Busca contactos por nombre
  • get_all_contacts() -> List[Contact] : Obtener todos los contactos
  • create_contact(name: str, phones: List[str]) -> Contact : Crea un nuevo contacto

Módulo de notas

  • find_note(query: str) -> List[Note] : Buscar notas
  • create_note(title: str, body: str, folder_name: str) -> Note : Crea una nueva nota
  • get_all_notes() -> List[Note] : Obtener todas las notas

Módulo de correo

  • send_email(to: str, subject: str, body: str) -> str : Enviar un correo electrónico
  • search_emails(query: str) -> List[Email] : Buscar correos electrónicos
  • get_unread_mails() -> List[Email] : Obtener correos electrónicos no leídos

Módulo de mensajes

  • send_message(to: str, content: str) -> bool : Enviar un iMessage
  • read_messages(phone_number: str) -> List[Message] : Leer mensajes
  • schedule_message(to: str, content: str, scheduled_time: str) -> Dict : Programar un mensaje

Módulo de recordatorios

  • create_reminder(name: str, list_name: str, notes: str, due_date: str) -> Dict : Crea un recordatorio
  • search_reminders(query: str) -> List[Dict] : Recordatorios de búsqueda
  • get_all_reminders() -> List[Dict] : Obtener todos los recordatorios

Módulo de calendario

  • create_event(title: str, start_date: str, end_date: str, location: str, notes: str) -> Dict : Crea un evento
  • search_events(query: str) -> List[Dict] : Buscar eventos
  • get_events() -> List[Dict] : Obtener todos los eventos

Módulo de mapas

  • search_locations(query: str) -> List[Location] : Buscar ubicaciones
  • get_directions(from_address: str, to_address: str, transport_type: str) -> str : Obtener direcciones
  • save_location(name: str, address: str) -> Dict : Guardar una ubicación en favoritos

Contribuyendo

  1. Bifurcar el repositorio
  2. Crear una rama de características
  3. Confirme sus cambios
  4. Empujar hacia la rama
  5. Crear una solicitud de extracción

Licencia

Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.

-
security - not tested
F
license - not found
-
quality - not tested

local-only server

The server can only run on the client's local machine because it depends on local resources.

Un servidor Python que permite la interacción con aplicaciones nativas de macOS (Contactos, Notas, Correo, Mensajes, Recordatorios, Calendario y Mapas) a través de AppleScript, con operaciones asincrónicas e interfaces de tipos seguros.

  1. Características
    1. Aplicaciones compatibles
      1. Instalación
        1. Uso
          1. Ejemplo básico
          2. Uso de módulos individuales
        2. Pruebas
          1. Documentación de la API
            1. Módulo de contactos
            2. Módulo de notas
            3. Módulo de correo
            4. Módulo de mensajes
            5. Módulo de recordatorios
            6. Módulo de calendario
            7. Módulo de mapas
          2. Contribuyendo
            1. Licencia

              Related MCP Servers

              • A
                security
                A
                license
                A
                quality
                A 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 -
                1
                1,060
                329
                JavaScript
                MIT License
                • Apple
              • A
                security
                F
                license
                A
                quality
                A collection of tools that enable AI assistants to interact with Apple applications and services including Contacts, Notes, Messages, Mail, Reminders, Calendar, Maps, and Web Search through the Model Context Protocol.
                Last updated -
                8
                TypeScript
                • Apple
              • A
                security
                A
                license
                A
                quality
                Provides 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 -
                2
                698
                410
                TypeScript
                MIT License
                • Apple
              • -
                security
                F
                license
                -
                quality
                A modern, extensible server that provides a unified interface to control and interact with various macOS applications through plugins.
                Last updated -
                Python
                • Apple

              View all related MCP servers

              MCP directory API

              We provide all the information about MCP servers via our MCP API.

              curl -X GET 'https://glama.ai/api/mcp/v1/servers/jxnl/python-apple-mcp'

              If you have feedback or need assistance with the MCP directory API, please join our Discord server