Skip to main content
Glama
dragosroua

addTaskManager MCP Server

by dragosroua

assess_add_task_to_project

Add an existing task to a project in the Assess realm to organize work according to the ADD framework. Specify task and project record names to link items.

Instructions

Add an existing task to a project in Assess realm.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
taskRecordNameYesRecord name of the task
projectRecordNameYesRecord name of the project

Implementation Reference

  • The core handler function implementing the tool logic. Currently a mock that returns a success message simulating the addition of a task to a project via CloudKit.
    private async addTaskToProject(taskRecordName: string, projectRecordName: string) {
      // Mock adding task to project via CloudKit
      return { content: [{ type: 'text', text: `Task ${taskRecordName} added to project ${projectRecordName}` }] };
    }
  • src/index.ts:683-685 (registration)
    Tool dispatching/registration in the CallToolRequestSchema switch statement, validating args and calling the handler.
    case 'assess_add_task_to_project':
      this.validateArgs(args, ['taskRecordName', 'projectRecordName']);
      return await this.addTaskToProject(args.taskRecordName, args.projectRecordName);
  • Tool definition including name, description, and input schema registered in ListToolsRequestSchema response.
    name: 'assess_add_task_to_project',
    description: 'Add an existing task to a project in Assess realm.',
    inputSchema: {
      type: 'object',
      properties: {
        taskRecordName: { type: 'string', description: 'Record name of the task' },
        projectRecordName: { type: 'string', description: 'Record name of the project' }
      },
      required: ['taskRecordName', 'projectRecordName']
    }
  • src/index.ts:238-638 (registration)
    Full tools list including this tool's registration in ListToolsRequestSchema handler (excerpt shows context). Note: full block spans lines 238-638.
    return {
      tools: [
        // Authentication
        {
          name: 'authenticate_user',
          description: 'Authenticate user with Apple ID to access their addTaskManager data',
          inputSchema: {
            type: 'object',
            properties: {
              webAuthToken: { type: 'string', description: 'CloudKit web auth token from Apple Sign-In' }
            },
            required: ['webAuthToken']
          }
        },
    
        // Assess Realm Tools (realmId 1)
        {
          name: 'assess_create_task',
          description: 'Create a new task in Assess realm (content editing, no contexts/dates).',
          inputSchema: {
            type: 'object',
            properties: {
              taskName: { type: 'string', description: 'Task name/description (max 1000 chars)' },
              startDate: { type: 'string', format: 'date-time', description: 'Optional start date (ISO format)' },
              taskPriority: { type: 'integer', minimum: 1, maximum: 5, description: 'Optional task priority (1-5, default 3)'},
              projectRecordName: { type: 'string', description: 'Optional recordName of the parent project.' },
              collectionRecordName: { type: 'string', description: 'Optional recordName of the parent collection.' }
            },
            required: ['taskName']
          }
        },
        {
          name: 'assess_edit_task',
          description: 'Edit task content in Assess realm (taskName, priority).',
          inputSchema: {
            type: 'object',
            properties: {
              taskRecordName: { type: 'string', description: 'Record name of the task to edit' },
              taskName: { type: 'string', description: 'Updated task name/description' },
              taskPriority: { type: 'integer', minimum: 1, maximum: 5, description: 'Updated task priority (1-5)'},
            },
            required: ['taskRecordName']
          }
        },
        {
          name: 'assess_create_project',
          description: 'Create a new project in Assess realm.',
          inputSchema: {
            type: 'object',
            properties: {
              projectName: { type: 'string', description: 'Project name/description (max 1500 chars)' },
              startDate: { type: 'string', format: 'date-time', description: 'Optional start date (ISO format)' },
              collectionRecordName: { type: 'string', description: 'Optional recordName of the parent collection.' }
            },
            required: ['projectName']
          }
        },
        {
          name: 'assess_create_idea',
          description: 'Capture a new idea (always starts in Assess realm).',
          inputSchema: {
            type: 'object',
            properties: {
              ideaName: { type: 'string', description: 'Idea name/details (max 1500 chars)' },
              collectionRecordName: { type: 'string', description: 'Optional recordName of the parent collection.' }
            },
            required: ['ideaName']
          }
        },
        {
          name: 'assess_create_collection',
          description: 'Create a new collection in Assess realm.',
          inputSchema: {
            type: 'object',
            properties: {
              collectionName: { type: 'string', description: 'Collection name' }
            },
            required: ['collectionName']
          }
        },
        {
          name: 'assess_create_context',
          description: 'Create a new context in Assess realm.',
          inputSchema: {
            type: 'object',
            properties: {
              contextName: { type: 'string', description: 'Context name (max 30 chars)' }
            },
            required: ['contextName']
          }
        },
        {
          name: 'assess_edit_project',
          description: 'Edit project content in Assess realm.',
          inputSchema: {
            type: 'object',
            properties: {
              projectRecordName: { type: 'string', description: 'Record name of the project to edit' },
              projectName: { type: 'string', description: 'Updated project name' }
            },
            required: ['projectRecordName']
          }
        },
        {
          name: 'assess_edit_idea',
          description: 'Edit idea content in Assess realm.',
          inputSchema: {
            type: 'object',
            properties: {
              ideaRecordName: { type: 'string', description: 'Record name of the idea to edit' },
              ideaName: { type: 'string', description: 'Updated idea name' }
            },
            required: ['ideaRecordName']
          }
        },
        {
          name: 'assess_add_task_to_project',
          description: 'Add an existing task to a project in Assess realm.',
          inputSchema: {
            type: 'object',
            properties: {
              taskRecordName: { type: 'string', description: 'Record name of the task' },
              projectRecordName: { type: 'string', description: 'Record name of the project' }
            },
            required: ['taskRecordName', 'projectRecordName']
          }
        },
        {
          name: 'assess_add_task_to_idea',
          description: 'Add an existing task to an idea in Assess realm.',
          inputSchema: {
            type: 'object',
            properties: {
              taskRecordName: { type: 'string', description: 'Record name of the task' },
              ideaRecordName: { type: 'string', description: 'Record name of the idea' }
            },
            required: ['taskRecordName', 'ideaRecordName']
          }
        },
        {
          name: 'assess_remove_task_from_project',
          description: 'Remove a task from a project in Assess realm.',
          inputSchema: {
            type: 'object',
            properties: {
              taskRecordName: { type: 'string', description: 'Record name of the task' },
              projectRecordName: { type: 'string', description: 'Record name of the project' }
            },
            required: ['taskRecordName', 'projectRecordName']
          }
        },
        {
          name: 'assess_remove_task_from_idea',
          description: 'Remove a task from an idea in Assess realm.',
          inputSchema: {
            type: 'object',
            properties: {
              taskRecordName: { type: 'string', description: 'Record name of the task' },
              ideaRecordName: { type: 'string', description: 'Record name of the idea' }
            },
            required: ['taskRecordName', 'ideaRecordName']
          }
        },
        {
          name: 'assess_archive_task_to_collection',
          description: 'Archive a task to a collection.',
          inputSchema: {
            type: 'object',
            properties: {
              taskRecordName: { type: 'string', description: 'Record name of the task' },
              collectionRecordName: { type: 'string', description: 'Record name of the collection' }
            },
            required: ['taskRecordName', 'collectionRecordName']
          }
        },
        {
          name: 'assess_archive_project_to_collection',
          description: 'Archive a project to a collection.',
          inputSchema: {
            type: 'object',
            properties: {
              projectRecordName: { type: 'string', description: 'Record name of the project' },
              collectionRecordName: { type: 'string', description: 'Record name of the collection' }
            },
            required: ['projectRecordName', 'collectionRecordName']
          }
        },
    
        // Decide Realm Tools (realmId 2)
        {
          name: 'decide_assign_context',
          description: 'Assign contexts to tasks/projects in Decide realm.',
          inputSchema: {
            type: 'object',
            properties: {
              itemRecordName: { type: 'string', description: 'Record name of the task or project' },
              itemType: { type: 'string', enum: ['Task', 'Project'], description: 'Type of item (Task or Project)' },
              contextRecordName: { type: 'string', description: 'Record name of the context to assign' }
            },
            required: ['itemRecordName', 'itemType', 'contextRecordName']
          }
        },
        {
          name: 'decide_set_project_interval',
          description: 'Set project interval (start date and end date) in Decide realm.',
          inputSchema: {
            type: 'object',
            properties: {
              projectRecordName: { type: 'string', description: 'Record name of the project' },
              startDate: { type: 'string', format: 'date-time', description: 'Start date in ISO format' },
              endDate: { type: 'string', format: 'date-time', description: 'End date in ISO format' }
            },
            required: ['projectRecordName', 'startDate', 'endDate']
          }
        },
        {
          name: 'decide_set_task_due_date',
          description: 'Set due date for a task in Decide realm.',
          inputSchema: {
            type: 'object',
            properties: {
              taskRecordName: { type: 'string', description: 'Record name of the task' },
              endDate: { type: 'string', format: 'date-time', description: 'Due date in ISO format' }
            },
            required: ['taskRecordName', 'endDate']
          }
        },
        {
          name: 'decide_set_task_alert',
          description: 'Set task alerts in Decide realm.',
          inputSchema: {
            type: 'object',
            properties: {
              taskRecordName: { type: 'string', description: 'Task record name' },
              alertDateTime: { type: 'string', format: 'date-time', description: 'Alert date and time in ISO format for localNotification' }
            },
            required: ['taskRecordName', 'alertDateTime']
          }
        },
        {
          name: 'decide_move_task_to_do',
          description: 'Move task to Do realm from Decide realm.',
          inputSchema: {
            type: 'object',
            properties: {
              taskRecordName: { type: 'string', description: 'Task record name' }
            },
            required: ['taskRecordName']
          }
        },
        {
          name: 'decide_move_task_to_assess_from_decide',
          description: 'Move task to Assess realm from Decide realm.',
          inputSchema: {
            type: 'object',
            properties: {
              taskRecordName: { type: 'string', description: 'Task record name' }
            },
            required: ['taskRecordName']
          }
        },
        {
          name: 'decide_move_project_to_do',
          description: 'Move project to Do realm from Decide realm.',
          inputSchema: {
            type: 'object',
            properties: {
              projectRecordName: { type: 'string', description: 'Project record name' }
            },
            required: ['projectRecordName']
          }
        },
        {
          name: 'decide_move_project_to_assess_from_decide',
          description: 'Move project to Assess realm from Decide realm.',
          inputSchema: {
            type: 'object',
            properties: {
              projectRecordName: { type: 'string', description: 'Project record name' }
            },
            required: ['projectRecordName']
          }
        },
    
        // Do Realm Tools (realmId 3)
        {
          name: 'do_mark_task_as_done',
          description: 'Mark tasks as completed in Do realm.',
          inputSchema: {
            type: 'object',
            properties: {
              taskRecordName: { type: 'string', description: 'Task record name' }
            },
            required: ['taskRecordName']
          }
        },
        {
          name: 'do_mark_project_as_done',
          description: 'Mark projects as completed in Do realm.',
          inputSchema: {
            type: 'object',
            properties: {
              projectRecordName: { type: 'string', description: 'Project record name' }
            },
            required: ['projectRecordName']
          }
        },
    
        // General Query Tools
        {
          name: 'get_tasks_by_realm',
          description: 'Filter tasks by realm.',
          inputSchema: {
            type: 'object',
            properties: {
              realm: { type: 'string', enum: ['assess', 'decide', 'do'], description: 'Realm to query (maps to realmId 1, 2, or 3)' }
            },
            required: ['realm']
          }
        },
        {
          name: 'get_projects_by_realm',
          description: 'Filter projects by realm.',
          inputSchema: {
            type: 'object',
            properties: {
              realm: { type: 'string', enum: ['assess', 'decide', 'do'], description: 'Realm to query (maps to realmId 1, 2, or 3)' }
            },
            required: ['realm']
          }
        },
        {
          name: 'get_ideas',
          description: 'Get all ideas.',
          inputSchema: { type: 'object', properties: {} }
        },
        {
          name: 'moveToRealm',
          description: 'Move a task or project to a specific realm.',
          inputSchema: {
            type: 'object',
            properties: {
              itemRecordName: { type: 'string', description: 'Record name of the task or project to move' },
              itemType: { type: 'string', enum: ['Task', 'Project'], description: 'Type of item to move' },
              realmId: { type: 'string', enum: ['assess', 'decide', 'do'], description: 'Target realm (assess=1, decide=2, do=3)' }
            },
            required: ['itemRecordName', 'itemType', 'realmId']
          }
        },
        {
          name: 'get_collections',
          description: 'Get all collections.',
          inputSchema: { type: 'object', properties: {} }
        },
        {
          name: 'get_tasks_by_context',
          description: 'Filter by context.',
          inputSchema: {
            type: 'object',
            properties: {
              contextRecordName: { type: 'string', description: 'Record name of the context to filter by' }
            },
            required: ['contextRecordName']
          }
        },
        {
          name: 'get_stalled_items_in_decide',
          description: 'Find stalled items (tasks + projects) in Decide realm.',
          inputSchema: { type: 'object', properties: {} }
        },
        {
          name: 'get_undecided_items_in_decide',
          description: 'Find undecided items (tasks + projects) in Decide realm.',
          inputSchema: { type: 'object', properties: {} }
        },
        {
          name: 'get_ready_items_in_decide',
          description: 'Find ready to do items (tasks + projects) in Decide realm.',
          inputSchema: { type: 'object', properties: {} }
        },
        {
          name: 'get_tasks_today_in_do',
          description: 'Find tasks due today in Do realm.',
          inputSchema: { type: 'object', properties: {} }
        },
        {
          name: 'get_tasks_tomorrow_in_do',
          description: 'Find tasks due tomorrow in Do realm.',
          inputSchema: { type: 'object', properties: {} }
        },
        {
          name: 'get_tasks_soon_in_do',
          description: 'Find tasks due soon in Do realm.',
          inputSchema: { type: 'object', properties: {} }
        },
        {
          name: 'get_tasks_overdue_in_do',
          description: 'Find tasks overdue in Do realm.',
          inputSchema: { type: 'object', properties: {} }
        }
      ] as Tool[]

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/dragosroua/addtaskmanager-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server