Token导航 LogoToken导航TokenDH.com
Macos Local MCP Server logo
AI代理未说明官方级别未说明来源级核验

Macos Local MCP Server

MCP Server

macOS本地MCP服务器是一个为Claude提供直接访问macOS原生应用功能的工具,支持83种工具处理10个模块的数据,完全本地运行无需网络。

工具数

83

提示词数

0

GitHub Stars

1

资源数

0
Swift本地处理隐私保护ClaudeClaude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

amargautam

提供方

amargautam

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

macOS Local MCP Server

Bridge Claude Desktop to every native app on your Mac.

Reminders · Calendar · Mail · Messages · Notes · Contacts · Safari · Finder · Shortcuts · Cross-App

本地人 模型上下文协议 用Swift编写的服务器,让Claude可以直接访问 10个macOS模块 通过 83名工具操作员 --再加上一个用于管理一切的原生SwiftUI管理应用程序。

零网络,零依赖。零遥测。 一切都在你的Mac上本地运行。

______________________________________________________________________

它的作用

macOS本地MCP服务器将Claude变成了macOS的原生电动工具。适用于Claude Desktop、Claude Code或任何MCP客户端。请克劳德:

  • *“这周我的日程表上有什么?”* --通过EventKit读取日历
  • *“提醒我明天早上9点给牙医打电话”* --创建提醒
  • *“在我的电子邮件中搜索Acme Corp的发票”* --搜索邮件
  • *“给Sarah发消息:我要迟到10分钟了”* --发送iMessage(带确认)
  • *“在我的桌面上查找所有PDF”* --搜索聚光灯
  • *“运行我的‘晨间例行’快捷方式”* --执行快捷方式(带确认)
  • *“为我下午2点的会议做好准备”* --聚合日历、联系人和电子邮件上下文

所有83个工具都通过stdio上的MCP协议工作——没有HTTP服务器,没有云中继,没有API密钥。

______________________________________________________________________

建筑

┌──────────────────┐                                      ┌──────────────────────┐
│  Claude Desktop  │──┐                                   │                      │
└──────────────────┘  │    stdio (JSON-RPC 2.0)           │  macos-local-mcp server │
┌──────────────────┐  ├──────────────────────────────────► │                      │
│   Claude Code    │──┘   (each client spawns its own)    │                      │
└──────────────────┘                                      └──────────┬───────────┘
                                                                     │
                              ┌──────────────────────────────────────┼──────────────────────────────┐
                              │                                      │                              │
                    ┌─────────▼──────────┐             ┌─────────────▼───────────┐      ┌───────────▼──────────┐
                    │    EventKit         │             │    NSAppleScript / JXA   │      │    Shell Commands     │
                    │  Reminders          │             │  Mail                    │      │  Finder / Spotlight   │
                    │  Calendar           │             │  Messages                │      │  Shortcuts            │
                    │  Contacts           │             │  Notes                   │      └──────────────────────┘
                    └────────────────────┘             │  Safari                  │
                                                       └─────────────────────────┘
                    ┌────────────────────────────┐
                    │  Cross-App (aggregator)     │  ← Combines data from multiple
                    │  meeting_context             │     providers (no own bridge)
                    │  contact_360                 │
                    └────────────────────────────┘

┌──────────────────────────┐
│  macOS Local MCP Admin   │  ← SwiftUI app in /Applications
│  (reads ~/.macos-local-mcp/) │  Monitors server, manages config,
│                          │     controls read/write access per module
└──────────────────────────┘

两个构建目标:

二进制描述
macos-local-mcp无头MCP服务器。通过stdin/stdout进行通信。每个MCP客户端都会生成自己的进程。
macOS Local MCP Server.app原生SwiftUI管理应用程序。监控服务器状态、活动日志、权限和模块配置。

______________________________________________________________________

工具

10个模块中的83个工具

每个工具被分类为 阅读,让您对克劳德可以访问的内容进行精细控制。

Reminders — 8 tools

工具访问描述
list_reminder_lists阅读列出所有提醒列表(类别)
list_reminders阅读使用过滤器列出提醒(列表、日期范围、状态、优先级)
search_reminders阅读通过文本查询搜索提醒
create_reminder创建一个提醒,包括截止日期、优先级、列表分配
update_reminder写入更新提醒的属性
complete_reminder将提醒标记为已完成
move_reminder将提醒移动到其他列表
bulk_move_reminders写入一次在列表之间移动多个提醒

Calendar — 11 tools

工具访问描述
list_calendars阅读列出所有可用日历
list_events读取列出日期范围内的事件
search_events读取按文本查询搜索事件
check_availability阅读检查某个时间范围的可用性
find_conflicts读取查找日期范围内的重叠/冲突事件
find_gaps阅读查找活动之间的空闲时段
get_calendar_stats读取获取日期范围内的事件计数和时间统计信息
create_event编写创建日历事件
update_event写入更新现有事件
delete_event写入删除事件 *(需要确认)*
bulk_decline_events写入同时拒绝多个事件 *(需要确认)*

Contacts — 13 tools

工具访问描述
search_contacts阅读按姓名、电子邮件、电话或公司搜索
get_contact阅读获取完整详细信息,包括创建日期/修改日期
list_contact_groups阅读列出所有联系人组
get_contacts_in_group阅读获取组中的所有联系人
find_incomplete_contacts阅读查找缺少关键字段(电子邮件、电话、公司)的联系人
list_all_contacts读取列出所有具有限制/偏移分页的联系人
create_contact创建新联系人
update_contact写入更新联系人信息
delete_contact删除联系人 *(需要确认)*
bulk_update_contacts写入一次更新多个联系人的字段
merge_contacts写入将两个联系人合并为一个 *(需要确认)*
create_contact_group创建新的联系人组
add_contact_to_group将联系人添加到组中

Mail — 12 tools

工具访问描述
list_mailboxes读取列出所有邮件帐户和邮箱
list_recent_mail阅读使用过滤器列出最近的电子邮件
search_mail阅读按发件人、主题、正文、日期、附件搜索
read_mail阅读阅读邮件的全部内容
find_unanswered_mail阅读查找您尚未回复的已收到电子邮件
find_threads_awaiting_reply阅读查找您正在等待响应的线程
list_senders_by_frequency阅读按电子邮件频率列出发件人
create_draft编写创建新的电子邮件草稿
send_draft发送草稿 *(需要确认)*
move_message将邮件移动到另一个邮箱
flag_message写入标记或标记为已读/未读
bulk_archive_messages写入一次存档多封邮件 *(需要确认)*

Messages — 4 tools

工具访问描述
list_conversations阅读列出最近的iMessage/SMS对话
read_conversation阅读阅读对话中的消息
search_messages阅读搜索邮件历史记录
send_message发送iMessage或短信 *(需要确认)*

Notes — 9 tools

工具访问描述
list_note_folders阅读列出所有笔记文件夹/帐户
list_notes阅读列出带有过滤器、排序和限制/偏移分页的注释
read_note阅读阅读笔记的全部内容
search_notes阅读按文本查询搜索笔记
find_stale_notes阅读查找N天内未修改的笔记,并分页
create_note创建新笔记
update_note更新笔记内容
delete_note删除注释 *(需要确认)*
append_to_note写入将文本附加到现有注释中

Safari — 15 tools

工具访问描述
list_open_tabs阅读列出窗口中所有打开的选项卡
list_reading_list阅读列出阅读列表项
search_bookmarks阅读搜索书签
search_history阅读搜索浏览历史记录
list_bookmark_folders阅读列出所有书签文件夹
find_duplicate_tabs阅读查找打开到同一URL的选项卡
get_tab_content读取从选项卡获取页面内容
add_to_reading_list写入将URL添加到阅读列表
add_bookmark写入将书签添加到文件夹
delete_bookmark写入删除书签 *(需要确认)*
create_bookmark_folder写入创建新书签文件夹
close_tab写入关闭选项卡 *(需要确认)*
close_tabs_matching写入关闭与URL模式匹配的所有选项卡 *(需要确认)*
new_tab写入在新选项卡中打开URL
reload_tab写入重新加载选项卡

Finder — 6 tools

工具访问描述
spotlight_search读取使用Spotlight元数据搜索文件
spotlight_search_content阅读通过Spotlight搜索文件内容
get_file_metadata读取获取文件大小、日期、类型、标签
list_finder_tags阅读列出所有正在使用的Finder标签
get_tagged_files读取获取带有特定标签的文件
set_finder_tags在文件或文件夹上写入设置Finder标签

Shortcuts — 3 tools

工具访问描述
list_shortcuts阅读列出所有可用快捷方式
get_shortcut_details阅读获取快捷方式的详细信息
run_shortcut按名称编写运行快捷方式 *(需要确认)*

Cross-App — 2 tools

工具访问描述
meeting_context阅读获取包含与会者联系信息和最近电子邮件的即将召开的会议
contact_360阅读联系人的全方位视图:详细信息、电子邮件、消息、事件

总结

总计
提醒事项358
日历7411
联系人6713
邮件7512
消息314
备注549
游猎7815
访达516
捷径213
跨应用程序202
总计473683

______________________________________________________________________

安装

需求

  • macOS 13.0 (文图拉)或更晚
  • Swift 5.9+ (Xcode 15+附带)
  • 克劳德桌面 (下载)或 克劳德代码 或任何MCP兼容客户端

快速安装

git clone https://github.com/amargautam/macos-local-mcp.git
cd macos-local-mcp
bash install.sh

这将:

  1. 在发布模式下构建两个目标
  2. 将服务器二进制文件安装到 ~/bin/macos-local-mcp
  3. 在以下位置创建配置 ~/.macos-local-mcp/config.json
  4. 将管理应用程序安装到 /Applications/macOS Local MCP Server.app

连接到克劳德桌面

将此添加到 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "macOS Local MCP Server": {
      "command": "/Users/YOUR_USERNAME/bin/macos-local-mcp"
    }
  }
}

替换 YOUR_USERNAME 使用您的macOS用户名(运行 whoami 检查)。

然后 重新启动克劳德桌面。服务器将出现在MCP工具部分。

连接到克劳德代码

将此添加到 ~/.claude/settings.json:

{
  "mcpServers": {
    "macOS Local MCP Server": {
      "command": "/Users/YOUR_USERNAME/bin/macos-local-mcp"
    }
  }
}

多个客户端可以同时使用服务器——每个客户端都会产生自己的进程。

macOS权限

Claude第一次使用工具时,macOS会提示您授予权限。您通常需要允许:

  • 提醒事项 --提醒访问
  • 日历 --日历访问
  • 联系人 --联系人访问
  • 邮件/消息/笔记/Safari --自动化(AppleScript)访问
  • 访达 --聚光灯访问(通常预先授权)

授予这些 系统设置>隐私和安全.管理应用程序的 访问 选项卡显示已授权的权限。

______________________________________________________________________

配置

配置文件位于 ~/.macos-local-mcp/config.json:

{
    "logLevel": "normal",
    "logMaxSizeMB": 10,
    "enabledModules": {
        "reminders": {"read": true, "write": false},
        "calendar":  {"read": true, "write": false},
        "contacts":  {"read": true, "write": false},
        "mail":      {"read": true, "write": false},
        "messages":  {"read": true, "write": false},
        "notes":     {"read": true, "write": false},
        "safari":    {"read": true, "write": false},
        "finder":    {"read": true, "write": false},
        "shortcuts": {"read": true, "write": false},
        "crossapp":  {"read": true, "write": false}
    }
}
默认值:只读。 所有模块在出厂时都禁用了写入权限。根据需要启用按模块写入。

读与写访问

每个模块都可以独立配置 阅读 访问:

  • 阅读 工具: list_*, search_*, get_*, read_*, check_* --安全、非破坏性查询
  • 工具: create_*, update_*, delete_*, send_*, run_* --修改状态的操作

将模块设置为 {"read": true, "write": false} 为了 只读 模式。这让Claude可以搜索和查看您的数据,而无需修改任何内容。

确认所需工具

13种高影响力工具需要明确 confirmation: true 执行前的参数:

工具为什么
send_message向真人发送iMessage/SMS
send_draft发送电子邮件
delete_event永久删除日历事件
delete_note永久删除笔记
delete_contact永久删除联系人
merge_contacts合并两个联系人(删除源)
close_tab关闭Safari选项卡
run_shortcut执行任意快捷方式自动化
complete_reminder将提醒标记为已完成
bulk_decline_events同时拒绝多个日历事件
bulk_archive_messages一次归档多封电子邮件
delete_bookmark删除Safari书签
close_tabs_matching关闭与URL模式匹配的所有选项卡

______________________________________________________________________

管理应用程序

打开 macOS本地MCP服务器/Applications 或聚光灯。

管理应用程序提供五种视图:

查看目的
概述服务器状态(运行/停止)、PID、正常运行时间、最近活动、快速统计数据
活动完整的工具调用日志——按成功/错误/确认过滤,可搜索,可排序
访问每个模块的macOS权限状态——一目了然地查看授权/拒绝的内容
模块切换每个模块的读/写访问权限——更改会立即保存到配置中
设置日志级别、最大日志大小、每个工具的确认要求

管理应用程序直接读取 ~/.macos-local-mcp/ (配置、活动日志、PID文件、心跳)。它不与服务器进程通信。

______________________________________________________________________

发展

构建

swift build              # Debug build
swift build -c release   # Release build

测试

swift test               # Run all 811 tests

在本地运行

.build/debug/macos-local-mcp   # Start the server (reads from stdin, writes to stdout)

项目结构

Sources/
├── MacOSLocalMCP/                    # MCP server
│   ├── main.swift               # Entry point — wires all 10 modules + cross-app
│   ├── MCPServer.swift          # JSON-RPC server, request routing
│   ├── ConfigManager.swift      # Config parsing, file watching
│   ├── ActivityLogger.swift     # Structured tool call logging
│   ├── HeartbeatManager.swift   # Heartbeat file for admin app
│   ├── Models/
│   │   ├── MCPTypes.swift       # MCP protocol types (JSON-RPC, tools)
│   │   └── ToolDefinitions.swift # All 83 tool schemas + access levels
│   ├── Protocols/               # 9 bridge protocols (DI interfaces)
│   ├── Bridges/                 # 10 concrete bridge implementations
│   └── Tools/                   # 10 tool modules + cross-app + handler utilities
│
├── MacOSLocalMCPAdmin/               # SwiftUI admin app
│   ├── MacOSLocalMCPAdminApp.swift   # App entry point
│   ├── AppState.swift           # Shared observable state
│   ├── Models/                  # Config, activity, status models
│   ├── Services/                # File-based services (monitor, config, feed)
│   └── Views/                   # 5 detail views + sidebar
│
Tests/
├── MacOSLocalMCPTests/               # Server tests (763 tests)
└── MacOSLocalMCPAdminTests/          # Admin app tests (48 tests)

设计原则

  • 基于协议的DI --每个网桥都有一个协议;工具依赖于协议,而不是具体的类型
  • 测试驱动开发 --首先编写所有811个测试,然后执行
  • 零网络 --没有 URLSession 代码库中的任何位置
  • 零依赖 --只有Swift stdlib和苹果系统框架
  • 不得强行打开包装 --没有 ! 在生产代码中
  • 确认执行 --破坏性工具强制执行 confirmation: true 在工具层和服务器层

______________________________________________________________________

卸载

bash uninstall.sh

这将删除二进制文件和可选的配置目录。还删除 /Applications/macOS Local MCP Server.app 如果已安装。

______________________________________________________________________

安全

  • 仅限本地 --服务器仅通过stdio进行通信。没有打开端口,没有HTTP服务器,没有云中继。每个MCP客户端都会生成自己的隔离子流程。
  • 无遥测 --没有任何东西被发送到任何地方。所有数据都保留在Mac上。
  • 无依赖关系 --没有第三方Swift包。攻击面是Swift stdlib和Apple框架。
  • 默认拒绝 --所有模块都是只读的。每个模块都必须明确启用写访问。
  • 确认门 --13种高冲击工具需要明确 confirmation: true 在执行之前。
  • 预防注射 --AppleScript输入经过净化(CR/LF剥离),SQL查询使用引号加倍,Spotlight查询经过净化,shell命令使用 Process 使用单独的参数(无插值)。
  • 路径遍历保护 --文件操作阻止对系统目录的访问(/System, /Library, /usr, /bin, /sbin, /etc, /var).
  • 限制文件权限 --所有运行时文件(配置、日志、心跳、PID)都是通过以下方式创建的 0o700 目录和 0o600 文件夹。
  • macOS权限 --服务器在您的用户帐户下运行,并尊重每个应用程序的macOS权限提示。

______________________________________________________________________

许可证

麻省理工学院

______________________________________________________________________

Built with Claude Code by a multi-agent team of specialized engineers.

目录标签

目录标签

Swift本地处理隐私保护Claude本地部署macOS集成自动化工具MCP协议

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

83

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP