项目简介
Things 3 MCP 服务器 (things-mcpb) 是一个将大语言模型 (LLM) 客户端与 macOS 上的 Things 3 任务管理应用连接起来的桥梁。它遵循 Model Context Protocol (MCP),允许 LLM 通过标准化的 JSON-RPC 协议调用预定义的工具,从而实现对 Things 3 中任务、项目、区域等数据的创建、读取、更新和搜索操作。该项目专注于提供一个安全、高效且用户友好的接口,使您能够通过自然语言与 Things 3 进行交互,无缝管理您的工作流程。
主要功能点
- 全面的任务管理: 能够创建、读取、更新、搜索和管理 Things 3 中的待办事项、项目和清单项。
- 智能列表访问: 支持访问 Things 3 的所有内置列表,包括收件箱、今天、即将到来、任何时间、某一天、日志簿(已完成)和废纸篓(已删除)。
- 组织与搜索能力: 提供完整的项目和区域管理功能,支持高级多条件搜索以及按标签查找和管理各项。
- 安全自动化: 通过 JavaScript for Automation (JXA) 调用 AppleScript 与 Things 3 进行安全交互,内部集成了输入验证和危险模式检测,有效消除潜在的 shell 注入风险。
- 用户友好接口: 针对 LLM 客户端优化了参数名称和日期处理,例如将 'when' 和 'deadline' 映射到 Things 3 内部的日期字段,提升了自然语言交互的直观性。
安装步骤
在开始之前,请确保您的 macOS 系统已安装 Things 3 应用,并且已安装 Node.js (版本 18.0.0 或更高)。
-
克隆或下载仓库: 打开终端,执行以下命令克隆项目:
git clone https://github.com/mbmccormick/things-mcpb.git cd things-mcpb或者从 GitHub Releases 页面下载最新版本并解压。
-
安装依赖: 在项目根目录中运行以下命令安装所需的 Node.js 依赖:
npm install -
构建 JXA 脚本: 此步骤会编译模块化的 JXA JavaScript 源代码,生成 Things 3 自动化所需的执行脚本:
npm run build -
打包扩展: 生成 MCPB (MCP Bundle) 格式的扩展包:
npm run package -
在 Claude Desktop 中安装: 根据 Claude Desktop 的官方文档,遵循其扩展安装流程将打包好的 MCPB 扩展安装到 Claude Desktop 中。
-
运行 Things 3: 在使用任何 Things 3 相关功能之前,请务必确保 Things 3 应用程序正在运行。
-
(可选)权限设置: 如果在尝试使用扩展时遇到权限错误,您可能需要手动授权。请前往“系统偏好设置”>“安全与隐私”>“隐私”>“自动化”,然后找到您的终端应用程序或 Claude Desktop,并确保它已被授权控制 Things 3。
服务器配置
MCP 客户端需要配置此 MCP 服务器的启动命令及其参数才能与 MCP 服务器建立连接。以下是一个 JSON 格式的配置示例,您可以将其添加到 MCP 客户端(如 Claude Desktop)的扩展配置中。请根据您实际的安装路径进行调整。
{ "name": "things", "command": "node", "args": [ "/绝对路径/到/您的/things-mcpb/server/index.js" ], "description": "用于管理macOS Things 3应用的MCP服务器,提供任务、项目和区域的智能交互能力。", "icon": "可选,URL或Base64编码的图标数据", "startupMessage": "Things MCP服务器已启动,正在监听请求..." }
参数注释:
- 'name': 服务器的唯一标识名称。LLM 客户端将使用此名称来识别和调用该服务器。建议保持为 '"things"'。
- 'command': 启动 MCP 服务器的可执行文件或命令。因为这是一个 Node.js 应用,所以通常设置为 '"node"'。
- 'args': 传递给 'command' 的参数数组。
- 重要: 数组中的第一个参数 '"/绝对路径/到/您的/things-mcpb/server/index.js"' 必须替换为您实际安装 'things-mcpb' 仓库后,'server/index.js' 文件的完整绝对路径。例如,如果您的 'things-mcpb' 文件夹在 '~/extensions/things-mcpb',那么路径可能就是 '"/Users/您的用户名/extensions/things-mcpb/server/index.js"'。
- 'description': 服务器功能的简短描述,有助于 LLM 客户端理解其用途和能力。
- 'icon': 可选参数,服务器的图标。可以是一个图标文件的 URL 或 Base64 编码的图片数据。
- 'startupMessage': 可选参数,当服务器成功启动时,LLM 客户端可能会显示此消息。
基本使用方法
安装并配置完成后,您可以在支持 MCP 协议的 LLM 客户端(如 Claude Desktop)中,通过自然语言指令直接与 Things 3 进行交互。LLM 将根据您的指令选择并调用相应的 MCP 工具。
以下是一些使用示例:
- 创建待办事项: '创建一个任务“发送季度报告”,备注“包括Q3数据和未来路线图”,截止日期为下周五,添加到我的“工作”项目,并标记为“紧急”和“季度”。'
- 创建项目: '创建一个新项目“网站重新设计”,放在“产品开发”区域,截止日期是3月15日,并添加初始待办事项:“研究竞争对手”、“创建线框图”、“设计模型”。'
- 查询任务: '显示我今天和收件箱里的所有任务。'
- 更新任务: '更新任务ID为“abc123”的标题为“完成季度预算审核”,并将其标记为已完成。'
- 搜索与组织: '搜索所有包含“会议”字样的任务,并显示标记为“紧急”的项。'
- 管理标签: '将任务ID为“abc123”的所有标签移除,将其更新为标签:[]。'
- 查看已完成任务: '显示我上周完成的所有任务。'
信息
分类
生产力应用