addtaskmanager-mcp-server
An MCP server for the addTaskManager iOS app
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)
npm install -g @dragosroua/addtaskmanager-mcp-serverFrom Source
git clone https://github.com/dragosroua/addtaskmanager-mcp-server.git
cd addtaskmanager-mcp-server
npm install
npm run buildConfiguration
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/callbackCloudKit 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 testProject 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 implementationDevelopment 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
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
An MCP server that installs other MCP servers for you JavaScript-based implementation. Trusted by 1400+ developers. Trusted by 1400+ developers.
MCP server for interacting with the iOS simulator JavaScript-based implementation. Trusted by 1200+ developers. Trusted by 1200+ developers.
A Model Context Protocol server that provides read-only access to MySQL databases. This server enables LLMs to inspect database schemas and execute read-only...
This is an MCP server that allows you to directly download transcripts of YouTube videos. JavaScript-based implementation.
The all-in-one Desktop & Docker AI application with built-in RAG, AI agents, No-code agent builder, MCP compatibility, and more.
An AI-powered task-management system you can drop into Cursor, Lovable, Windsurf, Roo, and others. Built for the Model Context Protocol to enhance AI capabiliti
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP