search_organization_members
Find organization members in Alibaba Cloud DevOps by searching with department IDs, roles, statuses, or query terms to manage team access and permissions.
Instructions
[Organization Management] Search for organization members
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| organizationId | Yes | Organization ID, can be found in the basic information page of the organization admin console | |
| deptIds | No | Department IDs to search for | |
| query | No | Search query | |
| includeChildren | No | Whether to include sub-departments | |
| nextToken | No | Next token for pagination | |
| roleIds | No | Role IDs to search for | |
| statuses | No | User statuses, posibble values: ENABLED,DISABLED,UNDELETED,DELETED,NORMAL_USING,UNVISITED。ENABLED=NORMAL_USING+UNVISITED;UNDELETED=ENABLED+DISABLED | |
| page | No | Current page number, defaults to 1 | |
| perPage | No | Number of items per page, defaults to 100 |
Implementation Reference
- tool-handlers/organization.ts:72-88 (handler)Tool handler switch case that parses input arguments using SearchOrganizationMembersSchema, calls the searchOrganizationMembersFunc with resolved parameters, and returns the result as a formatted text response.case "search_organization_members": { const args = types.SearchOrganizationMembersSchema.parse(request.params.arguments); const membersResult = await members.searchOrganizationMembersFunc( args.organizationId, args.includeChildren ?? false, args.page ?? 1, args.perPage ?? 100, args.deptIds ?? undefined, args.nextToken ?? undefined, args.query ?? undefined, args.roleIds ?? undefined, args.statuses ?? undefined, ) return { content: [{ type: "text", text: JSON.stringify(membersResult, null, 2)}] } }
- Core implementation function that constructs the API payload for searching organization members and makes a POST request to the members:search endpoint, validates and returns the response.export const searchOrganizationMembersFunc = async ( organizationId: string, includeChildren: boolean = false, page: number = 1, perPage: number = 100, deptIds?: string[], nextToken? : string, query? : string, roleIds? : string[], statuses?: string[], ): Promise<SearchOrganizationMembersResult> => { const url = `/oapi/v1/platform/organizations/${organizationId}/members:search`; const payload: Record<string, any> = { page: page, perPage: perPage }; if (deptIds) { payload.deptIds = deptIds; } if (nextToken) { payload.nextToken = nextToken; } if (query) { payload.query = query; } if (roleIds) { payload.roleIds = roleIds; } if (statuses) { payload.statuses = statuses; } const response = await yunxiaoRequest(url, { method: "POST", body: payload, }); // 验证响应数据结构 return SearchOrganizationMembersResultSchema.parse(response); };
- Zod schemas for input parameters (SearchOrganizationMembersSchema) and result (SearchOrganizationMembersResultSchema) along with TypeScript types for the search_organization_members tool.export const SearchOrganizationMembersSchema = z.object({ organizationId: z.string().describe("Organization ID, can be found in the basic information page of the organization admin console"), deptIds: z.array(z.string()).optional().describe("Department IDs to search for"), query: z.string().optional().describe("Search query"), includeChildren: z.boolean().optional().describe("Whether to include sub-departments"), nextToken: z.string().optional().describe("Next token for pagination"), roleIds: z.array(z.string()).optional().describe("Role IDs to search for"), statuses: z.array(z.string()).optional().describe("User statuses, posibble values: ENABLED,DISABLED,UNDELETED,DELETED,NORMAL_USING,UNVISITED。ENABLED=NORMAL_USING+UNVISITED;UNDELETED=ENABLED+DISABLED"), page: z.number().int().optional().describe("Current page number, defaults to 1"), perPage: z.number().int().optional().describe("Number of items per page, defaults to 100") }); export const SearchOrganizationMembersResultSchema = z.array(MemberInfoSchema); export type SearchOrganizationMembersParams = z.infer<typeof SearchOrganizationMembersSchema>; export type SearchOrganizationMembersResult = z.infer<typeof SearchOrganizationMembersResultSchema>;
- tool-registry/organization.ts:51-55 (registration)Tool registration entry defining the name, description, and input schema for 'search_organization_members' in the organization tools array.{ name: "search_organization_members", description: "[Organization Management] Search for organization members", inputSchema: zodToJsonSchema(types.SearchOrganizationMembersSchema), },