
macOS 上使用 EventKit 和 ScriptingBridge 的 Apple 日历、邮件和提醒 MCP 服务器
概览
本地 macOS 应用和文件的 MCP 服务器,使用原生框架。 它为任何兼容MCP的客户端(Warp、Claude Desktop、Claude Code、Cursor)提供对苹果日历、邮件、提醒、笔记、联系人、文件、数字、页面和Keynote的结构化访问。没有云依赖,也没有OAuth设置:数据来自本地macOS存储和已配置好的应用。 Orchard-MCP 从本地 macOS 数据存储和应用读取: - 日历和提醒的EventKit - 联系人的Contacts.framework - 文件管理器、Spotlight、PDFKit 和 Vision 的文件和文本提取- AppleScript/JXA 用于邮件、笔记、数字、页面和关键说明 操作系统通过 处理账户认证。Orchard-MCP 本身从不与任何远程服务通信,也不需要 OAuth 客户端 ID、重定向 URI 或令牌管理。 Orchard-MCP 本身不会向任何地方发送数据。
概述(AI 翻译)
本地 macOS 应用和文件的 MCP 服务器,使用原生框架。
提供任何兼容MCP的客户端(Warp、Claude Desktop、Claude Code、Cursor)结构化 访问苹果日历、邮件、提醒、笔记、联系人、文件、号码、页面和 主题说明。没有云依赖,也没有OAuth设置:数据来自本地 macOS的商店和应用已经在你的机器上配置好了。
它是如何运作的
Orchard-MCP 从本地 macOS 数据存储和应用读取:
- 日历和提醒功能的EventKit
- Contacts.framework 联系人
- FileManager、Spotlight、PDFKit 和 Vision 用于文件和文本提取
- 适用于邮件、笔记、数字、页面和Keynote的AppleScript/JXA
操作系统通过系统设置>互联网账户来处理账户认证。 Orchard-MCP 本身从不与任何远程服务通信,也不需要 OAuth 客户端ID、重定向URI或令牌管理。
隐私说明: Orchard-mcp 本身不会向任何地方发送数据。然而,MCP 客户端 调用工具时,会接收返回的数据(日历事件、邮件、提醒, 文件、笔记、联系人和文档)作为对话语境的一部分。请注意 你要求客户访问的内容。
本页由 AI 翻译,技术细节请以原文为准。
README
以下为原文 README 节选,完整内容请查看原文。
orchard-mcp
MCP server for local macOS apps and files using native frameworks.
Gives any MCP-compatible client (Warp, Claude Desktop, Claude Code, Cursor) structured access to Apple Calendar, Mail, Reminders, Notes, Contacts, Files, Numbers, Pages, and Keynote. There are no cloud dependencies and no OAuth setup: data comes from the local macOS stores and apps already configured on your machine.
How it works
orchard-mcp reads from local macOS data stores and apps:
- EventKit for Calendar and Reminders
- Contacts.framework for Contacts
- FileManager, Spotlight, PDFKit, and Vision for files and text extraction
- AppleScript/JXA for Mail, Notes, Numbers, Pages, and Keynote
The OS handles account authentication through System Settings > Internet Accounts. orchard-mcp itself never communicates with any remote service and requires no OAuth client IDs, redirect URIs, or token management.
Privacy note: orchard-mcp itself sends no data anywhere. However, the MCP client that invokes tools receives the returned data (calendar events, emails, reminders, files, notes, contacts, and documents) as part of the conversation context. Be mindful of what you ask the client to access.
App Safety
orchard-mcp refuses broad requests rather than making host apps unresponsive. Mail.app, Notes, Numbers, Pages, and Keynote calls are serialized through app-specific safety lanes with timeout, queue, and output-size budgets. Expensive scopes are rejected before AppleScript/JXA starts.
Examples:
mail_save_attachmentrequiresaccountandmailboxfrom a recent Mail result.- Notes body/all search is refused; use title search, then
notes_read_note. numbers_readandnumbers_get_formulasrequire a cell range.- PNG/JPEG Keynote export requires a single slide index.
- Calendar list/search ranges are capped at 31 days.
See docs/app-safety-audit.md for the current audit and guardrails.
The only permissions needed are macOS TCC grants (for example, “Allow access to Calendars”), triggered automatically on first use or during setup.
Status
Current release: 65 tools across Calendar, Mail, Reminders, Files, System, Numbers, Pages, Keynote, Notes, and Contacts. See CHANGELOG.md for release history.
Requirements
- macOS 14+ (Sonoma or later)
- Node.js 22+
Install
npm install -g @l22-io/orchard-mcp
orchard-mcp setup
If Xcode Command Line Tools are installed (xcode-select --install), postinstall builds
apple-bridge from source - the strongest install-time guarantee. Otherwise the package
falls back to the shipped prebuilt universal binary (arm64 + x86_64) and verifies its
SHA-256 against the manifest published inside the tarball.
The setup wizard verifies prerequisites, triggers macOS permission prompts, and generates MCP client configuration.
From Source
See CONTRIBUTING.md for building from source.
安装
npx @l22-io/orchard-mcp配置
{
"mcpServers": {
"orchard": {
"command": "npx",
"args": ["@l22-io/orchard-mcp"]
}
}
}