jira_add_comment
Add a comment to a Jira issue by providing its key and the comment text.
Instructions
Add a comment to a Jira issue
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| issueKey | Yes | The Jira issue key | |
| comment | Yes | The comment text to add |
Implementation Reference
- src/index.ts:396-409 (handler)Handler for the jira_add_comment tool. Extracts issueKey and comment from args, calls JiraClient.addComment(), and returns a success message with the comment data.
case 'jira_add_comment': { const comment = await getJiraClient().addComment( args.issueKey as string, args.comment as string ); return { content: [ { type: 'text', text: `Successfully added comment to ${args.issueKey}\n\n${JSON.stringify(comment, null, 2)}`, }, ], }; } - src/index.ts:189-206 (schema)Input schema definition for jira_add_comment tool. Requires 'issueKey' (string) and 'comment' (string).
{ name: 'jira_add_comment', description: 'Add a comment to a Jira issue', inputSchema: { type: 'object', properties: { issueKey: { type: 'string', description: 'The Jira issue key', }, comment: { type: 'string', description: 'The comment text to add', }, }, required: ['issueKey', 'comment'], }, }, - src/index.ts:56-297 (registration)The tool is registered as part of the 'tools' array, which is served via ListToolsRequestSchema handler and dispatched via CallToolRequestSchema switch statement.
const tools: Tool[] = [ { name: 'jira_get_issue', description: 'Get details of a specific Jira issue by its key (e.g., PROJ-123)', inputSchema: { type: 'object', properties: { issueKey: { type: 'string', description: 'The Jira issue key (e.g., PROJ-123)', }, }, required: ['issueKey'], }, }, { name: 'jira_search_issues', description: 'Search for Jira issues using JQL (Jira Query Language). Examples: "project = PROJ AND status = Open", "assignee = currentUser() AND status != Done"', inputSchema: { type: 'object', properties: { jql: { type: 'string', description: 'JQL query string to search for issues', }, maxResults: { type: 'number', description: 'Maximum number of results to return (default: 50)', default: 50, }, }, required: ['jql'], }, }, { name: 'jira_create_issue', description: 'Create a new Jira issue in a specified project', inputSchema: { type: 'object', properties: { projectKey: { type: 'string', description: 'The project key where the issue will be created', }, summary: { type: 'string', description: 'Brief summary/title of the issue', }, description: { type: 'string', description: 'Detailed description of the issue', }, issueType: { type: 'string', description: 'Type of issue (e.g., Bug, Task, Story, Epic)', }, priority: { type: 'string', description: 'Priority level (e.g., High, Medium, Low)', }, assignee: { type: 'string', description: 'Username of the person to assign the issue to', }, labels: { type: 'array', items: { type: 'string', }, description: 'Array of labels to add to the issue', }, components: { type: 'array', items: { type: 'string', }, description: 'Array of component names', }, customFields: { type: 'object', description: 'Map of additional Jira field IDs/keys (e.g., customfield_10211) to include in the fields payload', additionalProperties: true, }, }, required: ['projectKey', 'summary', 'issueType'], }, }, { name: 'jira_update_issue', description: 'Update an existing Jira issue', inputSchema: { type: 'object', properties: { issueKey: { type: 'string', description: 'The Jira issue key to update', }, summary: { type: 'string', description: 'New summary/title for the issue', }, description: { type: 'string', description: 'New description for the issue', }, assignee: { type: 'string', description: 'Username to assign the issue to', }, priority: { type: 'string', description: 'New priority level', }, labels: { type: 'array', items: { type: 'string', }, description: 'New array of labels', }, status: { type: 'string', description: 'New status/workflow state (e.g., "In Progress", "Done")', }, customFields: { type: 'object', description: 'Map of additional Jira field IDs/keys (e.g., customfield_10211) to include in the fields payload', additionalProperties: true, }, }, required: ['issueKey'], }, }, { name: 'jira_add_comment', description: 'Add a comment to a Jira issue', inputSchema: { type: 'object', properties: { issueKey: { type: 'string', description: 'The Jira issue key', }, comment: { type: 'string', description: 'The comment text to add', }, }, required: ['issueKey', 'comment'], }, }, { name: 'jira_get_comments', description: 'Get all comments from a Jira issue', inputSchema: { type: 'object', properties: { issueKey: { type: 'string', description: 'The Jira issue key', }, }, required: ['issueKey'], }, }, { name: 'jira_get_projects', description: 'List all available Jira projects', inputSchema: { type: 'object', properties: {}, }, }, { name: 'jira_get_project', description: 'Get details of a specific Jira project', inputSchema: { type: 'object', properties: { projectKey: { type: 'string', description: 'The project key', }, }, required: ['projectKey'], }, }, { name: 'jira_get_issue_types', description: 'Get available issue types for a project', inputSchema: { type: 'object', properties: { projectKey: { type: 'string', description: 'The project key', }, }, required: ['projectKey'], }, }, { name: 'jira_assign_issue', description: 'Assign a Jira issue to a user', inputSchema: { type: 'object', properties: { issueKey: { type: 'string', description: 'The Jira issue key', }, assignee: { type: 'string', description: 'Username to assign the issue to', }, }, required: ['issueKey', 'assignee'], }, }, { name: 'jira_delete_issue', description: 'Delete a Jira issue permanently', inputSchema: { type: 'object', properties: { issueKey: { type: 'string', description: 'The Jira issue key to delete', }, }, required: ['issueKey'], }, }, { name: 'jira_get_current_user', description: 'Get information about the currently authenticated user', inputSchema: { type: 'object', properties: {}, }, }, ]; - src/jira-client.ts:222-227 (helper)JiraClient.addComment() method. Makes a POST request to /rest/api/2/issue/{issueKey}/comment with the comment body and returns the created JiraComment.
async addComment(issueKey: string, comment: string): Promise<JiraComment> { const response = await this.client.post(`/issue/${issueKey}/comment`, { body: comment }); return response.data; }