todoist_get_project
Retrieve a specific Todoist project by its ID to access project details and manage tasks within that project.
Instructions
Get a specific project by its ID
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | The ID of the project to retrieve |
Implementation Reference
- src/index.ts:1379-1394 (handler)Handler implementation that validates arguments using isProjectIdArgs, calls todoistClient.getProject(projectId), formats the project using formatProject, and returns the details.if (name === "todoist_get_project") { if (!isProjectIdArgs(args)) { throw new Error("Invalid arguments for todoist_get_project"); } const project = await todoistClient.getProject(args.projectId); return { content: [{ type: "text", text: `Project details:\nID: ${project.id}\n${formatProject(project)}` }], isError: false, }; } if (name === "todoist_create_project") {
- src/index.ts:383-396 (schema)Tool schema defining the name, description, and input schema requiring projectId.const GET_PROJECT_TOOL: Tool = { name: "todoist_get_project", description: "Get a specific project by its ID", inputSchema: { type: "object", properties: { projectId: { type: "string", description: "The ID of the project to retrieve" } }, required: ["projectId"] } };
- src/index.ts:1083-1121 (registration)Registration of all tools including todoist_get_project (as GET_PROJECT_TOOL) in the ListToolsRequestSchema handler.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:722-724 (helper)Helper function formatProject used to format the project details in the tool response.function formatProject(project: any): string { return `- ${project.name}${project.color ? `\n Color: ${project.color}` : ''}${project.isFavorite ? `\n Favorite: Yes` : ''}${project.viewStyle ? `\n View: ${project.viewStyle}` : ''}${project.parentId ? `\n Parent: ${project.parentId}` : ''}${project.id ? ` (ID: ${project.id})` : ''}`; }
- src/index.ts:823-832 (helper)Type guard function isProjectIdArgs used in the handler to validate input arguments.function isProjectIdArgs(args: unknown): args is { projectId: string; } { return ( typeof args === "object" && args !== null && "projectId" in args && typeof (args as { projectId: string }).projectId === "string" ); }