get-user-groups
Retrieve all user groups in your Zulip organization to manage and organize members effectively using this tool on the Zulip MCP Server.
Instructions
Get all user groups in the organization.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/server.ts:938-954 (handler)MCP tool handler: fetches user groups via ZulipClient, maps response, handles errors, and returns formatted JSON.async () => { try { const result = await zulipClient.getUserGroups(); return createSuccessResponse(JSON.stringify({ group_count: result.user_groups.length, user_groups: result.user_groups.map(group => ({ id: group.id, name: group.name, description: group.description, member_count: group.members.length, is_system_group: group.is_system_group })) }, null, 2)); } catch (error) { return createErrorResponse(`Error getting user groups: ${error instanceof Error ? error.message : 'Unknown error'}`); } }
- src/server.ts:934-937 (registration)MCP tool registration: defines name, description, empty input schema.server.tool( "get-user-groups", "Get all user groups in the organization.", {},
- src/zulip/client.ts:442-445 (helper)ZulipClient helper method: makes API call to /user_groups endpoint.async getUserGroups(): Promise<{ user_groups: ZulipUserGroup[] }> { const response = await this.client.get('/user_groups'); return response.data; }
- src/types.ts:77-86 (schema)Type definition for user groups used in tool response.export interface ZulipUserGroup { id: number; name: string; description: string; members: number[]; direct_subgroup_ids: number[]; is_system_group: boolean; can_manage_group: number; can_mention_group: number; }