macOS MCP服务器
 ](https://nodejs.org/)
用于深度macOS集成的生产就绪模型上下文协议(MCP)服务器: 笔记、提醒、日历、联系人和消息。
✨ 特性
- 🗒️ 备注 -支持分层文件夹的完整CRUD
- ✅ 提醒事项 -跨多个列表管理任务
- 📅 日历 -查看、创建和管理事件
- 👥 联系人 -深度搜索和详细信息检索
- 💬 沟通 -发送iMessage并发起电话
- 🛡️ 恢复 -高保真“最近删除”恢复程序和版本回滚
- 🔒 安全 -用于破坏性操作的安全锁和基于ID的确认
🚀 快速开始
1.配置您的MCP客户端
将此添加到MCP配置中:
{
"mcpServers": {
"macos": {
"command": "npx",
"args": ["-y", "macos-app-mcp"],
"env": {
"MCP_NOTES_FOLDER": "ai",
"MCP_REMINDERS_LIST": "ai",
"MCP_ALLOW_DELETE": "false"
}
}
}
}| 客户端 | 配置位置 |
|---|---|
| 光标 | Settings > Features > MCP |
| 克劳德桌面版 | ~/Library/Application Support/Claude/claude_desktop_config.json |
| 帆板运动 | Settings > Extensions > MCP |
| Gemini CLI | ~/.gemini/config.json |
2.开始使用
配置后,您可以询问您的AI助手:
What's on my calendar today?Create a note titled 'Meeting Notes' with today's action itemsAdd a reminder to call John tomorrow at 10amFind contact info for Alice
🛠️ 可用工具(共29个)
| 应用程序 | 工具名称 | 描述 |
|---|---|---|
| 备注 | notes_query | 从macOS notes应用程序搜索或列出笔记 |
notes_get | 以纯文本形式阅读笔记内容(HTML剥离) | |
notes_create | 创建一个带有标题和内容的新笔记 | |
notes_update | 更新现有笔记的内容 | |
notes_delete | 删除注释(需要标题确认) | |
notes_list_folders | 列出所有可用的笔记文件夹 | |
| 提醒事项 | reminders_list | 列出不完整的提醒(可按列表筛选) |
reminders_add | 向特定列表添加新提醒 | |
reminders_complete | 将提醒标记为已完成 | |
reminders_update | 更新提醒的文本或截止日期 | |
reminders_delete | 删除提醒(需要文本确认) | |
reminders_list_lists | 列出所有可用的提醒列表 | |
| 日历 | calendar_list | 列出特定日期的事件 |
calendar_create_event | 创建新的日历事件 | |
calendar_delete_event | 删除事件(需要摘要确认) | |
calendar_list_calendars | 列出所有可用日历 | |
| 联系人 | contacts_search | 按姓名搜索联系信息(电话/电子邮件) |
contacts_list | 列出所有联系人(有限输出) | |
contacts_get_details | 按确切姓名获取全面的联系信息 | |
contacts_search_by_phone | 按电话号码搜索联系人 | |
contacts_search_by_email | 通过电子邮件地址搜索联系人 | |
| 消息 | call_number | 通过FaceTime或iPhone发起电话呼叫 |
message_send | 向联系人或号码发送iMessage | |
| 恢复 | recovery_list | 列出可恢复(删除/修改)的项目 |
recovery_details | 获取操作详细信息以进行恢复评估 | |
recovery_recover | 执行本机或基于日志的恢复 | |
recovery_stats | 查看恢复系统的运行状况和容量 | |
| 日志 | logs_recent | 查看按时间顺序排列的最近活动日志 |
logs_by_app | 按特定应用程序筛选操作日志 |
⚙️ 配置
| 变量 | 默认值 | 描述 |
|---|---|---|
MCP_ALLOW_DELETE | false | 启用/禁用删除功能 |
MCP_ALLOW_UPDATE | false | 启用/禁用编辑功能 |
MCP_NOTES_FOLDER | ai | 新笔记的默认文件夹;如果不存在,则自动创建 |
MCP_REMINDERS_LIST | ai | 新提醒的默认列表;如果不存在,则自动创建 |
MCP_LOGGING_ENABLED | true | 恢复功能所需 |
🔧 发展
设置
git clone https://github.com/zenheart/macos-app-mcp
cd macos-app-mcp
pnpm install
pnpm build测试
# Run unit tests (mocked, safe to run)
pnpm test
# Run unit tests in watch mode
pnpm test:watch
# Run with coverage report
pnpm test:coverage集成测试
⚠️ 警告:集成测试与 真正的macOS应用程序 (备注、提醒、日历)。测试项目前缀为 MCP-TEST- 用于识别。
# Run integration tests against real macOS apps
pnpm test:integration已知限制:
- 备注:由于iCloud同步延迟,新创建的笔记可能无法通过AppleScript立即找到
- 联系人:联系人应用程序必须运行才能通过与联系人相关的测试
- 由于这些macOS应用程序的限制,跳过了一些测试
MCP检查员游乐场
MCP检查器为手动测试工具提供了一个交互式web UI:
# Build and start MCP Inspector (opens http://localhost:5173)
pnpm playground:dev
# Or if already built
pnpm playground检查员允许您:
- 浏览所有可用工具
- 使用自定义参数执行工具
- 查看响应和调试问题
- 监控服务器日志
开发流程
- 在中更改源文件
src/ - 跑
pnpm dev用于监视模式(保存时自动重建) - 使用单元测试进行测试:
pnpm test - 交互式测试:
pnpm playground:dev - 在提交PR之前运行集成测试:
pnpm test:integration
类型检查
pnpm lint发布工作流
该项目使用GitHub Actions的自动版本碰撞:
# Patch release (1.0.2 -> 1.0.3) - for bug fixes
pnpm release
# Minor release (1.0.2 -> 1.1.0) - for new features
pnpm release:minor
# Major release (1.0.2 -> 2.0.0) - for breaking changes
pnpm release:major这将:
- 运行棉绒和测试
- 构建项目
- 将版本插入
package.json - 创建一个git标签(例如。,
v1.0.3) - 推送到GitHub→ 触发自动NPM发布
📄 许可证
MIT© 曾哈特
