iMCP服务

@loopwork-ai/iMCP
0 Stars 499 次浏览 loopwork-ai 更新于 2026-08-23

一个为您的信息、联系人等提供MCP服务器的macOS应用程序

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

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

服务介绍

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

功能

[!TIP]
对于新的功能有建议?
请通过 imcp@loopwork.com 联系我们。

开始使用

下载并打开应用程序

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

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

图标。

点击此图标会显示 iMCP 菜单,该菜单中列出了所有可用的服务。最初,所有服务都会显示为灰色,表示它们处于非活动状态。

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

激活服务

要激活某个服务,请点击其图标。系统将提示您一个权限对话框。例如,在激活日历访问时,您会看到一个对话框询问“iMCP希望完全访问您的日历”。点击允许完全访问继续。

[!IMPORTANT]
iMCP 不会 收集或存储您的任何数据。
像 Claude Desktop 这样的客户端_确实会_在工具调用过程中将您的数据发送出去。

一旦被激活,每个服务的图标将从灰色变为它们特有的颜色——日历为红色、消息为绿色、位置为蓝色等。

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

连接到 Claude Desktop

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

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

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

这将添加或更新使用应用程序中捆绑的 imcp-server 可执行文件的 MCP 服务器配置。文件中的其他 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 提供了配置服务的界面,并且最重要的是,
    它提供了一种与 macOS 系统权限交互的方式,
    以便它可以访问联系人、日历和其他信息。
  • imcp-server 提供了一个 MCP 服务器,该服务器
    使用标准输入/输出进行通信
    ([stdio 传输][mcp-transports])。

应用程序和命令行接口通过 Bonjour 在本地网络上相互通信,
用于自动发现。两者都广播类型为 "_mcp._tcp" 和域为 "local" 的服务。
来自 MCP 客户端的请求由命令行接口从 stdin 读取并转发给应用程序;
应用程序的响应由命令行接口接收并通过 stdout 写出。
有关实现细节,请参见 StdioProxy。

对于这个项目,我们创建了 mcp-swift-sdk:
这是一个用于 Model Context Protocol 服务器和客户端的 Swift SDK。
应用程序使用这个包来处理来自 MCP 客户端的代理请求。

iMessage 数据库访问

Apple 不提供公开 API 来访问您的消息。然而,macOS 上的 Messages 应用将数据存储在位于
~/Library/Messages/chat.db 的 SQLite 数据库中。

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

但是,打开 iMessage 数据库只是完成了一半的工作。
在过去几年里,
Apple 已经不再以纯文本形式存储消息,
而是转向专有的 typedstream 格式。

为此项目,我们创建了 Madrid:
这是一个用于读取您的 iMessage 数据库的 Swift 包。
它包括一个解码 Apple typedstream 格式的 Swift 实现,
该实现改编自 Christopher Sardegna 的 imessage-exporter 项目
及其关于反向工程 typedstream 的博客文章。

JSON-LD for Tool Results

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 工具返回的)类型的便捷初始化器。

致谢

许可证

本项目采用 Apache License, Version 2.0 授权。

法律声明

iMessage® 是苹果公司注册的商标。
本项目与苹果公司无关,未得到其认可或赞助。

相关 MCP 服务