Skip to main content
Glama

assign_issue

Assign issues to specific users in Redmine by specifying issue ID and user details (ID, name, or login). Add optional notes for clarity and receive confirmation of the assignment.

Instructions

指派議題給用戶 Args: issue_id: 議題 ID user_id: 指派給的用戶 ID(與 user_name/user_login 三選一) user_name: 指派給的用戶姓名(與 user_id/user_login 三選一) user_login: 指派給的用戶登入名(與 user_id/user_name 三選一) notes: 指派備註(可選) Returns: 指派結果訊息

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
issue_idYes
notesNo
user_idNo
user_loginNo
user_nameNo

Implementation Reference

  • The core handler function for the 'assign_issue' MCP tool, decorated with @mcp.tool(). It handles assigning or unassigning a Redmine issue to a user by ID, name, or login, updates the issue via the Redmine client, and returns a formatted success or error message. The schema is inferred from type hints and docstring.
    @mcp.tool() def assign_issue(issue_id: int, user_id: int = None, user_name: str = None, user_login: str = None, notes: str = "") -> str: """ 指派議題給用戶 Args: issue_id: 議題 ID user_id: 指派給的用戶 ID(與 user_name/user_login 三選一) user_name: 指派給的用戶姓名(與 user_id/user_login 三選一) user_login: 指派給的用戶登入名(與 user_id/user_name 三選一) notes: 指派備註(可選) Returns: 指派結果訊息 """ try: client = get_client() # 處理用戶參數 final_user_id = user_id if user_name: final_user_id = client.find_user_id_by_name(user_name) if not final_user_id: users = client.get_available_users() return f"找不到用戶姓名:「{user_name}」\n\n可用用戶(姓名):\n" + "\n".join([f"- {name}" for name in users['by_name'].keys()]) elif user_login: final_user_id = client.find_user_id_by_login(user_login) if not final_user_id: users = client.get_available_users() return f"找不到用戶登入名:「{user_login}」\n\n可用用戶(登入名):\n" + "\n".join([f"- {login}" for login in users['by_login'].keys()]) # 準備更新資料 update_data = {} if final_user_id is not None: update_data['assigned_to_id'] = final_user_id action_text = f"指派給用戶 ID {final_user_id}" else: update_data['assigned_to_id'] = None action_text = "取消指派" if notes.strip(): update_data['notes'] = notes.strip() # 執行更新 client.update_issue(issue_id, **update_data) # 取得更新後的議題資訊 updated_issue = client.get_issue(issue_id) assignee_name = "未指派" if updated_issue.assigned_to: assignee_name = updated_issue.assigned_to.get('name', f"用戶 ID {user_id}") result = f"""議題指派更新成功! 議題: #{issue_id} - {updated_issue.subject} 動作: {action_text} 目前指派給: {assignee_name}""" 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