Terraform Cloud MCP Server
Model Context Protocol server providing Terraform Cloud API integration as tools for AI assistants.
Features
This MCP server exposes four main tools for interacting with Terraform Cloud:
- get_run_status: Get current run status and recent runs for a workspace
- list_workspaces: List all workspaces in an organization
- get_workspace_details: Get detailed information about a specific workspace
- get_run_details: Get detailed information about a specific run by its ID
Installation
npm install
npm run build
Configuration
The server reads your Terraform Cloud token from ~/.terraform.d/credentials.tfrc.json. Make sure this file exists with the following format:
{
"credentials": {
"app.terraform.io": {
"token": "your-terraform-cloud-token"
}
}
}
Usage
With Claude Desktop
Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"terraform-cloud": {
"command": "node",
"args": ["/absolute/path/to/tf-cloud-mcp-server/build/index.js"]
}
}
}
With MCP Inspector
Test your server with the MCP Inspector:
npx @modelcontextprotocol/inspector node build/index.js
With VS Code
Create a .vscode/mcp.json file in your project:
{
"servers": {
"terraform-cloud": {
"type": "stdio",
"command": "node",
"args": ["/absolute/path/to/tf-cloud-mcp-server/build/index.js"]
}
}
}
Available Tools
get_run_status
Get the current run status for a Terraform Cloud workspace.
Parameters:
workspaceName(string, required): Name of the workspaceorganization(string, optional): Organization name (default: "urbanmedia")
Example:
Get the run status for workspace "capivara-dpa-importer"
list_workspaces
List all workspaces in a Terraform Cloud organization.
Parameters:
organization(string, optional): Organization name (default: "urbanmedia")
Example:
List all workspaces in urbanmedia organization
get_workspace_details
Get detailed information about a specific workspace.
Parameters:
workspaceName(string, required): Name of the workspaceorganization(string, optional): Organization name (default: "urbanmedia")
Example:
Get details for workspace "capivara-dpa-importer"
get_run_details
Get detailed information about a specific Terraform Cloud run by its ID.
Parameters:
runId(string, required): Run ID (e.g., "run-abc123")
Example:
Get details for run "run-abc123"
Development
Project Structure
tf-cloud-mcp-server/
├── src/
│ └── index.ts # Main server implementation
├── build/ # Compiled JavaScript (generated)
├── package.json
├── tsconfig.json
└── README.md
Running in Development
npm run dev # Watch mode for TypeScript compilation
Building
npm run build
License
MIT