trackmcp
Back to directory
dragosroua

addtaskmanager-mcp-server

View on GitHub

An MCP server for the addTaskManager iOS app

2 stars JavaScriptServers & Infrastructure Updated Aug 30, 2025

Documentation

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)

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

From Source

bash
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:

bash
# 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):

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

For development:

json
{
  "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:

javascript
// 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

bash
# 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

code
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

code
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

Frequently asked questions

What is addtaskmanager-mcp-server?

addtaskmanager-mcp-server is An MCP server for the addTaskManager iOS app

How do I install addtaskmanager-mcp-server?

Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

Is addtaskmanager-mcp-server open source?

Yes — it is hosted on GitHub at https://github.com/dragosroua/addtaskmanager-mcp-server and has 2 stars.

Related MCP tools

Run your own MCP server? See who uses it and what to fix.

Measure it with TrackMCP