Skip to main content
Glama

create_new_issue

Create new issues in Redmine project management systems to track tasks, bugs, or feature requests with project assignment, priority levels, and descriptions.

Instructions

建立新的 Redmine 議題 Args: project_id: 專案 ID subject: 議題標題 description: 議題描述(可選) tracker_id: 追蹤器 ID(與 tracker_name 二選一) tracker_name: 追蹤器名稱(與 tracker_id 二選一) priority_id: 優先級 ID(與 priority_name 二選一) priority_name: 優先級名稱(與 priority_id 二選一) assigned_to_id: 指派給的用戶 ID(與 assigned_to_name/assigned_to_login 三選一) assigned_to_name: 指派給的用戶姓名(與 assigned_to_id/assigned_to_login 三選一) assigned_to_login: 指派給的用戶登入名(與 assigned_to_id/assigned_to_name 三選一) Returns: 建立結果訊息

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
project_idYes
subjectYes
descriptionNo
tracker_idNo
tracker_nameNo
priority_idNo
priority_nameNo
assigned_to_idNo
assigned_to_nameNo
assigned_to_loginNo

Implementation Reference

  • The core handler function for the 'create_new_issue' tool. Decorated with @mcp.tool() for MCP registration. Resolves optional parameters by name to IDs using client helpers, creates the issue via Redmine client, fetches the new issue details, and returns a formatted success message with error handling.
    @mcp.tool() def create_new_issue(project_id: int, subject: str, description: str = "", tracker_id: int = None, tracker_name: str = None, priority_id: int = None, priority_name: str = None, assigned_to_id: int = None, assigned_to_name: str = None, assigned_to_login: str = None) -> str: """ 建立新的 Redmine 議題 Args: project_id: 專案 ID subject: 議題標題 description: 議題描述(可選) tracker_id: 追蹤器 ID(與 tracker_name 二選一) tracker_name: 追蹤器名稱(與 tracker_id 二選一) priority_id: 優先級 ID(與 priority_name 二選一) priority_name: 優先級名稱(與 priority_id 二選一) assigned_to_id: 指派給的用戶 ID(與 assigned_to_name/assigned_to_login 三選一) assigned_to_name: 指派給的用戶姓名(與 assigned_to_id/assigned_to_login 三選一) assigned_to_login: 指派給的用戶登入名(與 assigned_to_id/assigned_to_name 三選一) Returns: 建立結果訊息 """ try: if not subject.strip(): return "錯誤: 議題標題不能為空" client = get_client() # 處理追蹤器參數 final_tracker_id = tracker_id if tracker_name: final_tracker_id = client.find_tracker_id_by_name(tracker_name) if not final_tracker_id: return f"找不到追蹤器名稱:「{tracker_name}」\n\n可用追蹤器:\n" + "\n".join([f"- {name}" for name in client.get_available_trackers().keys()]) # 處理優先級參數 final_priority_id = priority_id if priority_name: final_priority_id = client.find_priority_id_by_name(priority_name) if not final_priority_id: return f"找不到優先級名稱:「{priority_name}」\n\n可用優先級:\n" + "\n".join([f"- {name}" for name in client.get_available_priorities().keys()]) # 處理指派用戶參數 final_assigned_to_id = assigned_to_id if assigned_to_name: final_assigned_to_id = client.find_user_id_by_name(assigned_to_name) if not final_assigned_to_id: users = client.get_available_users() return f"找不到用戶姓名:「{assigned_to_name}」\n\n可用用戶(姓名):\n" + "\n".join([f"- {name}" for name in users['by_name'].keys()]) elif assigned_to_login: final_assigned_to_id = client.find_user_id_by_login(assigned_to_login) if not final_assigned_to_id: users = client.get_available_users() return f"找不到用戶登入名:「{assigned_to_login}」\n\n可用用戶(登入名):\n" + "\n".join([f"- {login}" for login in users['by_login'].keys()]) # 建立議題 new_issue_id = client.create_issue( project_id=project_id, subject=subject.strip(), description=description, tracker_id=final_tracker_id, priority_id=final_priority_id, assigned_to_id=final_assigned_to_id ) # 取得建立的議題資訊 new_issue = client.get_issue(new_issue_id) result = f"""新議題建立成功! 議題 ID: #{new_issue_id} 標題: {new_issue.subject} 專案: {new_issue.project.get('name', 'N/A')} 追蹤器: {new_issue.tracker.get('name', 'N/A')} 狀態: {new_issue.status.get('name', 'N/A')} 優先級: {new_issue.priority.get('name', 'N/A')} 指派給: {new_issue.assigned_to.get('name', '未指派') if new_issue.assigned_to else '未指派'}""" if description: result += f"\n\n描述:\n{description}" 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