Token导航 LogoToken导航TokenDH.com
Things3 MCP (Urbanogardun) logo
开发工具未说明官方级别未说明来源级核验

Things3 MCP (Urbanogardun)

MCP Server

MCP server for Things3 integration on macOS

工具数

25

提示词数

0

GitHub Stars

22

资源数

0
TypeScriptClaude任务管理Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

urbanogardun

提供方

urbanogardun

最后核验

2026/5/18 02:19

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

Things3 MCP服务器

![Test](https://github.com/urbanogardun/things3-mcp/actions/workflows/test.yml) ](https://badge.fury.io/js/things3-mcp)

MCP(模型上下文协议)服务器,提供与macOS上Things3的全面集成。该服务器使AI助手和其他MCP客户端能够通过25个专用工具与Things3交互,提供完整的任务管理功能,包括智能纠错和自动标签创建。

特性

  • 完成Things3集成:25个工具,涵盖Things的各个方面3
  • TODO管理:创建、读取、更新、删除、完成和不完成任务
  • 项目和区域管理:提供完整的项目生命周期支持,包括区域组织和删除
  • 标签系统:分层标记支持创建、删除和批量标记操作
  • 批量操作:一次高效地移动或更新多个项目
  • 自动标记创建:在TODO/项目操作中引用时,会自动创建标记
  • 改错:自动修复常见问题(日期冲突、缺少标题)
  • 日志搜索:使用日期范围筛选搜索已完成的项目
  • 性能优化:连接池和AppleScript优化

需求

  • macOS (Things3仅适用于macOS)
  • Node.js >= 16.0.0
  • 事物3 已安装应用程序
  • AppleScript 在系统设置中启用访问

安装

快速入门(推荐)

您可以在不进行任何安装的情况下使用服务器:

{
  "mcpServers": {
    "things3": {
      "command": "npx",
      "args": ["things3-mcp@latest"],
      "env": {
        "THINGS3_AUTH_TOKEN": "your_auth_token_here"
      }
    }
  }
}

从npm安装

npm install -g things3-mcp

然后添加到MCP客户端配置中:

{
  "mcpServers": {
    "things3": {
      "command": "things3-mcp",
      "env": {
        "THINGS3_AUTH_TOKEN": "your_auth_token_here"
      }
    }
  }
}

从源代码安装

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

# Install dependencies
npm install

# Build the project
npm run build

配置

环境变量

对于更新操作(修改、完成、删除),您需要设置Things3授权令牌:

export THINGS3_AUTH_TOKEN="your_auth_token_here"

要查找您的授权令牌:

  1. 打开物品3
  2. 转到“设置”→ 将军
  3. 点击“启用事物URL”
  4. 点击“管理”
  5. 复制授权令牌值

您还可以创建 .env 文件(参见 .env.example).

适用于克劳德桌面

  1. 打开克劳德桌面配置:

- macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  1. 使用以下方法之一添加Things3 MCP服务器:

方法1:使用npx(最简单,无需安装)

   {
     "mcpServers": {
       "things3": {
         "command": "npx",
         "args": ["things3-mcp@latest"],
         "env": {
           "THINGS3_AUTH_TOKEN": "your_auth_token_here"
         }
       }
     }
   }

方法2:全局npm安装

   {
     "mcpServers": {
       "things3": {
         "command": "things3-mcp",
         "env": {
           "THINGS3_AUTH_TOKEN": "your_auth_token_here"
         }
     }
   }

方法3:就地安装

   {
     "mcpServers": {
       "things3": {
         "command": "node",
         "args": ["/absolute/path/to/things3-mcp/dist/index.js"]
       }
     }
   }
  1. 重新启动克劳德桌面

对于其他MCP客户端

使用上述任何方法,使配置适应MCP客户端的格式。

可用工具

TODO工具(7)

todos_list

列出具有灵活过滤选项的TODO。

参数:

  • filter: "inbox" | "today" | "upcoming" | "anytime" | "someday" | "logbook" (可选)
  • searchText:在标题和注释中搜索(可选)

例子:

{
  "filter": "today",
  "searchText": "meeting"
}

todos_get

获取特定TODO的详细信息。

参数:

  • id:TODO的唯一标识符(必需)

todos_create

创建一个具有完整属性支持的新TODO(如果标签不存在,则自动创建标签)。

参数:

  • title:任务标题(必填)
  • notes:附加注释(可选)
  • whenDate:用于日程安排的ISO 8601日期字符串(可选)
  • deadline:ISO 8601到期日期字符串(可选)
  • tags:标记名数组(可选)
  • checklistItems:清单项目标题数组(可选)\*
  • projectId:分配给项目(可选)
  • areaId:分配到区域(可选)
  • heading:要添加的项目标题(可选)

例子:

{
  "title": "Review Q4 Report",
  "notes": "Focus on revenue metrics",
  "whenDate": "2024-12-15T09:00:00Z",
  "deadline": "2024-12-20T17:00:00Z",
  "tags": ["work", "urgent"],
  "checklistItems": ["Review revenue", "Check expenses", "Update forecast"],
  "projectId": "project-id-here"
}

\* 检查表注释:何时 checklistItems TODO是使用Things3的URL方案而不是AppleScript创建的。这种方法有一些局限性:

  • 事情3可能会短暂地成为焦点
  • 无法直接检索创建的TODO ID,因此服务器按标题搜索它
  • 如果多个TODO具有相同的标题,则可能会返回错误的TODO
  • 必须在Things3设置中启用URL方案支持(设置→ 将军→ 启用事物URL)

todos_update

更新现有TODO的属性(如果标签不存在,则自动创建标签)。

参数:

  • id:TODO标识符(必需)
  • 所有参数来自 todos_create (可选)

todos_complete

将一个或多个TODO标记为已完成。

参数:

  • ids:单个ID或ID数组(必填)

todos_uncomplete

将一个或多个TODO标记为不完整。

参数:

  • ids:单个ID或ID数组(必填)

todos_delete

永久删除一个或多个TODO。

参数:

  • ids:单个ID或ID数组(必填)

项目工具(6)

projects_list

列出具有可选筛选的项目。

参数:

  • areaId:按区域筛选(可选)
  • includeCompleted:包括已完成的项目(可选,默认值:false)

projects_get

获取详细的项目信息。

参数:

  • id:项目标识符(必填)

projects_create

创建新项目(如果标签不存在,则自动创建标签)。

参数:

  • name:项目名称(必填)
  • notes:项目描述(可选)
  • areaId:分配到区域(可选)
  • whenDate:开始日期(可选)
  • deadline:截止日期(可选)
  • tags:标记名数组(可选)
  • headings:章节标题数组(可选)

projects_update

更新项目属性(如果标记不存在,则自动创建标记)。

参数:

  • id:项目标识符(必填)
  • 所有参数来自 projects_create 除了 headings (可选)

projects_complete

将项目标记为已完成。

参数:

  • id:项目标识符(必填)

projects_delete

从Things3中完全删除项目。

参数:

  • ids:单个项目ID或项目ID数组(必填)

区域工具(3)

areas_list

列出所有区域。

参数:

  • includeHidden:包括隐藏区域(可选,默认值:false)

areas_create

创建一个新区域。

参数:

  • name:区域名称(必填)

areas_delete

从Things3中完全删除区域。

参数:

  • ids:单个区域ID或区域ID数组(必填)

标签工具(5)

tags_list

列出所有具有层次结构信息的标签。

退货: 标签数组 parentTagId 用于嵌套标签

tags_create

创建一个新标签。

参数:

  • name:标签名称(必填)
  • parentTagId:嵌套的父标记(可选)

tags_add

为项目添加标签(如果标签不存在,则自动创建标签)。

参数:

  • itemIds:单个ID或TODO/项目ID数组(必需)
  • tags:要添加的标记名数组(必需)

tags_remove

从项目中删除标签。

参数:

  • itemIds:单个ID或TODO/项目ID数组(必需)
  • tags:要删除的标记名数组(必需)

tags_delete

从Things3中完全删除标签。

参数:

  • names:单个标记名或标记名数组(必填)

散装工具(2)

bulk_move

将多个TODO移动到一个项目或区域。

参数:

  • todoIds:TODO ID数组(必需)
  • projectId:目标项目(可选)
  • areaId:目标区域(可选)

bulk_updateDates

多个TODO的更新日期。

参数:

  • todoIds:TODO ID数组(必需)
  • whenDate:新的计划日期或清除空值(可选)
  • deadline:新的截止日期或清空(可选)

行车日志工具(1)

logbook_search

在日志中搜索已完成的项目。

参数:

  • searchText:在标题和注释中搜索(可选)
  • fromDate:范围的开始日期(可选)
  • toDate:范围的结束日期(可选)
  • limit:最大结果(可选,默认值:50)

系统工具(1)

system_launch

确保Things3正在运行并准备就绪。

改错

服务器会自动纠正常见问题:

  • 日期冲突:如果截止日期早于计划日期,则交换时间/截止日期
  • 缺少标题:从笔记生成标题或使用“无标题”
  • 引用无效:如果项目/区域不存在,则将项目移动到收件箱
  • 标记名称:清除Things3不支持的特殊字符

使用示例

使用克劳德桌面

Human: Create a new project for the website redesign with tasks for planning, design, and implementation

Claude: I'll create a website redesign project with those tasks for you.

[Creates project and tasks using the Things3 MCP tools]

直接工具使用

创建TODO:

{
  "tool": "todos_create",
  "parameters": {
    "title": "Prepare presentation",
    "notes": "Include Q4 metrics and projections",
    "whenDate": "2024-12-10T14:00:00Z",
    "tags": ["work", "presentation"]
  }
}

列出今天的任务:

{
  "tool": "todos_list",
  "parameters": {
    "filter": "today"
  }
}

发展

设置开发环境

# Install dependencies
npm install

# Run in development mode with watch
npm run dev

# Run tests
npm test

# Run integration tests (requires Things3)
npm run test:integration

# Lint code
npm run lint

# Type check
npm run type-check

项目结构

things3-mcp/
├── src/
│   ├── index.ts          # Entry point
│   ├── server.ts         # MCP server implementation
│   ├── config.ts         # Configuration management
│   ├── tools/            # Tool implementations
│   │   ├── todos.ts      # TODO operations
│   │   ├── projects.ts   # Project operations
│   │   ├── areas.ts      # Area operations
│   │   ├── tags.ts       # Tag operations
│   │   ├── bulk.ts       # Bulk operations
│   │   ├── logbook.ts    # Logbook search
│   │   └── system.ts     # System utilities
│   ├── templates/        # AppleScript templates
│   ├── utils/            # Utility functions
│   │   ├── applescript.ts     # AppleScript bridge
│   │   ├── cache-manager.ts   # Caching system
│   │   ├── error-correction.ts # Error correction
│   │   └── date-handler.ts    # Date formatting
│   └── types/            # TypeScript definitions
├── tests/
│   ├── unit/            # Unit tests
│   └── integration/     # Integration tests
└── dist/                # Compiled JavaScript

故障排除

Things 3未响应

  1. 确保Things3已安装并正在运行
  2. 在系统设置>隐私和安全>隐私>自动化中检查AppleScript权限
  3. 授予您的终端或IDE控制Things3的权限

权限错误

  • macOS可能要求您授予自动化权限
  • 运行此命令以测试AppleScript访问:
  osascript -e 'tell application "Things3" to return name of first to do'

MCP连接问题

  1. 验证配置中的路径是否为绝对路径
  2. 检查服务器是否成功构建: npm run build
  3. 在MCP客户端的日志中查找错误消息
  4. 尝试直接运行服务器: node dist/index.js

日期格式问题

  • 日期必须采用ISO 8601格式(例如,“2024-12-25T10:00:00Z”)
  • 服务器自动处理时区转换
  • 如果日期显示不正确,请检查系统的日期格式设置

性能问题

  • 对于大型操作,使用批量工具而不是单个操作
  • 标签操作会自动创建缺失的标签,这可能会减缓初始操作的速度

已知限制

  1. 检查表项目:

- Things3的AppleScript API不支持检查表操作 - 在创建带有清单的TODO时,我们使用URL方案作为解决方法 - 这可能会导致Things3短暂地出现在前台 - 创建后无法修改现有检查表项

  1. 已删除邮件恢复:已删除的项目无法通过API恢复
  2. 提醒详细信息:通过AppleScript提供的提醒信息有限
  3. 标签层次结构:标记父子关系是只读的(但可以创建和删除标记)
  4. URL方案限制:

- 使用URL方案(用于检查表)时,无法直接检索新创建的TODO ID - 服务器执行搜索以查找创建的TODO,如果多个TODO具有相同的标题,则可能会失败

贡献

欢迎投稿!请遵循传统的提交格式,并确保在提交拉取请求之前通过所有测试。

致谢

目录标签

目录标签

TypeScriptClaude任务管理developer-tools本地部署Things3集成自动化工具项目管理标签系统

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

25

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP