macMCP
独立的Swift MCP服务器通过stdio公开macOS原生工具。11个服务中的42个工具。没有外部依赖关系。
工具
日历
| 工具 | 说明 |
|---|
calendars_list | 列出所有日历 |
calendars_list_events | 列出日期范围内的事件 |
calendars_create_event | 创建新事件 |
联系人
| 工具 | 说明 |
|---|
contacts_list | 搜索或列出联系人 |
contacts_get | 通过标识符获取联系人 |
contacts_create | 创建新联系人 |
contacts_update | 更新现有联系人 |
contacts_delete | 删除联系人 |
contacts_list_groups | 列出所有联系人组 |
contacts_create_group | 创建联系人组 |
contacts_add_to_group | 将联系人添加到组 |
contacts_remove_from_group | 从组中删除联系人 |
contacts_search_by_phone | 按电话号码搜索联系人 |
提醒事项
| 工具 | 说明 |
|---|
reminders_list | 列出提醒,可选择按列表筛选 |
reminders_create | 创建新提醒 |
reminders_complete | 将提醒标记为完成 |
位置
| 工具 | 说明 |
|---|
location_get_current | 获取当前坐标 |
location_geocode | 地址到坐标 |
location_reverse_geocode | 地址坐标 |
地图
| 工具 | 说明 |
|---|
maps_search | 搜索地点或地址 |
maps_open | 在Apple Maps中打开一个位置 |
maps_get_directions | 获取两点之间的路线URL |
捕捉
| 工具 | 说明 |
|---|
capture_screenshot | 截图 |
capture_audio | 从默认输入录制音频 |
邮件
| 工具 | 说明 |
|---|
mail_list_accounts | 列出已配置的邮件帐户 |
mail_list_mailboxes | 列出帐户的邮箱 |
mail_get_emails | 从邮箱获取电子邮件 |
mail_get_email | 收到一封完整的电子邮件 |
mail_search | 按主题或发件人搜索 |
mail_send | 发送电子邮件 |
mail_create_draft | 创建电子邮件草稿(不发送) |
mail_move | 将电子邮件移动到另一个邮箱 |
mail_mark_read | 标记为已读/未读 |
消息
| 工具 | 说明 |
|---|
messages_list_chats | 列出最近的对话 |
messages_get_chat | 从聊天中获取消息 |
messages_send | 发送iMessage |
捷径
| 工具 | 说明 |
|---|
shortcuts_list | 列出可用快捷方式 |
shortcuts_run | 按名称运行快捷方式 |
公用事业
| 工具 | 说明 |
|---|
utilities_play_sound | 播放音频文件 |
天气
| 工具 | 说明 |
|---|
weather_current | 某一地点的当前状况 |
weather_forecast | 每日预报 |
weather_hourly | 每小时预报 |
需求
- macOS 13+
- Swift 5.9+
- 无外部依赖(仅系统框架)
权限
根据需要在“系统设置”>“隐私和安全”中授予这些权限:
- 联系人 --联系人访问
- 日历 --日历访问
- 提醒事项 --提醒访问
- 位置 --位置服务(首次使用时,macOS将提示允许;单击 允许)
- 消息 --全磁盘访问(读取
chat.db 直接) - 邮件 --Mail.app的自动化权限(使用JXA)
构建和安装
swift build # debug
./build.sh # release, codesigned, installs to ~/.local/bin, registers with Relay
build.sh 将二进制文件安装到 ~/.local/bin/macmcp 并将其注册到Relay(如果已安装)。
配置
带继电器(推荐)
build.sh 自动处理注册。要手动注册,请执行以下操作:
relay mcp register --name macMCP --command ~/.local/bin/macmcp
独立
添加到MCP客户端配置中(例如。 claude_desktop_config.json):
{
"mcpServers": {
"macmcp": {
"command": "~/.local/bin/macmcp"
}
}
}
相关项目
macMCP是三个项目的一部分,这些项目相结合,为LLM提供了对macOS的安全访问。每个都独立工作,但它们一起形成了一个完整的堆栈: 夏娃 提供LLM聊天界面, 中继 处理编排和安全性,以及 macMCP 暴露了macOS的原生功能。向Relay注册macMCP,任何MCP客户端(包括Eve)都可以访问其42个工具——由每个令牌的权限限定,因此不同的项目可以有不同的访问级别。
- 中继 --适用于macOS的MCP编排器。macMCP通过Relay自动注册
relay mcp register,Relay通过具有每个工具权限的单个令牌身份验证连接代理其工具。 - fsMCP --跨平台文件系统MCP服务器(读、写、编辑、glob、grep、bash)。通过文件操作功能补充macMCP的macOS原生工具。
- 夏娃 --具有项目、文件编辑和终端的多提供商LLM web界面。当Eve和macMCP都向Relay注册时,LLM会话可以访问macOS本机工具。
致谢
特别感谢 mattt/iMCP 为了灵感。