backlog_get_issues
Retrieve and filter Backlog issues by project, assignee, status, and more using the Backlog Issues API. Supports pagination, sorting, and date-based searches.
Instructions
Performs list issue get using the Backlog Issues API. Supports pagination, content filtering. Maximum 20 results per request, with offset for pagination.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| assigneeId | No | Assignee ids | |
| count | No | Number of results (1-100, default 20) | |
| createdSince | No | Start date of created date (YYYY-MM-DD format) | |
| createdUntil | No | End date of created date (YYYY-MM-DD format) | |
| keyword | No | Keyword for searching | |
| offset | No | Offset for pagination | |
| order | No | Sort order | desc |
| priorityId | No | Priority ids | |
| projectId | No | Project ids | |
| sort | No | Attribute name for sorting | |
| statusId | No | Status ids |
Implementation Reference
- src/tools/handlers.ts:102-134 (handler)The handleGetIssues function is the core handler for the 'backlog_get_issues' MCP tool. It parses input arguments using IssuesParamsSchema, calls issueService.getIssues to fetch data, formats the response as MCP content blocks, and handles validation and general errors appropriately.const handleGetIssues: ToolHandler = async (args) => { try { try { const validatedParams = IssuesParamsSchema.parse(args); const text = await issueService.getIssues(validatedParams); return { content: [ { type: "text", text: `Results for your query:\n${text}`, }, ], isError: false, }; } catch (validationError) { throw new ValidationError( `Invalid parameters: ${validationError instanceof Error ? validationError.message : String(validationError)}`, ); } } catch (error) { return { content: [ { type: "text", text: `Error: ${formatError(error)}`, }, ], isError: true, }; } };
- src/tools/handlers.ts:442-455 (registration)The toolHandlers export maps the tool name 'backlog_get_issues' to its handler function handleGetIssues, serving as the registration point for the MCP tool.export const toolHandlers: Record<ToolName, ToolHandler> = { backlog_get_projects: handleGetProjects, backlog_get_project: handleGetProject, backlog_get_issues: handleGetIssues, backlog_get_issue: handleGetIssue, backlog_add_issue: handleAddIssue, backlog_update_issue: handleUpdateIssue, backlog_delete_issue: handleDeleteIssue, backlog_get_wikis: handleGetWikis, backlog_get_wiki: handleGetWiki, backlog_add_wiki: handleAddWiki, backlog_update_wiki: handleUpdateWiki, backlog_delete_wiki: handleDeleteWiki, };
- src/tools/toolDefinitions.ts:539-545 (schema)Defines the MCP Tool object for 'backlog_get_issues', including its name, description, and inputSchema derived via convertZodToJsonSchema from the Zod IssuesParamsSchema.export const ISSUES_TOOL: Tool = createTool( "backlog_get_issues", "Performs list issue get using the Backlog Issues API. " + "Supports pagination, content filtering. " + "Maximum 20 results per request, with offset for pagination.", IssuesParamsSchema, );
- src/core/schema.ts:127-131 (schema)Zod schema definition for input parameters of the 'backlog_get_issues' tool, composed from base parameter schemas including pagination, sorting, filtering, dates, entity IDs, conditions, and keywords.export const IssuesParamsSchema = BaseParamsSchema.merge(DateRangeSchema) .merge(EntityIdsSchema) .merge(ConditionSchema) .merge(SortingSchema) .merge(KeywordSchema);
- src/tools/toolDefinitions.ts:68-157 (schema)Custom hardcoded JSON schema for IssuesParamsSchema input validation in the MCP tool definition, providing detailed properties for pagination, sorting, filtering, and more.if (isIssuesParamsSchema) { return { type: "object" as const, properties: { offset: { type: "number", description: "Offset for pagination", default: 0, }, count: { type: "number", description: "Number of results (1-100, default 20)", default: 20, minimum: 1, maximum: 100, }, keyword: { type: "string", description: "Keyword for searching", }, sort: { type: "string", description: "Attribute name for sorting", enum: [ "issueType", "category", "version", "milestone", "summary", "status", "priority", "attachment", "sharedFile", "created", "createdUser", "updated", "updatedUser", "assignee", "startDate", "dueDate", "estimatedHours", "actualHours", "childIssue", ], }, order: { type: "string", description: "Sort order", enum: ["asc", "desc"], default: "desc", }, statusId: { type: "array", description: "Status ids", items: { type: "number", }, }, assigneeId: { type: "array", description: "Assignee ids", items: { type: "number", }, }, createdSince: { type: "string", description: "Start date of created date (YYYY-MM-DD format)", }, createdUntil: { type: "string", description: "End date of created date (YYYY-MM-DD format)", }, priorityId: { type: "array", description: "Priority ids", items: { type: "number", }, }, projectId: { type: "array", description: "Project ids", items: { type: "number", }, }, }, }; }