apple_create_beta_group
Create beta testing groups for iOS apps to distribute builds, manage testers, and collect feedback through TestFlight.
Instructions
Create a beta group
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | App ID | |
| name | Yes | Group name | |
| isInternalGroup | No | Is internal group (Apple employees) | |
| hasAccessToAllBuilds | No | Auto-enable all new builds | |
| publicLinkEnabled | No | Enable public TestFlight link | |
| publicLinkLimit | No | Max testers via public link | |
| feedbackEnabled | No | Enable feedback |
Implementation Reference
- src/apple/tools.ts:960-987 (handler)The implementation of the `apple_create_beta_group` tool, including its schema definition and the handler that performs the POST request to the App Store Connect API.
const createBetaGroup: ToolDef = { name: 'apple_create_beta_group', description: 'Create a beta group', schema: z.object({ appId: z.string().describe('App ID'), name: z.string().describe('Group name'), isInternalGroup: z.boolean().optional().describe('Is internal group (Apple employees)'), hasAccessToAllBuilds: z.boolean().optional().describe('Auto-enable all new builds'), publicLinkEnabled: z.boolean().optional().describe('Enable public TestFlight link'), publicLinkLimit: z.number().optional().describe('Max testers via public link'), feedbackEnabled: z.boolean().optional().describe('Enable feedback'), }), handler: async (client, args) => { const { appId, ...attributes } = args; return client.request('/betaGroups', { method: 'POST', body: { data: { type: 'betaGroups', attributes, relationships: { app: { data: { type: 'apps', id: appId } }, }, }, }, }); }, }; - src/apple/tools.ts:1213-1252 (registration)Registration of the `createBetaGroup` tool within the `appleTools` array.
export const appleTools: ToolDef[] = [ // App Management listApps, getApp, getAppInfo, updateAppInfoCategory, // Bundle IDs listBundleIds, createBundleId, // Versions & Localizations listVersions, createVersion, listVersionLocalizations, createVersionLocalization, updateVersionLocalization, // App Info Localizations (name, subtitle) listAppInfoLocalizations, updateAppInfoLocalization, // Screenshots listScreenshotSets, createScreenshotSet, uploadScreenshot, deleteScreenshot, // Builds listBuilds, assignBuild, // Age Rating & Review Info getAgeRating, updateAgeRating, updateReviewDetail, // Submission submitForReview, cancelSubmission, // Pricing & Availability getAppPricing, setAppPrice, listTerritoryAvailability, // Customer Reviews listCustomerReviews, respondToReview, // Bundle ID Capabilities listBundleIdCapabilities, enableCapability, disableCapability, // Certificates listCertificates, createCertificate, revokeCertificate, // Provisioning Profiles listProfiles, createProfile, deleteProfile, // Devices listDevices, registerDevice, updateDevice, // TestFlight - Beta Groups listBetaGroups, createBetaGroup, deleteBetaGroup, addBetaTestersToGroup, removeBetaTestersFromGroup, // TestFlight - Beta Testers listBetaTesters, inviteBetaTester, deleteBetaTester, // In-App Purchases listIAP, createIAP, getIAP, deleteIAP, // Subscription Groups listSubscriptionGroups, createSubscriptionGroup, deleteSubscriptionGroup, ];