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.
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "backlog_get_issues"
}
}Input 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", }, }, }, }; }