create_sprint
Create a new development sprint in GitHub projects by defining title, description, dates, and linking issues for structured project planning.
Instructions
Create a new development sprint
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| description | Yes | ||
| startDate | Yes | ||
| endDate | Yes | ||
| issueIds | Yes |
Input Schema (JSON Schema)
{
"properties": {
"description": {
"type": "string"
},
"endDate": {
"type": "string"
},
"issueIds": {
"type": "string"
},
"startDate": {
"type": "string"
},
"title": {
"type": "string"
}
},
"required": [
"title",
"description",
"startDate",
"endDate",
"issueIds"
],
"type": "object"
}
Implementation Reference
- Core handler function that executes the create_sprint tool logic. Validates input, constructs Sprint data object, and delegates creation to GitHubSprintRepository.async createSprint(data: { title: string; description: string; startDate: string; endDate: string; issueIds?: string[]; }): Promise<Sprint> { try { // Create data object that matches the expected type const sprintData: Omit<Sprint, "id" | "createdAt" | "updatedAt"> = { title: data.title, description: data.description, startDate: data.startDate, endDate: data.endDate, status: ResourceStatus.PLANNED, issues: data.issueIds?.map(id => id.toString()) || [] }; return await this.sprintRepo.create(sprintData); } catch (error) { throw this.mapErrorToMCPError(error); } }
- Zod schema defining input validation for create_sprint tool arguments, including title, description, dates, and optional issue IDs.// Schema for create_sprint tool export const createSprintSchema = z.object({ title: z.string().min(1, "Sprint title is required"), description: z.string().min(1, "Sprint description is required"), startDate: z.string().datetime("Start date must be a valid ISO date string"), endDate: z.string().datetime("End date must be a valid ISO date string"), issueIds: z.array(z.string()).default([]), }); export type CreateSprintArgs = z.infer<typeof createSprintSchema>;
- src/infrastructure/tools/ToolRegistry.ts:161-161 (registration)Registers the createSprintTool in the central ToolRegistry during initialization.this.registerTool(createSprintTool);
- src/index.ts:295-296 (handler)MCP server dispatch handler that routes create_sprint tool calls to ProjectManagementService.createSprint.case "create_sprint": return await this.service.createSprint(args);
- ToolDefinition object for create_sprint, including name, description, schema reference, and usage examples.export const createSprintTool: ToolDefinition<CreateSprintArgs> = { name: "create_sprint", description: "Create a new development sprint", schema: createSprintSchema as unknown as ToolSchema<CreateSprintArgs>, examples: [ { name: "Create two-week sprint", description: "Create a two-week sprint with initial issues", args: { title: "Sprint 1: User Authentication", description: "First sprint focused on user authentication features", startDate: "2025-06-01T00:00:00Z", endDate: "2025-06-15T00:00:00Z", issueIds: ["101", "102", "103"] } } ] };