terraform_output
Read Terraform output values from infrastructure configurations to retrieve deployment details and resource information for infrastructure management.
Instructions
Read Terraform output values
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| directory | Yes | Directory containing Terraform files | |
| name | No | Specific output name (optional, shows all if omitted) |
Implementation Reference
- src/tools/terraform/output.ts:6-24 (handler)The implementation of the terraform_output tool handler.
export async function terraformOutput(args: Record<string, unknown>): Promise<string> { const directory = args.directory as string; if (!directory) throw new Error("Terraform directory is required"); const name = args.name as string | undefined; const tfArgs = ["output", "-json"]; if (name) tfArgs.push(name); try { const { stdout } = await execFileAsync("terraform", tfArgs, { cwd: directory, timeout: 30000, }); const parsed = JSON.parse(stdout); return `Terraform outputs${name ? ` (${name})` : ""}:\n\n${JSON.stringify(parsed, null, 2)}`; } catch (error: any) { throw new Error(`Terraform output failed: ${error.stderr || error.message}`); } } - src/tools/terraform/index.ts:42-53 (schema)The input schema definition for the terraform_output tool.
{ name: "terraform_output", description: "Read Terraform output values", inputSchema: { type: "object" as const, properties: { directory: { type: "string", description: "Directory containing Terraform files" }, name: { type: "string", description: "Specific output name (optional, shows all if omitted)" }, }, required: ["directory"], }, }, - src/tools/terraform/index.ts:77-77 (registration)The registration/dispatch logic for the terraform_output tool within the terraform tools handler.
case "terraform_output": return terraformOutput(a);