Skip to main content
Glama
jxnl

Python Apple MCP

by jxnl

Python Apple MCP (モデルコンテキストプロトコル)

FastMCP を使用して、連絡先、メモ、メール、メッセージ、リマインダー、カレンダー、マップなどの macOS アプリケーションとのやり取りを処理するサーバーの Python 実装。

特徴

  • AppleScript を通じて macOS ネイティブアプリケーションと対話する

  • パフォーマンス向上のための非同期操作

  • 包括的なエラー処理

  • Pydantic モデルを使用した型安全なインターフェース

  • 広範なテスト範囲

  • 簡単に拡張できるモジュール設計

Related MCP server: macnotes-mcp

サポートされているアプリケーション

  • 連絡先

  • 注記

  • 郵便

  • メッセージ

  • リマインダー

  • カレンダー

  • 地図

インストール

  1. リポジトリをクローンします。

git clone https://github.com/jxnl/python-apple-mcp.git
cd python-apple-mcp
  1. 仮想環境を作成します。

python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
  1. 依存関係をインストールします:

pip install -r requirements.txt
  1. テストの依存関係をインストールします(オプション):

pip install -r requirements-test.txt

使用法

基本的な例

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

個々のモジュールの使用

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

テスト

テスト スイートを実行します。

pytest

カバレッジ付きのテストを実行します。

pytest --cov=utils tests/

特定のテスト ファイルを実行します。

pytest tests/test_contacts.py

APIドキュメント

連絡先モジュール

  • find_contact(name: str) -> List[Contact] : 名前で連絡先を検索する

  • get_all_contacts() -> List[Contact] : すべての連絡先を取得する

  • create_contact(name: str, phones: List[str]) -> Contact : 新しい連絡先を作成する

ノートモジュール

  • find_note(query: str) -> List[Note] : ノートを検索する

  • create_note(title: str, body: str, folder_name: str) -> Note : 新しいノートを作成する

  • get_all_notes() -> List[Note] : すべてのノートを取得する

メールモジュール

  • send_email(to: str, subject: str, body: str) -> str : メールを送信する

  • search_emails(query: str) -> List[Email] : メールを検索

  • get_unread_mails() -> List[Email] : 未読メールを取得する

メッセージモジュール

  • send_message(to: str, content: str) -> bool : iMessageを送信する

  • read_messages(phone_number: str) -> List[Message] : メッセージを読む

  • schedule_message(to: str, content: str, scheduled_time: str) -> Dict : メッセージをスケジュールする

リマインダーモジュール

  • create_reminder(name: str, list_name: str, notes: str, due_date: str) -> Dict : リマインダーを作成する

  • search_reminders(query: str) -> List[Dict] : リマインダーを検索

  • get_all_reminders() -> List[Dict] : すべてのリマインダーを取得する

カレンダーモジュール

  • create_event(title: str, start_date: str, end_date: str, location: str, notes: str) -> Dict : イベントを作成する

  • search_events(query: str) -> List[Dict] : イベントを検索する

  • get_events() -> List[Dict] : すべてのイベントを取得する

マップモジュール

  • search_locations(query: str) -> List[Location] : 場所を検索する

  • get_directions(from_address: str, to_address: str, transport_type: str) -> str : 道順を取得する

  • save_location(name: str, address: str) -> Dict : 場所をお気に入りに保存する

貢献

  1. リポジトリをフォークする

  2. 機能ブランチを作成する

  3. 変更をコミットする

  4. ブランチにプッシュする

  5. プルリクエストを作成する

ライセンス

このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細については LICENSE ファイルを参照してください。

F
license - not found
-
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    -
    quality
    D
    maintenance
    A production-ready MCP server for macOS that provides async, cache-backed access and background queued writes to Apple Notes. It enables seamless integration for reading, creating, and managing notes through standard tools like ScriptingBridge while supporting background service execution.
    MIT
  • A
    license
    -
    quality
    A
    maintenance
    A collection of MCP servers for Apple macOS apps (Mail, Contacts, Notes, Memory, Messages, Calendar, Reminders) enabling AI assistants to read, search, create, and update data via JXA, SQLite, and EventKit.
    12
    MIT

View all related MCP servers

Related MCP Connectors

  • MCP connector for iMessage & Contacts via a local Mac agent + Vercel relay

  • Let ChatGPT, Claude & Cursor use your Mac: email, calendar, iMessage, Teams, files. Local, free.

  • A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…

View all MCP Connectors

Latest Blog Posts

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