LI

l22-io/orchard-mcp

开发工具

本页由 AI 翻译,技术细节请以原文为准。 查看原文

21 stars 2 forks 质量 75 趋势 14MIT

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_attachment requires account and mailbox from a recent Mail result.
  • Notes body/all search is refused; use title search, then notes_read_note.
  • numbers_read and numbers_get_formulas require 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.

在 GitHub 查看完整 README

安装

npx @l22-io/orchard-mcp
新手?先看 mcpskill.org 教程 →

配置

{ "mcpServers": { "orchard": { "command": "npx", "args": ["@l22-io/orchard-mcp"] } } }