Python Apple MCP
Python Apple MCP (モデルコンテキストプロトコル)
FastMCP を使用して、連絡先、メモ、メール、メッセージ、リマインダー、カレンダー、マップなどの macOS アプリケーションとのやり取りを処理するサーバーの Python 実装。
特徴
AppleScript を通じて macOS ネイティブアプリケーションと対話する
パフォーマンス向上のための非同期操作
包括的なエラー処理
Pydantic モデルを使用した型安全なインターフェース
広範なテスト範囲
簡単に拡張できるモジュール設計
Related MCP server: macOS Automator MCP Server
サポートされているアプリケーション
連絡先
注記
郵便
メッセージ
リマインダー
カレンダー
地図
インストール
リポジトリをクローンします。
git clone https://github.com/jxnl/python-apple-mcp.git
cd python-apple-mcp仮想環境を作成します。
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate依存関係をインストールします:
pip install -r requirements.txtテストの依存関係をインストールします(オプション):
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.pyAPIドキュメント
連絡先モジュール
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: 場所をお気に入りに保存する
貢献
リポジトリをフォークする
機能ブランチを作成する
変更をコミットする
ブランチにプッシュする
プルリクエストを作成する
ライセンス
このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細については LICENSE ファイルを参照してください。
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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