addTaskManager MCP Server

addTaskManager MCP Server

Integrates with the addTaskManager iOS/macOS app to manage tasks, projects, and ideas through the ADD (Assess-Decide-Do) framework. Enforces realm-based restrictions where users can create/edit content in Assess, assign contexts/dates in Decide, and mark items complete in Do.

Category
访问服务器

README

addTaskManager MCP Server

An MCP (Model Context Protocol) server that integrates with the addTaskManager iOS/macOS app, implementing the ADD (Assess-Decide-Do) framework created by Dragos Roua.

Overview

This MCP server provides AI assistance for your addTaskManager productivity workflow while respecting the strict realm-based restrictions of the ADD framework:

  • Assess Realm: Create and edit tasks/projects/ideas, but cannot assign contexts or due dates
  • Decide Realm: Assign contexts, due dates, and alerts, but cannot edit content
  • Do Realm: Mark items as complete only (read-only otherwise)

Features

Authentication

  • Secure Apple Sign-In integration
  • CloudKit.js authentication for personal data access
  • User-specific data isolation

Assess Realm Operations

  • assess_create_task - Create new tasks with editable content
  • assess_edit_task - Edit task content
  • assess_create_project - Create new projects
  • assess_edit_project - Edit project title
  • assess_create_idea - Capture new ideas
  • assess_create_collection - Create new collection
  • assess_create_context - Create new context
  • assess_edit_idea - Edit idea title
  • assess_add_task_to_project - Add an existing task to a project
  • assess_add_task_to_idea - Add an existing task to an idea
  • assess_remove_task_from_project - Remove a task assigned to a project
  • assess_remove_task_from_idea - Remove a task assigned to an idea
  • assess_archive_task_to_collection - Archive a task to an existing collection
  • assess_archive_project_to_collection - Archive a project to an existing collection

Decide Realm Operations

  • decide_assign_context - Assign contexts to tasks/projects
  • decide_set_project_interval - Set a project interval (start date and end date)
  • decide_set_task_due_date - Set due date to a task
  • decide_set_task_alert - Set task alerts
  • decide_move_task_to_do - Move task to Do realm
  • decide_move_task_to_assess_from_decide - Move task to Assess realm
  • decide_move_project_to_do - Move project to Do realm
  • decide_move_project_to_assess_from_decide - Move project to Assess realm

Do Realm Operations

  • do_mark_task_as_done - Mark tasks as completed
  • do_mark_project_as_done - Mark projects as completed

Query Operations

  • get_tasks_by_realm - Filter tasks by realm
  • get_projects_by_realm - Filter projects by realm
  • get_ideas - Get all ideas
  • get_collections - Get all collections
  • get_tasks_by_context - Filter by context
  • get_stalled_items_in_decide - Find stalled items (task + projects) in Decide
  • get_undecided_items_in_decide - Find undecided items (task + projects) in Decide
  • get_ready_items_in_decide - Find ready to do items (task + projects) in Decide
  • get_tasks_today_in_do - Find tasks done today in Do
  • get_tasks_tomorrow_in_do - Find tasks done tomorrow in Do
  • get_tasks_soon_in_do - Find tasks done soon in Do
  • get_tasks_overdue_in_do - Find tasks overdue in Do

General Operations

  • moveToRealm - Move a task or project to any realm (assess/decide/do)

Installation

From npm (Coming Soon)

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

From Source

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

Configuration

Environment Variables

The server supports both development and production configurations. Copy .env.example to .env and configure:

# Environment
NODE_ENV=production  # or development
# FORCE_CLOUDKIT=true  # Force CloudKit in development

# CloudKit Configuration (Required)
CLOUDKIT_CONTAINER_ID=iCloud.com.yourapp.zentasktic
CLOUDKIT_API_TOKEN=your_api_token_here
CLOUDKIT_ENVIRONMENT=production  # or development
CLOUDKIT_AUTH_METHOD=user  # or server-to-server

# Security Configuration (Production)
ENCRYPTION_KEY=your_32_byte_encryption_key_here
ALLOWED_ORIGINS=https://yourapp.com,https://localhost:3000
RATE_LIMIT_WINDOW_MS=900000  # 15 minutes
RATE_LIMIT_MAX_REQUESTS=100
AUDIT_LOGGING=true
SESSION_TIMEOUT_MS=86400000  # 24 hours

# Optional: For server-to-server authentication
# CLOUDKIT_SERVER_KEY=your_server_key_id
# CLOUDKIT_PRIVATE_KEY_PATH=/path/to/private/key.p8
# CLOUDKIT_PRIVATE_KEY_PASSPHRASE=your_passphrase

# Optional: Custom redirect URI
# CLOUDKIT_REDIRECT_URI=https://yourapp.com/auth/callback

CloudKit Dashboard Setup

  1. Log into CloudKit Dashboard
  2. Select your addTaskManager container
  3. Go to API Access → Server-to-Server Keys
  4. Create a new JavaScript API token
  5. Add your web app's domain to allowed origins
  6. Copy the API token to CLOUDKIT_API_TOKEN

Usage with Claude Desktop

Add to your Claude Desktop MCP configuration (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "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"
      }
    }
  }
}

For development:

{
  "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"
      }
    }
  }
}

Usage with Web App

  1. Implement Apple Sign-In on your web app
  2. Get user's CloudKit web auth token
  3. Call authenticate_user with the token
  4. Start using realm-specific operations

Example authentication flow:

// After Apple Sign-In success
const authResult = await mcp.callTool('authenticate_user', {
  webAuthToken: user.cloudKitWebAuthToken
});

// Now you can use other tools
const tasks = await mcp.callTool('get_tasks_by_realm', {
  realm: 'assess'
});

ADD Framework Rules

The server enforces these ADD framework restrictions:

Assess Realm

  • ✅ Create/edit task content (title, body)
  • ✅ Create projects and ideas
  • ❌ Assign contexts or due dates
  • ❌ Mark as complete

Decide Realm

  • ✅ Assign contexts to tasks/projects
  • ✅ Set due dates and alerts
  • ✅ Move items between realms
  • ❌ Edit task/project content
  • ❌ Mark as complete

Do Realm

  • ✅ Mark tasks/projects as complete
  • ✅ View items (read-only)
  • ❌ Edit any content
  • ❌ Assign contexts or dates

Development

# Clone and install
git clone https://github.com/dragosroua/addtaskmanager-mcp-server.git
cd addtaskmanager-mcp-server
npm install

# Setup environment
cp .env.example .env
# Edit .env with your CloudKit credentials

# Development mode with TypeScript compilation
npm run dev

# Production build
npm run build

# Start built server
npm start

# Code quality
npm run lint
npm run typecheck

# Test (when available)
npm test

Project Structure

src/
├── config/
│   └── production.ts          # Environment-based configuration
├── services/
│   ├── CloudKitService.ts     # CloudKit integration
│   └── UserAuthService.ts     # User authentication
├── types/
│   └── cloudkit.ts           # TypeScript type definitions
└── index.ts                  # Main MCP server implementation

Development Notes

  • Uses ESM modules (type: "module" in package.json)
  • TypeScript compiled to dist/ directory
  • Supports both development and production CloudKit environments
  • Environment-based configuration with security considerations
  • Comprehensive type definitions for CloudKit integration

Architecture

AI Assistant (Claude Desktop) → MCP Server → CloudKit Services
                                    ↓
                            Environment Config
                            Security Controls
                            User Authentication
                                    ↓
                            ADD Framework Rules
                                    ↓
                            addTaskManager Data
                            (User's iCloud Container)

Component Overview

  • MCP Server: Model Context Protocol server implementation
  • CloudKit Integration: Production-ready CloudKit Web Services client
  • Authentication: Apple ID-based user authentication with session management
  • Security Layer: Encryption, rate limiting, audit logging, CORS protection
  • ADD Framework: Realm-based business logic enforcement
  • Type Safety: Comprehensive TypeScript definitions

Security

  • Environment-Based Security: Different security profiles for development/production
  • User Authentication: Apple ID authentication with CloudKit web auth tokens
  • Session Management: Secure session handling with configurable timeouts
  • Data Encryption: Configurable encryption keys for sensitive data
  • Rate Limiting: Configurable request rate limiting with user-specific limits
  • CORS Protection: Configurable allowed origins for web app integration
  • Audit Logging: Comprehensive operation logging for security monitoring
  • Data Isolation: Users can only access their own addTaskManager data
  • Realm Enforcement: ADD framework rules prevent unauthorized operations

About the ADD Framework

The ADD (Assess-Decide-Do) framework was created by Dragos Roua as an alternative to GTD (Getting Things Done). It emphasizes:

  • Sequential Processing: Items flow through realms in order
  • Cognitive Load Management: Each realm has specific, limited functions
  • Balanced Productivity: Maintains efficiency while preserving creativity and well-being

Learn more: dragosroua.com

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选