apple_create_profile
Create Apple provisioning profiles for iOS app development and distribution by specifying name, type, bundle ID, certificates, and devices.
Instructions
Create a provisioning profile
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Profile name | |
| profileType | Yes | Profile type (e.g. IOS_APP_DEVELOPMENT, IOS_APP_STORE) | |
| bundleIdId | Yes | Bundle ID | |
| certificateIds | Yes | Array of certificate IDs | |
| deviceIds | No | Array of device IDs (required for development profiles) |
Implementation Reference
- src/apple/tools.ts:840-861 (handler)The handler function for 'apple_create_profile' which constructs the payload and makes the POST request to the API.
handler: async (client, args) => { const relationships: any = { bundleId: { data: { type: 'bundleIds', id: args.bundleIdId } }, certificates: { data: args.certificateIds.map((id: string) => ({ type: 'certificates', id })) }, }; if (args.deviceIds && args.deviceIds.length > 0) { relationships.devices = { data: args.deviceIds.map((id: string) => ({ type: 'devices', id })) }; } return client.request('/profiles', { method: 'POST', body: { data: { type: 'profiles', attributes: { name: args.name, profileType: args.profileType, }, relationships, }, }, }); }, - src/apple/tools.ts:833-839 (schema)The Zod schema definition for 'apple_create_profile' inputs.
schema: z.object({ name: z.string().describe('Profile name'), profileType: z.string().describe('Profile type (e.g. IOS_APP_DEVELOPMENT, IOS_APP_STORE)'), bundleIdId: z.string().describe('Bundle ID'), certificateIds: z.array(z.string()).describe('Array of certificate IDs'), deviceIds: z.array(z.string()).optional().describe('Array of device IDs (required for development profiles)'), }), - src/apple/tools.ts:830-832 (registration)Registration of the 'apple_create_profile' tool within the ToolDef structure.
const createProfile: ToolDef = { name: 'apple_create_profile', description: 'Create a provisioning profile',