Skip to main content
Glama
devlimelabs

MCP Environment & Installation Manager

by devlimelabs

uninstall-mcp

Remove MCP server packages from your environment. Specify a package name to uninstall it, optionally forcing removal even if referenced by configurations.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
packageNameYesPackage name to uninstall
forceNoForce uninstallation even if referenced by configs

Implementation Reference

  • Registration of the 'uninstall-mcp' MCP tool, including input schema (packageName, optional force) and the inline handler function that performs validation, safety checks, uninstallation via PackageManager, and structured response.
    server.tool( "uninstall-mcp", { packageName: z.string().describe("Package name to uninstall"), force: z.boolean().optional().describe("Force uninstallation even if referenced by configs") }, async ({ packageName, force = false }, extra) => { if (!packageName.trim()) { throw new Error("Package name cannot be empty"); } const pkg = packageManager.getInstalledPackage(packageName); if (!pkg) { throw new Error(`Package not installed: ${packageName}`); } // Check if package is used by any configs if (pkg.usedByConfigs.length > 0 && !force) { throw new Error(`Package is used by ${pkg.usedByConfigs.length} configurations. Use force=true to override.`); } const success = await packageManager.uninstallPackage(packageName); return { content: [ { type: "text", text: JSON.stringify({ success, packageName }, null, 2) } ] }; } );
  • PackageManager.uninstallPackage helper method invoked by the tool handler. Executes package manager remove command, cleans up registry entry, returns success boolean.
    async uninstallPackage(packageName: string): Promise<boolean> { const existing = this.getInstalledPackage(packageName); if (!existing) { return false; } try { const packageDir = path.dirname(path.dirname(existing.localPath)); // Uninstall the package const uninstallCmd = `${this.preferredPackageManager} remove ${packageName}`; await exec(uninstallCmd, { cwd: packageDir }); // Remove from registry delete this.registry.packages[packageName]; await this.saveRegistry(); return true; } catch (error) { console.error(`Failed to uninstall package ${packageName}:`, error); return false; } }
  • src/server.ts:33-33 (registration)
    Top-level call to registerInstallationTools function during server initialization, which includes registration of the 'uninstall-mcp' tool.
    registerInstallationTools(server, configService, packageManager);

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