Skip to main content
Glama

update_issue

Modify Redmine issue details like subject, description, status, priority, assignee, or add comments to track progress.

Instructions

Updates an issue.

Args:
    issue_id: Issue number
    subject: New subject
    description: New description
    status_id: New status ID
    priority_id: New priority ID
    assigned_to_id: New assignee ID
    notes: Comment

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
issue_idYes
subjectNo
descriptionNo
status_idNo
priority_idNo
assigned_to_idNo
notesNo

Implementation Reference

  • The actual logic that performs the issue update using the redminelib client.
    def update_issue(
        self,
        issue_id: int,
        subject: Optional[str] = None,
        description: Optional[str] = None,
        status_id: Optional[int] = None,
        priority_id: Optional[int] = None,
        assigned_to_id: Optional[int] = None,
        notes: Optional[str] = None,
    ) -> Dict[str, Any]:
        try:
            kwargs: Dict[str, Any] = {}
            if subject is not None:
                kwargs["subject"] = subject
            if description is not None:
                kwargs["description"] = description
            if status_id is not None:
                kwargs["status_id"] = status_id
            if priority_id is not None:
                kwargs["priority_id"] = priority_id
            if assigned_to_id is not None:
                kwargs["assigned_to_id"] = assigned_to_id
            if notes is not None:
                kwargs["notes"] = notes
            self._redmine.issue.update(issue_id, **kwargs)
            return self.get_issue(issue_id)
        except RedmineError:
            raise
        except ResourceNotFoundError:
            raise RedmineError(f"Issue not found: #{issue_id}")
        except (AuthError, ForbiddenError) as e:
            raise RedmineError(f"Authentication failed: {e}") from e
        except Exception as e:
            raise RedmineError(f"update_issue failed: {e}") from e
  • Tool registration and wrapper function for update_issue in the MCP interface.
    @mcp.tool()
    def update_issue(
        issue_id: int,
        subject: Optional[str] = None,
        description: Optional[str] = None,
        status_id: Optional[int] = None,
        priority_id: Optional[int] = None,
        assigned_to_id: Optional[int] = None,
        notes: Optional[str] = None,
    ) -> Dict[str, Any]:
        """Updates an issue.
    
        Args:
            issue_id: Issue number
            subject: New subject
            description: New description
            status_id: New status ID
            priority_id: New priority ID
            assigned_to_id: New assignee ID
            notes: Comment
        """
        logger.info(f"tool=update_issue issue_id={issue_id}")
        try:
            return _client().update_issue(
                issue_id=issue_id,
                subject=subject,
                description=description,
                status_id=status_id,
                priority_id=priority_id,
                assigned_to_id=assigned_to_id,
                notes=notes,
            )
        except RedmineError as e:
            logger.error(f"update_issue error: {e}")
            raise

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/daiji-sshr/redmine-mcp-stateless'

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