buddypress_list_xprofile_fields
Retrieve extended profile fields from BuddyPress sites to manage user data and customize community profiles.
Instructions
List XProfile fields
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| profile_group_id | No | Filter by field group ID | |
| fetch_field_data | No | Include field data |
Implementation Reference
- src/index.ts:651-656 (handler)Handler that executes the tool logic: constructs query parameters from input (profile_group_id, fetch_field_data) and calls the BuddyPress XProfile fields API endpoint.else if (name === 'buddypress_list_xprofile_fields') { const params = new URLSearchParams(); if (args.profile_group_id) params.append('profile_group_id', String(args.profile_group_id)); if (args.fetch_field_data !== undefined) params.append('fetch_field_data', String(args.fetch_field_data)); result = await buddypressRequest(`/xprofile/fields?${params}`); }
- src/index.ts:315-325 (registration)Tool registration in the tools array, including name, description, and input schema definition.{ name: 'buddypress_list_xprofile_fields', description: 'List XProfile fields', inputSchema: { type: 'object', properties: { profile_group_id: { type: 'number', description: 'Filter by field group ID' }, fetch_field_data: { type: 'boolean', description: 'Include field data' }, }, }, },
- src/index.ts:318-325 (schema)Input schema defining optional parameters: profile_group_id (number) and fetch_field_data (boolean).inputSchema: { type: 'object', properties: { profile_group_id: { type: 'number', description: 'Filter by field group ID' }, fetch_field_data: { type: 'boolean', description: 'Include field data' }, }, }, },
- src/index.ts:18-46 (helper)Shared helper function used by all tools 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(); }