Skip to main content
Glama
devlimelabs

MCP Environment & Installation Manager

by devlimelabs

delete-profile

Remove a configuration profile from the MCP Environment & Installation Manager, including its environment variables and settings.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
profileIdYesProfile ID to delete
forceNoForce deletion even if active

Implementation Reference

  • Registers the 'delete-profile' MCP tool with input schema and handler function. Handler validates profileId, checks if it's the active profile (unless force=true), calls ConfigService.deleteProfile, returns success JSON.
    server.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)
            }
          ]
        };
      }
    );
  • Core deletion logic in ConfigService: filters profile from profiles array, nullifies activeProfile if matching, saves profiles config to disk, deletes the profile's environment variables from encrypted Conf store.
    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);
    }
  • src/server.ts:32-32 (registration)
    During MCP server initialization, calls registerProfileTools to attach profile tools (including delete-profile) to the server.
    registerProfileTools(server, configService);

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/devlimelabs/mcp-env-manager-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server