Skip to main content
Glama
update-status.ts2.72 kB
/** * Developed by eBrook Group. * Copyright © 2026 eBrook Group (https://www.ebrook.com.tw) */ /** * Update task status tool handler * Updates the status of a ClickUp task */ import { ClickUpService } from "../services/clickup.js"; import { debug, error } from "../utils/logger.js"; import { sanitizeErrorResponse, sanitizeApiResponse } from "../utils/error-sanitizer.js"; import type { AppConfig } from "../config/env.js"; import type { ClickUpTaskResponse } from "../types/index.js"; /** * Update task status tool handler * @param task_id - ClickUp task ID * @param status - New status value * @param _config - Application configuration (unused) * @param click_up_service - ClickUp service instance * @returns Tool execution result */ export async function handleUpdateStatus( task_id: string, status: string, _config: AppConfig, click_up_service: ClickUpService ): Promise<{ content: Array<{ type: "text"; text: string }>; isError?: boolean }> { debug(`Updating status for task: ${task_id} to: ${status}`); // Update task status const update_res = await click_up_service.updateStatus(task_id, status); debug(`ClickUp API response status: ${update_res.status}`); if (update_res.status !== 200) { // Sanitized error message for client const error_msg = `Failed to update task ${task_id}. ${sanitizeErrorResponse(update_res.status, update_res.body)}`; // Full error details only in logs debug(`Full API error response: ${JSON.stringify(update_res.body)}`); error(error_msg); return { content: [ { type: "text", text: error_msg, }, ], isError: true, }; } const updated_task = update_res.body as ClickUpTaskResponse; debug(`Successfully updated task status: ${updated_task.name}`); // Build formatted output const output_lines: string[] = []; output_lines.push("=".repeat(80)); output_lines.push(`✅ TASK STATUS UPDATED`); output_lines.push("=".repeat(80)); output_lines.push(""); output_lines.push(`📋 Task: ${updated_task.name || "Unknown"}`); output_lines.push(`🆔 Task ID: ${updated_task.custom_id || updated_task.id || task_id}`); output_lines.push(`📊 New Status: ${updated_task.status?.status || status}`); output_lines.push(`🔗 URL: ${updated_task.url || "N/A"}`); output_lines.push(""); output_lines.push("=".repeat(80)); // Return formatted result return { content: [ { type: "text", text: output_lines.join("\n"), }, { type: "text", text: `\n📊 Raw Response (JSON):\n${JSON.stringify(sanitizeApiResponse(updated_task), null, 2)}`, }, ], isError: false, }; }

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/tangbodie/clickup-mcp'

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