Skip to main content
Glama
devlimelabs

MCP Environment & Installation Manager

by devlimelabs

export-env-vars

Export environment variables from a specific profile in dotenv, JSON, or shell format for configuration management and deployment.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
profileIdYesProfile ID to export environment variables from
formatYesExport format (dotenv, json, or shell)

Implementation Reference

  • The main execution logic for the 'export-env-vars' tool. Fetches environment variables for the given profile, formats them according to the specified format (dotenv, json, or shell), and returns a JSON response with the formatted output.
    async ({ profileId, format }, extra) => { if (!profileId.trim()) { throw new Error("Profile ID cannot be empty"); } const profile = configService.getProfile(profileId); if (!profile) { throw new Error(`Profile not found: ${profileId}`); } const envVars = configService.getEnvVars(profileId); let output = ''; if (format === 'dotenv') { // .env format for (const [key, envVar] of Object.entries(envVars)) { // Add comment if description exists if (envVar.description) { output += `# ${envVar.description}\n`; } // Add the variable output += `${key}=${formatDotEnvValue(envVar.value)}\n`; } } else if (format === 'json') { // JSON format const jsonObj: Record<string, string> = {}; for (const [key, envVar] of Object.entries(envVars)) { jsonObj[key] = envVar.value; } output = JSON.stringify(jsonObj, null, 2); } else if (format === 'shell') { // Shell export format for (const [key, envVar] of Object.entries(envVars)) { // Add comment if description exists if (envVar.description) { output += `# ${envVar.description}\n`; } // Add the variable output += `export ${key}=${formatShellValue(envVar.value)}\n`; } } return { content: [ { type: "text", text: JSON.stringify({ profileId, profileName: profile.name, format, output }, null, 2) } ] }; }
  • Zod input schema defining parameters: profileId (string) and format (enum: 'dotenv', 'json', 'shell').
    { profileId: z.string().describe("Profile ID to export environment variables from"), format: z.enum(['dotenv', 'json', 'shell']).describe("Export format (dotenv, json, or shell)") },
  • src/server.ts:31-31 (registration)
    Top-level registration call that invokes the function registering the 'export-env-vars' tool (and other environment tools) on the MCP server.
    registerEnvironmentTools(server, configService);
  • Helper function to properly format environment variable values for .env files, escaping quotes if necessary.
    function formatDotEnvValue(value: string): string { // If value contains spaces, newlines, or quotes, wrap in quotes if (/[\s"']/g.test(value)) { return `"${value.replace(/"/g, '\\"')}"`; } return value; }
  • Helper function to format values for shell export commands, properly escaping single quotes.
    function formatShellValue(value: string): string { // Escape single quotes with '\'' pattern return `'${value.replace(/'/g, "'\\''")}'`; }

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