export-env-vars
Export environment variables from a specified profile in dotenv, json, or shell format using the MCP Environment & Installation Manager. Simplify configuration management and integration workflows.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| format | Yes | Export format (dotenv, json, or shell) | |
| profileId | Yes | Profile ID to export environment variables from |
Implementation Reference
- src/tools/environment-tools.ts:184-244 (handler)The handler function that implements the 'export-env-vars' tool logic: retrieves environment variables for a profile and exports them in the specified format (dotenv, json, or shell), handling descriptions and sensitive values appropriately.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 schema defining the input parameters for the 'export-env-vars' tool: 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/tools/environment-tools.ts:178-245 (registration)Registration of the 'export-env-vars' tool on the MCP server using server.tool(), including name, input schema, and handler reference.server.tool( "export-env-vars", { profileId: z.string().describe("Profile ID to export environment variables from"), format: z.enum(['dotenv', 'json', 'shell']).describe("Export format (dotenv, json, or shell)") }, 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) } ] }; } );
- Helper function to 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 environment variable values for shell export commands, escaping single quotes.function formatShellValue(value: string): string { // Escape single quotes with '\'' pattern return `'${value.replace(/'/g, "'\\''")}'`; }