Python Apple MCP
Python Apple MCP(模型上下文协议)
服务器的 Python 实现,使用 FastMCP 处理与 macOS 应用程序(如联系人、备忘录、邮件、消息、提醒、日历和地图)的交互。
特征
通过 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: 发送 iMessageread_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