任务管理服务器

Things 3 MCP Server是一个本地服务器,通过AppleScript和URL方案使AI助手能够读取和管理Things 3中的任务、项目和区域。

  • by SeanMatthewAI
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 SeanMatthewAI/things3-mcp

使用说明

Things 3 MCP服务器

macOS上Things 3的本地MCP(模型上下文协议)服务器,使AI助手能够直接通过Things的AppleScript界面和URL方案读取和管理您的任务、项目和区域。

特性

服务器公开了以下用于AI交互的工具:

读取数据(通过AppleScript)

  • things_list_areas -列出所有事物区域及其ID和名称
  • things_list_项目 -列出项目,可选择按区域筛选
  • things_list_todos -从内置列表(收件箱、今天、即将到来、任何时候、某一天)或特定项目中列出待办事项

创建项目

  • things_create_todo -创建具有完整参数支持的新待办事项(注释、时间、截止日期、标签、项目/区域分配)
  • things_create_项目 -通过Things URL方案创建新项目

管理项目

  • things_update_item -按ID更新待办事项或项目(需要身份验证令牌)
  • 事情已完成 -将待办事项标记为已完成
  • 事物_癌症 -将待办事项标记为已取消

导航

  • 东西_展示 -打开特定项目或视图的内容
  • 事物搜索 -在Things UI中运行搜索查询

先决条件

  1. macOS 随着 事情3 安装
  2. Node.js 20+ (或18+应该工作)
  3. 启用Things URL方案 在事物→ 设置→ 将军→ “启用事物URL”→ 管理
    • 从此屏幕获取您的身份验证令牌(更新操作所需)
  4. Xcode命令行工具(用于 osascript 这被称为引擎盖下)

安装

# Clone the repository
git clone https://github.com/SeanMatthewAI/things3-mcp.git
cd things3-mcp

# Install dependencies
npm install

# Build the TypeScript
npm run build

配置

适用于克劳德桌面

添加到您的Claude Desktop settings.json(位于 ~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "things": {
      "command": "node",
      "args": ["/absolute/path/to/things3-mcp/dist/index.js"],
      "env": {
        "THINGS_AUTH_TOKEN": "YOUR_THINGS_AUTH_TOKEN"
      }
    }
  }
}

或者,如果你想直接使用TypeScript运行(在开发过程中):

{
  "mcpServers": {
    "things": {
      "command": "npx",
      "args": ["ts-node", "/absolute/path/to/things3-mcp/src/index.ts"],
      "env": {
        "THINGS_AUTH_TOKEN": "YOUR_THINGS_AUTH_TOKEN"
      }
    }
  }
}

对于其他MCP客户端

服务器通过stdio运行,并期望 THINGS_AUTH_TOKEN 要为更新操作设置的环境变量。

用法示例

配置后,您的AI助手可以使用自然语言与Things进行交互。以下是一些示例命令:

列出今天的任务

"Show me what's on my Today list in Things"

创建一个新任务

"Add a task 'Pack kids' lunches' for tonight with the Home tag"

创建项目

"Create a new project called 'Zurich January Trip' and show it to me"

更新任务

"Update task [ID] to have a deadline of next Friday"

完成任务

"Mark task [ID] as completed"

发展

# Run in development mode
npm run dev

# Build for production
npm run build

# Run built version
npm start

运作原理

服务器使用两种方法与Things交互:

  1. AppleScript 用于读取数据-提供对Things对象模型的直接访问,包括列表、项目、区域和待办事项及其所有属性
  2. Things URL方案 用于写入操作-使用官方URL方案API创建和更新项,确保兼容性并支持auth令牌等功能

安全

  • 完全在本地运行-没有云服务或外部API
  • Auth令牌存储在环境变量中,而不是代码中
  • 仅通过官方界面访问Things 3应用程序数据

API 参考

认证

这 THINGS_AUTH_TOKEN 更新操作需要。你可以:

  1. 在MCP服务器环境配置中设置它(推荐)
  2. 在 authToken 呼叫时的字段 things.update_item

日期格式

日期参数(when, deadline)支持:

  • 特殊值:“今天”、“晚上”、“明天”
  • macOS可以解析的自然语言日期
  • ISO日期字符串

内置列表

支持以下内置列表:

  • 收件箱
  • 今天
  • 随时
  • 即将到来的
  • 某天

故障排除

“Things3未运行”

在使用MCP服务器之前,请确保Things 3已打开。

“缺少东西身份验证令牌”

  1. 开放的事物→ 设置→ 将军
  2. 启用“事物URL”
  3. 点击“管理”以获取您的身份验证令牌
  4. 将其添加到MCP客户端配置中

AppleScript错误

确保您已授予终端/IDE通过系统首选项控制事物的必要权限→ 安全与隐私→ 隐私→ 自动化。

许可证

麻省理工学院

贡献

欢迎投稿!请随时提交拉取请求。

链接