list_sprints_from_board
Retrieve all sprints from a specified Jira board. Filter results by start index and maximum count.
Instructions
List sprints from a board
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| boardId | Yes | The ID of the board | |
| maxResults | No | The maximum number of results to return, (max: 100) | |
| startAt | No | The starting index of the returned boards |
Implementation Reference
- The main handler function for the list_sprints_from_board tool. Takes boardId, optional startAt and maxResults, constructs a Jira REST API URL, fetches sprints from the board via the $jiraJson helper, and returns the JSON result.
export async function listSprintsFromBoard(input: ListSprintsFromBoardInput) { const url = new URL( `/rest/agile/1.0/board/${input.boardId}/sprint`, env.JIRA_BASE_URL, ); if (input.startAt) url.searchParams.set("startAt", input.startAt.toString()); if (input.maxResults) url.searchParams.set("maxResults", input.maxResults.toString()); const json = await $jiraJson(url.toString()); if (json.isErr()) return err(json.error); return ok(json.value); } - Zod input schema defining the expected parameters: boardId (string, required), maxResults (number, optional, max 100), startAt (number, optional).
export const listSprintsFromBoardInputSchema = z.object({ boardId: z.string().describe("The ID of the board"), maxResults: z .number() .optional() .describe("The maximum number of results to return, (max: 100)"), startAt: z .number() .optional() .describe("The starting index of the returned boards"), }); - src/tools/list-sprints-from-board.ts:22-28 (registration)Tool definition object (LIST_SPRINTS_FROM_BOARD_TOOL) with name 'list_sprints_from_board', description, and inputSchema converted from Zod schema to JSON Schema format.
export const LIST_SPRINTS_FROM_BOARD_TOOL: Tool = { name: "list_sprints_from_board", description: "List sprints from a board", inputSchema: zodToJsonSchema( listSprintsFromBoardInputSchema, ) as Tool["inputSchema"], }; - src/app.ts:39-48 (registration)Registration of LIST_SPRINTS_FROM_BOARD_TOOL in the tools array that is returned when the server handles ListToolsRequestSchema.
export const tools = [ // list LIST_PROJECTS_TOOL, LIST_BOARDS_TOOL, LIST_SPRINTS_FROM_BOARD_TOOL, LIST_ISSUES_FROM_SPRINT_TOOL, // create CREATE_ISSUE_TOOL, ] satisfies Tool[]; - src/app.ts:142-167 (handler)CallToolRequestSchema handler that routes the 'list_sprints_from_board' tool name, validates input via safeParse, calls listSprintsFromBoard, handles errors, and returns the JSON response.
if (name === LIST_SPRINTS_FROM_BOARD_TOOL.name) { const input = listSprintsFromBoardInputSchema.safeParse(args); if (!input.success) { return { isError: true, content: [{ type: "text", text: "Invalid input" }], }; } const result = await listSprintsFromBoard(input.data); if (result.isErr()) { console.error(result.error.message); return { isError: true, content: [{ type: "text", text: "An error occurred" }], }; } return { content: [ { type: "text", text: JSON.stringify(result.value, null, 2) }, ], }; }