todoist_get_label
Retrieve a specific Todoist label by its ID to access label details for task organization and filtering.
Instructions
Get a specific label by its ID.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| labelId | Yes | The ID of the label to retrieve. |
Implementation Reference
- src/index.ts:1550-1563 (handler)Handler implementation for todoist_get_label tool: validates arguments with isLabelIdArgs, calls todoistClient.getLabel(labelId), formats response with formatLabel, and handles errors.if (name === "todoist_get_label") { if (!isLabelIdArgs(args)) { return { content: [{ type: "text", text: "Invalid arguments for get_label" }], isError: true }; } try { const label = await todoistClient.getLabel(args.labelId); return { content: [{ type: "text", text: `Label details:\n${formatLabel(label)}` }], isError: false }; } catch (error: any) { return { content: [{ type: "text", text: `Error getting label: ${error.message}` }], isError: true }; } }
- src/index.ts:305-315 (schema)Tool schema definition for todoist_get_label, specifying input as object with required labelId string.const GET_LABEL_TOOL: Tool = { name: "todoist_get_label", description: "Get a specific label by its ID.", inputSchema: { type: "object", properties: { labelId: { type: "string", description: "The ID of the label to retrieve." } }, required: ["labelId"] } };
- src/index.ts:1083-1121 (registration)Registration of todoist_get_label (as GET_LABEL_TOOL) in the listTools response handler, included in the tools array.server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: [ // Task tools CREATE_TASK_TOOL, QUICK_ADD_TASK_TOOL, GET_TASKS_TOOL, GET_TASK_TOOL, UPDATE_TASK_TOOL, DELETE_TASK_TOOL, COMPLETE_TASK_TOOL, REOPEN_TASK_TOOL, SEARCH_TASKS_TOOL, MOVE_TASK_TOOL, BULK_MOVE_TASKS_TOOL, // Project tools GET_PROJECTS_TOOL, GET_PROJECT_TOOL, CREATE_PROJECT_TOOL, UPDATE_PROJECT_TOOL, DELETE_PROJECT_TOOL, // Section tools GET_SECTIONS_TOOL, CREATE_SECTION_TOOL, UPDATE_SECTION_TOOL, DELETE_SECTION_TOOL, // Label tools CREATE_LABEL_TOOL, GET_LABEL_TOOL, GET_LABELS_TOOL, UPDATE_LABEL_TOOL, DELETE_LABEL_TOOL, // Comment tools CREATE_COMMENT_TOOL, GET_COMMENT_TOOL, GET_COMMENTS_TOOL, UPDATE_COMMENT_TOOL, DELETE_COMMENT_TOOL, ], }));
- src/index.ts:982-992 (helper)Type guard helper function isLabelIdArgs used to validate input arguments for the todoist_get_label handler.function isLabelIdArgs(args: unknown): args is { labelId: string; } { return ( typeof args === "object" && args !== null && "labelId" in args && typeof (args as { labelId: string }).labelId === "string" ); }
- src/index.ts:727-729 (helper)Helper function formatLabel used to format the label details in the 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}`: ''}`; }