update_list
Modify ClickUp list properties including name, description, or status to keep project organization current and accurate.
Instructions
Update an existing ClickUp list's properties. You MUST provide either listId or listName, and at least one field to update (name, content, or status).
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| listId | No | ID of the list to update. Use this instead of listName if you have the ID. | |
| listName | No | Name of the list to update. May be ambiguous if multiple lists have the same name. | |
| name | No | New name for the list | |
| content | No | New description or content for the list | |
| status | No | New status for the list |
Implementation Reference
- src/tools/list.ts:138-167 (schema)Tool schema definition for 'update_list' including input schema for parameters like listId/listName, name, content, status.export const updateListTool = { name: "update_list", description: "Update an existing ClickUp list's properties. You MUST provide either listId or listName, and at least one field to update (name, content, or status).", inputSchema: { type: "object", properties: { listId: { type: "string", description: "ID of the list to update. Use this instead of listName if you have the ID." }, listName: { type: "string", description: "Name of the list to update. May be ambiguous if multiple lists have the same name." }, name: { type: "string", description: "New name for the list" }, content: { type: "string", description: "New description or content for the list" }, status: { type: "string", description: "New status for the list" } }, required: [] } };
- src/tools/list.ts:406-463 (handler)Main handler for 'update_list' tool: resolves list ID, validates inputs, calls service to update, returns formatted response with updated list details.export async function handleUpdateList(parameters: any) { const { listId, listName, name, content, status } = parameters; let targetListId = listId; // If no listId provided but listName is, look up the list ID if (!targetListId && listName) { const listResult = await findListIDByName(workspaceService, listName); if (!listResult) { throw new Error(`List "${listName}" not found`); } targetListId = listResult.id; } if (!targetListId) { throw new Error("Either listId or listName must be provided"); } // Ensure at least one update field is provided if (!name && !content && !status) { throw new Error("At least one of name, content, or status must be provided for update"); } // Prepare update data const updateData: Partial<CreateListData> = {}; if (name) updateData.name = name; if (content) updateData.content = content; if (status) updateData.status = status; try { // Update the list const updatedList = await listService.updateList(targetListId, updateData); return { content: [{ type: "text", text: JSON.stringify( { id: updatedList.id, name: updatedList.name, content: updatedList.content, space: { id: updatedList.space.id, name: updatedList.space.name }, status: updatedList.status, url: `https://app.clickup.com/${config.clickupTeamId}/v/l/${updatedList.id}`, message: `List "${updatedList.name}" updated successfully` }, null, 2 ) }] }; } catch (error: any) { throw new Error(`Failed to update list: ${error.message}`); } }
- src/server.ts:67-93 (registration)Registration of updateListTool in the list of available tools returned by ListToolsRequestSchema handler.server.setRequestHandler(ListToolsRequestSchema, async () => { return { tools: [ workspaceHierarchyTool, createTaskTool, getTaskTool, getTasksTool, updateTaskTool, moveTaskTool, duplicateTaskTool, deleteTaskTool, createBulkTasksTool, updateBulkTasksTool, moveBulkTasksTool, deleteBulkTasksTool, createListTool, createListInFolderTool, getListTool, updateListTool, deleteListTool, createFolderTool, getFolderTool, updateFolderTool, deleteFolderTool ] }; });
- src/server.ts:130-131 (registration)Dispatch/registration of handleUpdateList in the CallToolRequestSchema switch statement for tool name 'update_list'.case "update_list": return handleUpdateList(params);
- src/services/clickup/list.ts:115-129 (helper)Core service method that performs the actual ClickUp API PUT request to update a list.async updateList(listId: string, updateData: Partial<CreateListData>): Promise<ClickUpList> { this.logOperation('updateList', { listId, ...updateData }); try { return await this.makeRequest(async () => { const response = await this.client.put<ClickUpList>( `/list/${listId}`, updateData ); return response.data; }); } catch (error) { throw this.handleError(error, `Failed to update list ${listId}`); } }