get_tasks_by_projectId
Retrieve all tasks from a specific project in TickTick/Dida365 using the project ID to view and manage project-related tasks.
Instructions
Get all tasks belonging to a specific project by project ID. Returns a list of tasks with their basic information. Useful for viewing all tasks in a project.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | The ID of the project whose tasks you want to list (required) |
Implementation Reference
- src/index.ts:391-405 (handler)The handler for the 'get_tasks_by_projectId' tool. It validates the projectId argument, makes an API call to the Dida365 endpoint `/project/{projectId}/data` to fetch tasks, and returns the response data as a formatted JSON text block.case "get_tasks_by_projectId": { const params: Record<string, any> = {}; if (args.projectId) params.projectId = args.projectId; else throw new McpError(ErrorCode.InvalidRequest, "项目名称为空"); const response = await dida365Api.get(`/project/${params.projectId}/data`); return { content: [ { type: "text", text: `任务列表: ${JSON.stringify(response.data, null, 2)}`, }, ], }; }
- src/index.ts:156-169 (registration)Registration of the 'get_tasks_by_projectId' tool in the ListTools response, including its name, description, and input schema definition.{ name: "get_tasks_by_projectId", description: "Get all tasks belonging to a specific project by project ID. Returns a list of tasks with their basic information. Useful for viewing all tasks in a project.", inputSchema: { type: "object", properties: { projectId: { type: "string", description: "The ID of the project whose tasks you want to list (required)", }, }, required: ["projectId"], }, },
- src/index.ts:47-64 (schema)TypeScript interface defining the structure of Task objects, used for typing API responses in the get_tasks_by_projectId handler.interface Task { id?: string; // Task identifier projectId?: string; // Task project id title?: string; // Task title isAllDay?: boolean; // All day completedTime?: string; // Task completed time in "yyyy-MM-dd'T'HH:mm:ssZ" content?: string; // Task content desc?: string; // Task description of checklist dueDate?: string; // Task due date time in "yyyy-MM-dd'T'HH:mm:ssZ" items?: ChecklistItem[]; // Subtasks of Task priority?: 0 | 1 | 3 | 5 | number; // Task priority: None:0, Low:1, Medium:3, High:5 reminders?: string[]; // List of reminder triggers repeatFlag?: string; // Recurring rules of task sortOrder?: number; // Task sort order startDate?: string; // Start date time in "yyyy-MM-dd'T'HH:mm:ssZ" status?: 0 | 2 | number; // Task completion status: Normal: 0, Completed: 2 timeZone?: string; // Task timezone }
- src/index.ts:27-33 (helper)Axios client instance configured with base URL and authorization token for Dida365 API, used by the tool handler to make requests.const dida365Api = axios.create({ baseURL: DIDA365_BASE_URL, headers: { "Content-Type": "application/json", Authorization: DIDA365_TOKEN, }, });