返回市场
任务添加管理器-mcp服务器

任务添加管理器-mcp服务器

作者:dragosroua2 星标更新:2025-08-08

项目介绍

addTaskManager MCP Server

一个与addTaskManager iOS/macOS应用集成的MCP(模型上下文协议)服务器,实现了Dragos Roua创建的ADD(评估-决定-执行)框架。

概述

此MCP服务器在尊重ADD框架严格的基于领域的限制的同时,为您的addTaskManager生产力工作流程提供AI辅助:

  • 评估领域:创建和编辑任务/项目/想法,但不能分配上下文或截止日期
  • 决定领域:分配上下文、截止日期和提醒,但不能编辑内容
  • 执行领域:仅标记项目为完成(否则只读)

功能

认证

  • 安全的Apple登录集成
  • 使用CloudKit.js进行个人数据访问认证
  • 用户特定的数据隔离

评估领域操作

  • assess_create_task - 创建具有可编辑内容的新任务
  • assess_edit_task - 编辑任务内容
  • assess_create_project - 创建新项目
  • assess_edit_project - 编辑项目标题
  • assess_create_idea - 捕获新想法
  • assess_create_collection - 创建新集合
  • assess_create_context - 创建新上下文
  • assess_edit_idea - 编辑想法标题
  • assess_add_task_to_project - 将现有任务添加到项目中
  • assess_add_task_to_idea - 将现有任务添加到想法中
  • assess_remove_task_from_project - 从项目中移除任务
  • assess_remove_task_from_idea - 从想法中移除任务
  • assess_archive_task_to_collection - 将任务归档到现有集合中
  • assess_archive_project_to_collection - 将项目归档到现有集合中

决定领域操作

  • decide_assign_context - 为任务/项目分配上下文
  • decide_set_project_interval - 设置项目间隔(开始日期和结束日期)
  • decide_set_task_due_date - 为任务设置截止日期
  • decide_set_task_alert - 设置任务提醒
  • decide_move_task_to_do - 将任务移动到执行领域
  • decide_move_task_to_assess_from_decide - 将任务从决定领域移动到评估领域
  • decide_move_project_to_do - 将项目移动到执行领域
  • decide_move_project_to_assess_from_decide - 将项目从决定领域移动到评估领域

执行领域操作

  • do_mark_task_as_done - 标记任务为已完成
  • do_mark_project_as_done - 标记项目为已完成

查询操作

  • get_tasks_by_realm - 按领域过滤任务
  • get_projects_by_realm - 按领域过滤项目
  • get_ideas - 获取所有想法
  • get_collections - 获取所有集合
  • get_tasks_by_context - 按上下文过滤
  • get_stalled_items_in_decide - 在决定领域查找停滞的项目(任务+项目)
  • get_undecided_items_in_decide - 在决定领域查找未决定的项目(任务+项目)
  • get_ready_items_in_decide - 在决定领域查找准备好执行的项目(任务+项目)
  • get_tasks_today_in_do - 在执行领域查找今天完成的任务
  • get_tasks_tomorrow_in_do - 在执行领域查找明天完成的任务
  • get_tasks_soon_in_do - 在执行领域查找即将完成的任务
  • get_tasks_overdue_in_do - 在执行领域查找逾期的任务

通用操作

  • moveToRealm - 将任务或项目移动到任何领域(评估/决定/执行)

安装

通过npm(即将推出)

npm install -g @dragosroua/addtaskmanager-mcp-server

从源代码安装

git clone https://github.com/dragosroua/addtaskmanager-mcp-server.git
cd addtaskmanager-mcp-server
npm install
npm run build

配置

环境变量

该服务器支持开发和生产配置。复制.env.example.env并进行配置:

# 环境
NODE_ENV=production  # 或 development
# FORCE_CLOUDKIT=true  # 强制在开发环境中使用CloudKit

# CloudKit配置(必需)
CLOUDKIT_CONTAINER_ID=iCloud.com.yourapp.zentasktic
CLOUDKIT_API_TOKEN=your_api_token_here
CLOUDKIT_ENVIRONMENT=production  # 或 development
CLOUDKIT_AUTH_METHOD=user  # 或 server-to-server

# 生产安全配置
ENCRYPTION_KEY=your_32_byte_encryption_key_here
ALLOWED_ORIGINS=https://yourapp.com,https://localhost:3000
RATE_LIMIT_WINDOW_MS=900000  # 15分钟
RATE_LIMIT_MAX_REQUESTS=100
AUDIT_LOGGING=true
SESSION_TIMEOUT_MS=86400000  # 24小时

# 可选:用于服务器到服务器认证
# CLOUDKIT_SERVER_KEY=your_server_key_id
# CLOUDKIT_PRIVATE_KEY_PATH=/path/to/private/key.p8
# CLOUDKIT_PRIVATE_KEY_PASSPHRASE=your_passphrase

# 可选:自定义重定向URI
# CLOUDKIT_REDIRECT_URI=https://yourapp.com/auth/callback

CloudKit仪表板设置

  1. 登录CloudKit仪表板
  2. 选择您的addTaskManager容器
  3. 转到API访问→服务器到服务器密钥
  4. 创建一个新的JavaScript API令牌
  5. 将您的web应用域名添加到允许的来源中
  6. 将API令牌复制到CLOUDKIT_API_TOKEN

与Claude Desktop的使用

添加到您的Claude Desktop MCP配置(macOS上的~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "addTaskManager": {
      "command": "node",
      "args": ["/path/to/addtaskmanager-mcp-server/dist/index.js"],
      "env": {
        "NODE_ENV": "production",
        "CLOUDKIT_CONTAINER_ID": "iCloud.com.yourapp.zentasktic",
        "CLOUDKIT_API_TOKEN": "your_api_token_here",
        "CLOUDKIT_ENVIRONMENT": "production",
        "ENCRYPTION_KEY": "your_32_byte_encryption_key_here"
      }
    }
  }
}

对于开发:

{
  "mcpServers": {
    "addTaskManager": {
      "command": "npm",
      "args": ["run", "dev"],
      "cwd": "/path/to/addtaskmanager-mcp-server",
      "env": {
        "NODE_ENV": "development",
        "CLOUDKIT_CONTAINER_ID": "iCloud.com.yourapp.zentasktic",
        "CLOUDKIT_API_TOKEN": "your_api_token_here"
      }
    }
  }
}

与Web应用的使用

  1. 在您的web应用中实现Apple登录
  2. 获取用户的CloudKit web认证令牌
  3. 使用令牌调用authenticate_user
  4. 开始使用特定领域的操作

示例认证流程:

// Apple登录成功后
const authResult = await mcp.callTool('authenticate_user', {
  webAuthToken: user.cloudKitWebAuthToken
});

// 现在您可以使用其他工具
const tasks = await mcp.callTool('get_tasks_by_realm', {
  realm: 'assess'
});

ADD框架规则

服务器强制执行这些ADD框架限制:

评估领域

  • ✅ 创建/编辑任务内容(标题、正文)
  • ✅ 创建项目和想法
  • ❌ 分配上下文或截止日期
  • ❌ 标记为完成

决定领域

  • ✅ 为任务/项目分配上下文
  • ✅ 设置截止日期和提醒
  • ✅ 在领域之间移动项目
  • ❌ 编辑任务/项目的文本
  • ❌ 标记为完成

执行领域

  • ✅ 标记任务/项目为完成
  • ✅ 查看项目(只读)
  • ❌ 编辑任何内容
  • ❌ 分配上下文或日期

开发

# 克隆并安装
git clone https://github.com/dragosroua/addtaskmanager-mcp-server.git
cd addtaskmanager-mcp-server
npm install

# 设置环境
cp .env.example .env
# 使用您的CloudKit凭证编辑.env

# 开发模式,带有TypeScript编译
npm run dev

# 生产构建
npm run build

# 启动构建的服务器
npm start

# 代码质量
npm run lint
npm run typecheck

# 测试(当可用时)
npm test

项目结构

src/
├── config/
│   └── production.ts          # 基于环境的配置
├── services/
│   ├── CloudKitService.ts     # CloudKit集成
│   └── UserAuthService.ts     # 用户认证
├── types/
│   └── cloudkit.ts           # TypeScript类型定义
└── index.ts                  # 主MCP服务器实现

开发说明

  • 使用ESM模块(package.json中的"type": "module")
  • TypeScript编译到dist/目录
  • 支持开发和生产CloudKit环境
  • 基于环境的配置,考虑了安全性
  • 为CloudKit集成提供了全面的类型定义

架构

AI助手(Claude Desktop)→ MCP服务器 → CloudKit服务
                                    ↓
                            环境配置
                            安全控制
                            用户认证
                                    ↓
                            ADD框架规则
                                    ↓
                            addTaskManager数据
                            (用户iCloud容器)

组件概述

  • MCP服务器:模型上下文协议服务器实现
  • CloudKit集成:生产就绪的CloudKit Web服务客户端
  • 认证:基于Apple ID的用户认证,带会话管理
  • 安全层:加密、速率限制、审计日志、CORS保护
  • ADD框架:基于领域的业务逻辑强制执行
  • 类型安全:全面的TypeScript定义

安全性

  • 基于环境的安全性:为开发/生产提供不同的安全配置文件
  • 用户认证:使用CloudKit web认证令牌的Apple ID认证
  • 会话管理:具有可配置超时的安全会话处理
  • 数据加密:为敏感数据配置加密密钥
  • 速率限制:具有用户特定限制的可配置请求速率限制
  • CORS保护:为web应用集成配置允许的来源
  • 审计日志:全面的操作日志以供安全监控
  • 数据隔离:用户只能访问自己的addTaskManager数据
  • 领域强制执行:ADD框架规则防止未经授权的操作

关于ADD框架

ADD(评估-决定-执行)框架由Dragos Roua创建,作为GTD(完成事情)的替代方案。它强调:

  • 顺序处理:项目按顺序流经各个领域
  • 认知负荷管理:每个领域都有特定且有限的功能
  • 平衡生产力:在保持效率的同时,保留创造力和幸福感

了解更多:dragosroua.com