Skip to main content
Glama

update_jira_issue

Modify existing JIRA issues by updating specific fields such as summary, description, assignee, or custom fields without altering unprovided data.

Instructions

Updates an existing JIRA issue. Only provided fields will be updated.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
additional_fieldsNo
assigneeNo
descriptionNo
issue_keyYes
issue_typeNo
site_aliasNo
summaryNo

Implementation Reference

  • MCP tool handler and registration for 'update_jira_issue'. Handles input validation via type hints, calls the core helper function, manages errors, logging, and formats the MCP TextContent response.
    @mcp_server.tool( name="update_jira_issue", description="Updates an existing JIRA issue. Only provided fields will be updated.", ) def update_jira_issue_tool( issue_key: str, # Required - which issue to update summary: str = None, description: str = None, # This will be Markdown input issue_type: str = None, site_alias: str = None, assignee: str = None, additional_fields: Dict[str, Any] = None # For future flexibility ) -> types.TextContent: """ Update an existing JIRA issue with markdown description converted to ADF. Only provided (non-None) fields will be updated. """ logger.debug( f"update_jira_issue_tool received: issue_key={issue_key}, summary={summary is not None}, " f"description={description is not None}, issue_type={issue_type}, site_alias={site_alias}, " f"assignee={assignee}, additional_fields_present={additional_fields is not None}" ) try: # Call the business logic function directly result = jira_tools.update_jira_issue( issue_key=issue_key, summary=summary, description=description, issue_type=issue_type, site_alias=site_alias, assignee=assignee, additional_fields=additional_fields, server_config=config ) logger.info(f"JIRA issue update result: {result}") issue_key_result = result.get('key') updated_fields = result.get('updated_fields', []) browse_url = result.get('url', "N/A") return types.TextContent( type="text", text=f"Successfully updated JIRA issue: {issue_key_result}. Updated fields: {', '.join(updated_fields)}. URL: {browse_url}", format="text/plain" ) except JiraServiceError as e: logger.error(f"JiraServiceError in update_jira_issue_tool: {e}", exc_info=True) return types.TextContent( type="text", text=f"Error updating JIRA issue: {e}", format="text/plain" ) except Exception as e: logger.error(f"Unexpected error in update_jira_issue_tool: {e}", exc_info=True) return types.TextContent( type="text", text=f"An unexpected error occurred: {e}", format="text/plain" )
  • Core business logic implementation of updating a JIRA issue. Resolves site configuration, instantiates JiraClient, calls update_issue method (which handles ADF conversion for description), and returns result.
    def update_jira_issue( issue_key: str, summary: Optional[str] = None, description: Optional[str] = None, issue_type: Optional[str] = None, site_alias: Optional[str] = None, assignee: Optional[str] = None, additional_fields: Optional[Dict[str, Any]] = None, server_config: Optional[ServerConfig] = None ) -> Dict[str, Any]: """ Update an existing JIRA issue. Only provided fields will be updated. Args: issue_key: The issue key to update (e.g., 'ABC-123') summary: Optional new summary description: Optional new description in markdown format issue_type: Optional new issue type site_alias: Optional site alias for multi-site configurations assignee: Optional new assignee email address additional_fields: Optional dict of additional JIRA fields to update server_config: Server configuration object Returns: Dict containing updated issue information (key, updated_fields, url) Raises: JiraServiceError: If issue update fails """ try: # Get active JIRA site configuration active_site_config = get_active_jira_config(alias=site_alias, server_config=server_config) # Create JiraClient instance jira_client = JiraClient(site_config=active_site_config) # Update the issue result = jira_client.update_issue( issue_key=issue_key, summary=summary, description=description, # Will be converted to ADF by JiraClient if provided issue_type=issue_type, assignee=assignee, **(additional_fields or {}) ) return result except JiraServiceError: # Re-raise JiraServiceError as-is raise except Exception as e: # Wrap unexpected errors raise JiraServiceError(f"Unexpected error updating JIRA issue: {e}")

Other Tools

Related Tools

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/codingthefuturewithai/mcp_jira'

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