get-milestone-list
Retrieve milestones for project tracking in Dooray. Organize tasks by release or sprint with essential milestone details including status, dates, and IDs for task management.
Instructions
Get list of milestones for a project.
Milestones are used to organize and track tasks by release or sprint. This tool retrieves all milestones in a project.
Note: Returns compact response with essential fields only.
URL Pattern Recognition: When given a Dooray URL like "https://nhnent.dooray.com/task/PROJECT_ID", extract the PROJECT_ID (the first numeric ID after "/task/") and use it as the projectId parameter.
Examples:
Get all milestones: {"projectId": "123456"}
Get only open milestones: {"projectId": "123456", "status": "open"}
Get only closed milestones: {"projectId": "123456", "status": "closed"}
Returns an array of milestones with id, name, description, dates, and status. Use milestone IDs when creating or updating tasks.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | Project ID to get milestones from | |
| status | No | Filter by milestone status (open or closed) |
Implementation Reference
- The main handler function for the 'get-milestone-list' tool. It fetches milestones for a given projectId (optionally filtered by status) using the projects API, applies a filter for compact response, and returns the JSON stringified list or an error message.export async function getMilestoneListHandler(args: GetMilestoneListInput) { try { const result = await projectsApi.getMilestones({ projectId: args.projectId, status: args.status, }); // Filter to compact response to reduce token usage (result is Milestone[], not paginated) const compactResult = result.map(filterMilestoneForList); return { content: [ { type: 'text', text: JSON.stringify(compactResult, null, 2), }, ], }; } catch (error) { return { content: [ { type: 'text', text: `Error: ${formatError(error)}`, }, ], isError: true, }; } }
- Zod schema for input validation of the get-milestone-list tool, defining projectId as required string and status as optional enum.export const getMilestoneListSchema = z.object({ projectId: z.string().describe('Project ID'), status: z.enum(['open', 'closed']).optional().describe('Filter by milestone status'), });
- src/tools/projects/get-milestone-list.ts:49-81 (registration)Tool definition object exported for registration, including name, detailed description, and JSON schema for input (used in MCP tool listing).export const getMilestoneListTool = { name: 'get-milestone-list', description: `Get list of milestones for a project. Milestones are used to organize and track tasks by release or sprint. This tool retrieves all milestones in a project. **Note**: Returns compact response with essential fields only. **URL Pattern Recognition**: When given a Dooray URL like "https://nhnent.dooray.com/task/PROJECT_ID", extract the PROJECT_ID (the first numeric ID after "/task/") and use it as the projectId parameter. Examples: - Get all milestones: {"projectId": "123456"} - Get only open milestones: {"projectId": "123456", "status": "open"} - Get only closed milestones: {"projectId": "123456", "status": "closed"} Returns an array of milestones with id, name, description, dates, and status. Use milestone IDs when creating or updating tasks.`, inputSchema: { type: 'object', properties: { projectId: { type: 'string', description: 'Project ID to get milestones from', }, status: { type: 'string', enum: ['open', 'closed'], description: 'Filter by milestone status (open or closed)', }, }, required: ['projectId'], }, };
- src/index.ts:57-57 (registration)Registration of the tool in the central toolRegistry map, mapping name to its handler and Zod schema for execution.'get-milestone-list': { handler: getMilestoneListHandler, schema: getMilestoneListSchema },
- src/index.ts:80-80 (registration)Inclusion of the tool definition in the tools array used for listing available tools in MCP.getMilestoneListTool,