todoist_update_label
Modify an existing Todoist label by updating its name, color, favorite status, or order using the label ID.
Instructions
Update an existing label by its ID.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| labelId | Yes | The ID of the label to update. | |
| name | No | New name for the label (optional). | |
| color | No | New color for the label (optional). | |
| isFavorite | No | New favorite status (optional). | |
| order | No | New order for the label (optional). |
Implementation Reference
- src/index.ts:1590-1604 (handler)Executes the todoist_update_label tool: validates args with isUpdateLabelArgs, calls todoistClient.updateLabel(labelId, updateArgs), formats response with formatLabel.
if (name === "todoist_update_label") { if (!isUpdateLabelArgs(args)) { return { content: [{ type: "text", text: "Invalid arguments for update_label" }], isError: true }; } try { const { labelId, ...updateArgs } = args; const updatedLabel = await todoistClient.updateLabel(labelId, updateArgs); return { content: [{ type: "text", text: `Label updated:\n${formatLabel(updatedLabel)}` }], isError: false }; } catch (error: any) { return { content: [{ type: "text", text: `Error updating label: ${error.message}` }], isError: true }; } } - src/index.ts:335-349 (schema)Input schema and metadata definition for the todoist_update_label tool.
const UPDATE_LABEL_TOOL: Tool = { name: "todoist_update_label", description: "Update an existing label by its ID.", inputSchema: { type: "object", properties: { labelId: { type: "string", description: "The ID of the label to update." }, name: { type: "string", description: "New name for the label (optional)." }, color: { type: "string", description: "New color for the label (optional)." }, isFavorite: { type: "boolean", description: "New favorite status (optional)." }, order: { type: "number", description: "New order for the label (optional)." } }, required: ["labelId"] } }; - src/index.ts:1109-1114 (registration)Registers UPDATE_LABEL_TOOL in the array of tools advertised via ListToolsRequestSchema handler.
CREATE_LABEL_TOOL, GET_LABEL_TOOL, GET_LABELS_TOOL, UPDATE_LABEL_TOOL, DELETE_LABEL_TOOL, // Comment tools - src/index.ts:1001-1014 (helper)Type guard function to validate input arguments for the todoist_update_label tool.
function isUpdateLabelArgs(args: unknown): args is { labelId: string; name?: string; color?: string; isFavorite?: boolean; order?: number; } { return ( typeof args === "object" && args !== null && "labelId" in args && typeof (args as { labelId: string }).labelId === "string" ); } - src/index.ts:727-729 (helper)Helper function used to format the updated label details in the tool response.
function formatLabel(label: any): string { return `- ${label.name} (ID: ${label.id})${label.color ? `\n Color: ${label.color}` : ''}${label.isFavorite ? `\n Favorite: Yes` : ''}${label.order ? `\n Order: ${label.order}`: ''}`; }