buddypress_list_members
Retrieve BuddyPress community members with filters for search, member type, user IDs, and pagination to manage and analyze user data.
Instructions
List BuddyPress members with optional filters
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default: 1) | |
| per_page | No | Items per page (default: 20) | |
| search | No | Search term | |
| user_ids | No | Comma-separated user IDs | |
| member_type | No | Member type | |
| exclude | No | Comma-separated user IDs to exclude |
Implementation Reference
- src/index.ts:574-583 (handler)Executes the buddypress_list_members tool by constructing URLSearchParams from input arguments (page, per_page, search, user_ids as include, member_type, exclude) and calling the buddypressRequest helper with GET to /members endpoint.
else if (name === 'buddypress_list_members') { const params = new URLSearchParams(); if (args.page) params.append('page', String(args.page)); if (args.per_page) params.append('per_page', String(args.per_page)); if (args.search) params.append('search', String(args.search)); if (args.user_ids) params.append('include', String(args.user_ids)); if (args.member_type) params.append('member_type', String(args.member_type)); if (args.exclude) params.append('exclude', String(args.exclude)); result = await buddypressRequest(`/members?${params}`); } - src/index.ts:130-144 (registration)Registers the buddypress_list_members tool in the tools array, including name, description, and inputSchema definition used for tool listing and validation.
{ name: 'buddypress_list_members', description: 'List BuddyPress members with optional filters', inputSchema: { type: 'object', properties: { page: { type: 'number', description: 'Page number (default: 1)' }, per_page: { type: 'number', description: 'Items per page (default: 20)' }, search: { type: 'string', description: 'Search term' }, user_ids: { type: 'string', description: 'Comma-separated user IDs' }, member_type: { type: 'string', description: 'Member type' }, exclude: { type: 'string', description: 'Comma-separated user IDs to exclude' }, }, }, }, - src/index.ts:133-143 (schema)Input schema definition for the buddypress_list_members tool, specifying properties for pagination, search, filtering by user IDs, member type, and exclusion.
inputSchema: { type: 'object', properties: { page: { type: 'number', description: 'Page number (default: 1)' }, per_page: { type: 'number', description: 'Items per page (default: 20)' }, search: { type: 'string', description: 'Search term' }, user_ids: { type: 'string', description: 'Comma-separated user IDs' }, member_type: { type: 'string', description: 'Member type' }, exclude: { type: 'string', description: 'Comma-separated user IDs to exclude' }, }, }, - src/index.ts:18-46 (helper)Shared helper function used by all BuddyPress tools, including buddypress_list_members, to make authenticated HTTP requests to the BuddyPress REST API.
async function buddypressRequest( endpoint: string, method: string = 'GET', body?: any ): Promise<any> { const url = `${BUDDYPRESS_URL}/wp-json/buddypress/v2${endpoint}`; const auth = Buffer.from(`${BUDDYPRESS_USERNAME}:${BUDDYPRESS_PASSWORD}`).toString('base64'); const options: any = { method, headers: { 'Authorization': `Basic ${auth}`, 'Content-Type': 'application/json', }, }; if (body && method !== 'GET') { options.body = JSON.stringify(body); } const response = await fetch(url, options); if (!response.ok) { const errorText = await response.text(); throw new Error(`BuddyPress API Error (${response.status}): ${errorText}`); } return await response.json(); }