Skip to main content
Glama

iMCP 是一款 macOS 应用,旨在将您的数字生活与 AI 连接起来。它可与Claude Desktop以及越来越多支持模型上下文协议 (MCP)的客户端兼容。

功能

提示:对新功能有什么建议?请通过imcp@loopwork.com联系我们。

Related MCP server: mac-apps-launcher

入门

下载并打开应用程序

首先,下载 iMCP 应用程序(需要 macOS 15.3 或更高版本)。

当您打开应用程序时,您会在菜单栏中看到一个图标。

点击此图标会显示 iMCP 菜单,其中显示所有可用的服务。初始状态下,所有服务均显示为灰色,表示未启用。

顶部的蓝色拨动开关表示 MCP 服务器正在运行并准备好与 MCP 兼容的客户端连接。

激活服务

要激活服务,请点击其图标。系统将弹出一个权限对话框。例如,激活日历访问权限时,您会看到一个对话框,询问"iMCP" Would Like Full Access to Your Calendar 。点击“允许完全访问”即可继续。

重要提示:iMCP不会收集或存储您的任何数据。像 Claude Desktop 这样的客户端在工具调用过程中将您的数据发送到设备外。

一旦激活,每个服务图标就会从灰色变成其独特的颜色 - 红色代表日历,绿色代表消息,蓝色代表位置,等等。

对所有要启用的功能重复此过程。这些权限遵循 Apple 的标准安全模型,让您可以完全控制 iMCP 可以访问的信息。

连接到 Claude Desktop

如果您尚未安装 Claude Desktop,您可以在此处下载

打开 Claude Desktop,前往“设置... (⌘,)”。点击“设置”面板侧边栏中的“开发者”,然后点击“编辑配置”。这将在~/Library/Application Support/Claude/claude_desktop_config.json创建一个配置文件。

要将 iMCP 连接到 Claude Desktop,请单击 > “配置 Claude Desktop”。

这将添加或更新 MCP 服务器配置,以使用应用程序捆绑的imcp-server可执行文件。文件中的其他 MCP 服务器配置将被保留。

点击 > “将服务器命令复制到剪贴板”。然后在编辑器中打开claude_desktop_config.json并输入以下内容:

{ "mcpServers" : { "iMCP" : { "command" : "{paste iMCP server command}" } } }

从 Claude Desktop 调用 iMCP 工具

退出并重新打开 Claude Desktop 应用程序。系统将提示您批准连接。

NOTE

您可能会看到两次此对话框;两次都请单击“批准”。

批准连接后,您应该会在聊天框右下角看到🔨12。点击该按钮即可查看 iMCP 为 Claude 提供的所有工具列表。

现在,您可以向 Claude 询问需要访问您的个人数据的问题,例如:

“我那里的天气怎么样?”

Claude 将使用适当的工具来检索这些信息,为您提供准确、个性化的回应,而无需您在对话期间手动共享这些数据。

技术细节

应用程序和命令行界面

iMCP 是一个 macOS 应用程序,捆绑了命令行可执行文件imcp-server

  • iMCP.app提供了用于配置服务的 UI,最重要的是,它提供了一种与 macOS 系统权限交互的方式,以便它可以访问联系人、日历和其他信息。

  • imcp-server提供了一个使用标准输入/输出进行通信( stdio transport )的 MCP 服务器。

应用程序和 CLI 使用Bonjour在本地网络上进行通信,以实现自动发现。两者都使用类型“_mcp._tcp”和域名“local”来发布服务。CLI 从stdin读取 MCP 客户端的请求并转发到应用程序;CLI 接收应用程序的响应并将其写入stdout 。有关实现细节,请参阅StdioProxy

针对此项目,我们创建了mcp-swift-sdk :一个用于模型上下文协议服务器和客户端的 Swift SDK。该应用使用此包来处理来自 MCP 客户端的代理请求。

iMessage 数据库访问

Apple 没有提供用于访问您的信息的公共 API。但是,macOS 上的“信息”应用会将数据存储在位于~/Library/Messages/chat.db SQLite 数据库中。

iMCP 在应用沙盒 (App Sandbox)中运行,这限制了它对用户数据和系统资源的访问。当您启用消息服务时,系统会提示您通过标准文件选择器打开chat.db文件。打开后,macOS 会将该文件添加到应用的沙NSOpenPanel中。NSOpenPanel 就是这样神奇的。

但开放 iMessage 数据库只是成功的一半。过去几年,苹果已经不再以纯文本形式存储消息,而是转向了专有的typedstream格式。

为了这个项目,我们创建了Madrid :一个用于读取 iMessage 数据库的 Swift 包。它包含一个用于解码 Apple 的typedstream格式的 Swift 实现,改编自 Christopher Sardegna 的imessage-exporter项目和一篇关于对

工具结果的 JSON-LD

iMCP 提供的工具以JSON-LD文档的形式返回结果。例如, fetchContacts工具使用Contacts 框架,该框架以CNContact类型表示人员和组织。以下是该类型的对象如何编码为 JSON-LD:

{ "@context": "https://schema.org", "@type": "Organization", "name": "Loopwork Limited", "url": "https://loop.work" }

Schema.org为人物、邮政地址、事件以及我们想要表示的许多其他对象提供了标准词汇。JSON-LD 是一种方便人类、人工智能以及传统软件使用的编码格式。

为了这个项目,我们创建了Ontology :一个用于处理结构化数据的 Swift 包。它包含 Apple 框架类型的便捷初始化器,例如 iMCP 工具返回的类型。

调试

使用 MCP 检查器

要调试 iMCP 和客户端之间的交互,您可以使用检查器工具(需要 Node.js):

  1. 点击 > “将服务器命令复制到剪贴板”

  2. 打开终端并运行以下命令:

    # Download and run inspector package on imcp-server npx @modelcontextprotocol/inspector [paste-copied-command] # Open inspector web app running locally open http://127.0.0.1:6274

该工具可以让您查看客户端和 iMCP 服务器之间的所有请求和响应,这有助于理解协议的工作原理。

致谢

执照

该项目采用 Apache 许可证 2.0 版授权。

合法的

iMessage® 是 Apple Inc. 的注册商标。
该项目与 Apple Inc. 没有任何关联,也未得到其认可或赞助。

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mattt/iMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server