Skip to main content
Glama
jakedx6

Helios-9 MCP Server

by jakedx6

update_task

Modify existing task details including title, description, status, priority, due date, assignee, or initiative association in Helios-9 project management system.

Instructions

Update an existing task with new information

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
task_idYesThe unique identifier of the task to update
titleNoNew title for the task
descriptionNoNew description for the task
statusNoNew status for the task
priorityNoNew priority for the task
due_dateNoNew due date for the task (ISO 8601 format)
assignee_idNoNew assignee for the task
initiative_idNoNew initiative ID to associate the task with

Implementation Reference

  • The main handler function for the 'update_task' MCP tool. Validates input with UpdateTaskSchema, logs the update, calls supabaseService.updateTask to perform the update, logs success, and returns the updated task with a message.
    export const updateTask = requireAuth(async (args: any) => {
      const { task_id, ...updates } = UpdateTaskSchema.parse(args)
      
      logger.info('Updating task', { task_id, updates })
      
      // Handle status change logic
      // completed_at property removed as it doesn't exist in the database schema
      
      const task = await supabaseService.updateTask(task_id, updates)
      
      logger.info('Task updated successfully', { task_id: task.id })
      
      return {
        task,
        message: `Task "${task.title}" updated successfully`
      }
    })
  • Zod schema for input validation used in the updateTask handler, defining optional fields for task updates.
    const UpdateTaskSchema = z.object({
      task_id: z.string().uuid(),
      title: z.string().min(1).max(500).optional(),
      description: z.string().optional(),
      status: z.enum(['todo', 'in_progress', 'done']).optional(),
      priority: z.enum(['low', 'medium', 'high']).optional(),
      due_date: z.string().datetime().optional(),
      assignee_id: z.string().uuid().optional(),
      initiative_id: z.string().uuid().optional()
      // Removed metadata as it doesn't exist in the database schema
    })
  • MCPTool registration object defining the 'update_task' tool, including its name, description, and JSON Schema for input validation.
    export const updateTaskTool: MCPTool = {
      name: 'update_task',
      description: 'Update an existing task with new information',
      inputSchema: {
        type: 'object',
        properties: {
          task_id: {
            type: 'string',
            format: 'uuid',
            description: 'The unique identifier of the task to update'
          },
          title: {
            type: 'string',
            minLength: 1,
            maxLength: 500,
            description: 'New title for the task'
          },
          description: {
            type: 'string',
            description: 'New description for the task'
          },
          status: {
            type: 'string',
            enum: ['todo', 'in_progress', 'done'],
            description: 'New status for the task'
          },
          priority: {
            type: 'string',
            enum: ['low', 'medium', 'high'],
            description: 'New priority for the task'
          },
          due_date: {
            type: 'string',
            format: 'date-time',
            description: 'New due date for the task (ISO 8601 format)'
          },
          assignee_id: {
            type: 'string',
            format: 'uuid',
            description: 'New assignee for the task'
          },
          initiative_id: {
            type: 'string',
            format: 'uuid',
            description: 'New initiative ID to associate the task with'
          },
          // Removed metadata as it doesn't exist in the database schema
        },
        required: ['task_id']
      }
    }
  • Export of taskHandlers object that maps tool names to their handler functions, registering 'update_task' to the updateTask function.
    export const taskHandlers = {
      list_tasks: listTasks,
      create_task: createTask,
      get_task: getTask,
      update_task: updateTask,
      add_task_dependency: addTaskDependency,
      get_task_dependencies: getTaskDependencies,
      create_task_workflow: createTaskWorkflow,
      bulk_update_tasks: bulkUpdateTasks,
      get_task_workflow_status: getTaskWorkflowStatus
    }
  • Helper function in the API client (supabaseService) that makes the HTTP PATCH request to the backend API endpoint to update the task.
    async updateTask(taskId: string, updates: Partial<Task>): Promise<Task> {
      const response = await this.request<{ task: Task }>(`/api/mcp/tasks/${taskId}`, {
        method: 'PATCH',
        body: JSON.stringify(updates),
      })
      
      return response.task
    }

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/jakedx6/helios9-MCP-Server'

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