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
| Name | Required | Description | Default |
|---|---|---|---|
| profileId | Yes | Profile ID to export environment variables from | |
| format | Yes | Export format (dotenv, json, or shell) |
Implementation Reference
- src/tools/environment-tools.ts:184-244 (handler)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, "'\\''")}'`; }