Skip to main content
Glama
snowild

Redmine MCP Server

by snowild

close_issue

Close Redmine issues by marking them as completed, optionally adding notes and setting completion percentage. This tool finalizes issue resolution in project management workflows.

Instructions

關閉議題(設定為已完成狀態)

Args:
    issue_id: 議題 ID
    notes: 關閉備註(可選)
    done_ratio: 完成百分比(預設 100%)

Returns:
    關閉結果訊息

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
issue_idYes
notesNo
done_ratioNo

Implementation Reference

  • The close_issue tool handler function. It finds a closed status, updates the issue status, sets the done ratio, adds optional notes, and returns a formatted success message. Registered via @mcp.tool() decorator. The docstring provides the tool schema information.
    @mcp.tool()
    def close_issue(issue_id: int, notes: str = "", done_ratio: int = 100) -> str:
        """
        關閉議題(設定為已完成狀態)
        
        Args:
            issue_id: 議題 ID
            notes: 關閉備註(可選)
            done_ratio: 完成百分比(預設 100%)
        
        Returns:
            關閉結果訊息
        """
        try:
            client = get_client()
            
            # 取得可用狀態列表,尋找關閉狀態
            statuses = client.get_issue_statuses()
            closed_status_id = None
            
            for status in statuses:
                if status.get('is_closed', False):
                    closed_status_id = status['id']
                    break
            
            if closed_status_id is None:
                return "錯誤: 找不到可用的關閉狀態"
            
            # 準備更新資料
            update_data = {
                'status_id': closed_status_id,
                'done_ratio': min(max(done_ratio, 0), 100)
            }
            
            if notes.strip():
                update_data['notes'] = notes.strip()
            
            # 執行更新
            client.update_issue(issue_id, **update_data)
            
            # 取得更新後的議題資訊
            updated_issue = client.get_issue(issue_id)
            
            result = f"""議題關閉成功!
    
    議題: #{issue_id} - {updated_issue.subject}
    狀態: {updated_issue.status.get('name', 'N/A')}
    完成度: {updated_issue.done_ratio}%"""
    
            if notes.strip():
                result += f"\n關閉備註: {notes}"
    
            return result
            
        except RedmineAPIError as e:
            return f"關閉議題失敗: {str(e)}"
        except Exception as e:
            return f"系統錯誤: {str(e)}"

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/snowild/redmine-mcp'

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