Skip to main content
Glama

search_users

Search for users by name or login on the Redmine MCP Server. Retrieve a list of matching users with optional limit for results, aiding efficient user management in project systems.

Instructions

搜尋用戶(依姓名或登入名) Args: query: 搜尋關鍵字(姓名或登入名) limit: 最大回傳數量 (預設 10,最大 50) Returns: 符合搜尋條件的用戶列表

Input Schema

NameRequiredDescriptionDefault
limitNo
queryYes

Input Schema (JSON Schema)

{ "properties": { "limit": { "default": 10, "title": "Limit", "type": "integer" }, "query": { "title": "Query", "type": "string" } }, "required": [ "query" ], "title": "search_usersArguments", "type": "object" }

Implementation Reference

  • MCP tool handler function decorated with @mcp.tool(). Searches users via RedmineClient, formats results into a readable table string with ID, login, name, status.
    @mcp.tool() def search_users(query: str, limit: int = 10) -> str: """ 搜尋用戶(依姓名或登入名) Args: query: 搜尋關鍵字(姓名或登入名) limit: 最大回傳數量 (預設 10,最大 50) Returns: 符合搜尋條件的用戶列表 """ try: if not query.strip(): return "請提供搜尋關鍵字" client = get_client() limit = min(max(limit, 1), 50) users = client.search_users(query, limit) if not users: return f"沒有找到匹配「{query}」的用戶" result = f"搜尋關鍵字: '{query}'\n找到 {len(users)} 個相關用戶:\n\n" result += f"{'ID':<5} {'登入名':<15} {'姓名':<20} {'狀態':<8}\n" result += f"{'-'*5} {'-'*15} {'-'*20} {'-'*8}\n" for user in users: full_name = f"{user.firstname} {user.lastname}".strip() if not full_name: full_name = user.login status_text = "啟用" if user.status == 1 else "停用" result += f"{user.id:<5} {user.login:<15} {full_name:<20} {status_text:<8}\n" return result except RedmineAPIError as e: return f"搜尋用戶失敗: {str(e)}" except Exception as e: return f"系統錯誤: {str(e)}"
  • RedmineClient helper method that queries the Redmine API endpoint /users.json with name=query and limit parameters, parses response into list of RedmineUser objects.
    def search_users(self, query: str, limit: int = 10) -> List[RedmineUser]: """搜尋用戶(依姓名或登入名)""" if not query.strip(): return [] params = { 'name': query.strip(), 'limit': min(max(limit, 1), 50) } response = self._make_request('GET', '/users.json', params=params) users = [] for user_data in response.get('users', []): users.append(RedmineUser( id=user_data['id'], login=user_data['login'], firstname=user_data.get('firstname', ''), lastname=user_data.get('lastname', ''), mail=user_data.get('mail', ''), status=user_data.get('status', 1), created_on=user_data.get('created_on'), last_login_on=user_data.get('last_login_on') )) return users

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