Skip to main content
Glama

get_epic_children

Retrieve all child issues and their comments from a JIRA epic to track relationships and analyze project dependencies.

Instructions

Get all child issues in an epic including their comments

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
epicKeyYesThe key of the epic issue

Implementation Reference

  • Core handler function that implements the tool logic: searches for issues linked to the epic using JQL, fetches comments for each child issue, cleans and enriches the data with mentions and related issues, and returns the list.
    async getEpicChildren(epicKey: string): Promise<CleanJiraIssue[]> { const params = new URLSearchParams({ jql: `"Epic Link" = ${epicKey}`, maxResults: "100", fields: [ "id", "key", "summary", "description", "status", "created", "updated", "parent", "subtasks", "customfield_10014", "issuelinks", ].join(","), expand: "names,renderedFields", }); const data = await this.fetchJson<any>(`/rest/api/3/search?${params}`); const issuesWithComments = await Promise.all( data.issues.map(async (issue: any) => { const commentsData = await this.fetchJson<any>( `/rest/api/3/issue/${issue.key}/comment` ); const cleanedIssue = this.cleanIssue(issue); const comments = commentsData.comments.map((comment: any) => this.cleanComment(comment) ); const commentMentions = comments.flatMap( (comment: CleanComment) => comment.mentions ); cleanedIssue.relatedIssues = [ ...cleanedIssue.relatedIssues, ...commentMentions, ]; cleanedIssue.comments = comments; return cleanedIssue; }) ); return issuesWithComments; }
  • Input schema definition for the tool, specifying the required 'epicKey' parameter.
    name: "get_epic_children", description: "Get all child issues in an epic including their comments", inputSchema: { type: "object", properties: { epicKey: { type: "string", description: "The key of the epic issue", }, }, required: ["epicKey"], additionalProperties: false, },
  • src/index.ts:100-113 (registration)
    Tool registration in the ListTools response, including name, description, and schema.
    name: "get_epic_children", description: "Get all child issues in an epic including their comments", inputSchema: { type: "object", properties: { epicKey: { type: "string", description: "The key of the epic issue", }, }, required: ["epicKey"], additionalProperties: false, },
  • MCP CallTool request handler case that validates input, calls the Jira API service method, and formats the response as MCP content.
    case "get_epic_children": { if (!args.epicKey || typeof args.epicKey !== "string") { throw new McpError( ErrorCode.InvalidParams, "Epic key is required", ); } const response = await this.jiraApi.getEpicChildren(args.epicKey); return { content: [ { type: "text", text: JSON.stringify(response, null, 2) }, ], }; }
  • Type definition for CleanJiraIssue, which is the structure returned by the tool (array of these). Includes fields like comments, related issues, etc.
    export interface CleanJiraIssue { id: string; key: string; summary: string | undefined; status: string | undefined; created: string | undefined; updated: string | undefined; description: string; comments?: CleanComment[]; parent?: { id: string; key: string; summary?: string; }; children?: { id: string; key: string; summary?: string; }[]; epicLink?: { id: string; key: string; summary?: string; }; relatedIssues: { key: string; summary?: string; type: "mention" | "link"; relationship?: string; // For formal issue links e.g. "blocks", "relates to" source: "description" | "comment"; commentId?: string; }[]; }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/cosmix/jira-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server