buddypress_list_members
Retrieve BuddyPress community members with search, filtering by user IDs, member types, or exclusions to manage member lists efficiently.
Instructions
List BuddyPress members with optional filters
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| exclude | No | Comma-separated user IDs to exclude | |
| member_type | No | Member type | |
| 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 |
Implementation Reference
- src/index.ts:574-582 (handler)Handler that executes the buddypress_list_members tool by building query parameters from arguments and calling the BuddyPress members API.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:133-143 (schema)Input schema for validating parameters of the buddypress_list_members tool.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:130-144 (registration)Registration of the buddypress_list_members tool in the tools array used for listTools.{ 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:18-46 (helper)Helper function for authenticated API requests to BuddyPress, used by the tool handler.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(); }