delete-profile
Remove a specific configuration profile from the MCP Environment & Installation Manager. Allows forced deletion of active profiles using the profile ID for streamlined server management.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | Force deletion even if active | |
| profileId | Yes | Profile ID to delete |
Implementation Reference
- src/tools/profile-tools.ts:138-169 (registration)Registration of the 'delete-profile' MCP tool including inline Zod input schema and async handler function that performs validation and delegates to ConfigService.deleteProfileserver.tool( "delete-profile", { profileId: z.string().describe("Profile ID to delete"), force: z.boolean().optional().describe("Force deletion even if active") }, async ({ profileId, force = false }, extra) => { if (!profileId.trim()) { throw new Error("Profile ID cannot be empty"); } const activeProfileId = configService.getActiveProfileId(); if (profileId === activeProfileId && !force) { throw new Error("Cannot delete active profile. Use force=true to override."); } await configService.deleteProfile(profileId); return { content: [ { type: "text", text: JSON.stringify({ success: true, profileId }, null, 2) } ] }; } );
- src/tools/profile-tools.ts:144-167 (handler)The inline async handler for the delete-profile tool. Validates input, prevents deletion of active profile unless forced, calls ConfigService.deleteProfile, and returns JSON success response.async ({ profileId, force = false }, extra) => { if (!profileId.trim()) { throw new Error("Profile ID cannot be empty"); } const activeProfileId = configService.getActiveProfileId(); if (profileId === activeProfileId && !force) { throw new Error("Cannot delete active profile. Use force=true to override."); } await configService.deleteProfile(profileId); return { content: [ { type: "text", text: JSON.stringify({ success: true, profileId }, null, 2) } ] };
- src/tools/profile-tools.ts:140-142 (schema)Zod input schema definition for the delete-profile tool parameters.{ profileId: z.string().describe("Profile ID to delete"), force: z.boolean().optional().describe("Force deletion even if active")
- Core implementation of profile deletion in ConfigService: filters profile from array, clears active flag if applicable, persists changes to disk, and removes associated environment variables.async deleteProfile(id: string): Promise<void> { const initialLength = this.profilesConfig.profiles.length; this.profilesConfig.profiles = this.profilesConfig.profiles.filter(p => p.id !== id); if (this.profilesConfig.profiles.length === initialLength) { throw new Error(`Profile not found: ${id}`); } if (this.profilesConfig.activeProfile === id) { this.profilesConfig.activeProfile = undefined; } await this.saveProfiles(); // Delete environment variables for this profile this.envStore.delete(id); }