Backlog MCP Server
- src
/**
* Types for the Backlog MCP server
*/
// Auth configuration
export interface AuthConfig {
apiKey: string;
spaceUrl: string;
}
// Backlog Project type
export interface BacklogProject {
id: number;
projectKey: string;
name: string;
chartEnabled: boolean;
useResolvedForChart: boolean;
subtaskingEnabled: boolean;
projectLeaderCanEditProjectLeader: boolean;
useWiki: boolean;
useFileSharing: boolean;
useWikiTreeView: boolean;
useSubversion: boolean;
useGit: boolean;
useOriginalImageSizeAtWiki: boolean;
textFormattingRule: string;
archived: boolean;
displayOrder: number;
useDevAttributes: boolean;
}
// Recently viewed project response
export interface RecentlyViewedProject {
project: BacklogProject;
updated: string;
}
// Backlog Error response
export interface BacklogError {
errors: Array<{
message: string;
code: number;
moreInfo: string;
}>;
}
// Backlog user information
export interface BacklogUser {
id: number;
userId: string;
name: string;
roleType: number;
lang: string;
mailAddress: string;
nulabAccount: {
nulabId: string;
name: string;
uniqueId: string;
};
}
// Backlog space information
export interface BacklogSpace {
spaceKey: string;
name: string;
ownerId: number;
lang: string;
timezone: string;
reportSendTime: string;
textFormattingRule: string;
created: string;
updated: string;
}
// Backlog issue information
export interface BacklogIssue {
id: number;
projectId: number;
issueKey: string;
keyId: number;
issueType: {
id: number;
projectId: number;
name: string;
color: string;
displayOrder: number;
};
summary: string;
description: string;
priority: {
id: number;
name: string;
};
status: {
id: number;
name: string;
};
assignee: {
id: number;
name: string;
roleType: number;
userId: string;
} | null;
category: {
id: number;
name: string;
}[];
versions: {
id: number;
name: string;
}[];
milestone: {
id: number;
name: string;
}[];
startDate: string | null;
dueDate: string | null;
estimatedHours: number | null;
actualHours: number | null;
parentIssueId: number | null;
createdUser: {
id: number;
userId: string;
name: string;
};
created: string;
updatedUser: {
id: number;
userId: string;
name: string;
};
updated: string;
customFields: any[];
attachments: any[];
sharedFiles: any[];
stars: any[];
}
// Backlog comment information
export interface BacklogComment {
id: number;
projectId: number;
issueId: number;
content: string;
changeLog: any[] | null;
createdUser: {
id: number;
userId: string;
name: string;
roleType: number;
lang: string;
nulabAccount?: {
nulabId: string;
name: string;
uniqueId: string;
};
mailAddress?: string;
lastLoginTime?: string;
};
created: string;
updated: string;
stars: any[];
notifications: any[];
}
// Backlog comment detail information
export interface BacklogCommentDetail extends BacklogComment {
// 追加のフィールドがある場合はここに定義
}
// Backlog comment count response
export interface BacklogCommentCount {
count: number;
}
// Backlog issue detail with comments
export interface BacklogIssueDetail extends BacklogIssue {
comments: BacklogComment[];
}
// Backlog Wiki page
export interface BacklogWikiPage {
id: number;
projectId: number;
name: string;
content?: string;
tags: BacklogWikiTag[];
attachments?: any[];
sharedFiles?: any[];
stars?: any[];
createdUser: {
id: number;
userId: string;
name: string;
roleType: number;
lang: string;
nulabAccount: {
nulabId: string;
name: string;
uniqueId: string;
};
mailAddress: string;
lastLoginTime: string;
};
created: string;
updatedUser: {
id: number;
userId: string;
name: string;
roleType: number;
lang: string;
nulabAccount: {
nulabId: string;
name: string;
uniqueId: string;
};
mailAddress: string;
lastLoginTime: string;
};
updated: string;
}
// Backlog Wiki tag
export interface BacklogWikiTag {
id: number;
name: string;
}