Skip to main content
Glama
Terrakube MCP Server

Terrakube MCP Server

by terrakube-io

Terrakube MCP Server

A Model Context Protocol (MCP) server for Terrakube operations, enabling workspace management, variable handling, module operations, and organization management.

Features

  • Comprehensive API Integration: Full integration with Terrakube's API for seamless operations

  • Type Safety: Built with TypeScript for enhanced type safety and developer experience

  • Error Handling: Robust error handling with clear error messages

  • Environment Configuration: Flexible configuration through environment variables

  • Modular Design: Organized code structure for easy maintenance and extension

Related MCP server: Coolify MCP Server

Tools

Workspaces

createWorkspace

Create a new workspace in Terrakube.

  • Inputs:

    • name (string): Name of the workspace

    • organization (string): Organization name

    • description (optional string): Workspace description

    • vcsProviderId (optional string): VCS provider ID

    • vcsRepository (optional string): VCS repository name

    • vcsBranch (optional string): VCS branch name

  • Returns: Created workspace details

updateWorkspace

Update an existing workspace.

  • Inputs:

    • name (string): Name of the workspace

    • organization (string): Organization name

    • description (optional string): New workspace description

    • vcsProviderId (optional string): New VCS provider ID

    • vcsRepository (optional string): New VCS repository name

    • vcsBranch (optional string): New VCS branch name

  • Returns: Updated workspace details

deleteWorkspace

Delete a workspace.

  • Inputs:

    • name (string): Name of the workspace

    • organization (string): Organization name

  • Returns: Success status

getWorkspace

Get details of a specific workspace.

  • Inputs:

    • name (string): Name of the workspace

    • organization (string): Organization name

  • Returns: Workspace details

listWorkspaces

List all workspaces in an organization.

  • Inputs:

    • organization (string): Organization name

  • Returns: Array of workspace details

Variables

createVariable

Create a new variable in a workspace.

  • Inputs:

    • name (string): Name of the variable

    • organization (string): Organization name

    • workspace (string): Workspace name

    • value (string): Variable value

    • description (optional string): Variable description

    • category (optional string): Variable category

    • hcl (optional boolean): Whether the variable is HCL

    • sensitive (optional boolean): Whether the variable is sensitive

  • Returns: Created variable details

updateVariable

Update an existing variable.

  • Inputs:

    • name (string): Name of the variable

    • organization (string): Organization name

    • workspace (string): Workspace name

    • value (string): New variable value

    • description (optional string): New variable description

    • category (optional string): New variable category

    • hcl (optional boolean): Whether the variable is HCL

    • sensitive (optional boolean): Whether the variable is sensitive

  • Returns: Updated variable details

deleteVariable

Delete a variable.

  • Inputs:

    • name (string): Name of the variable

    • organization (string): Organization name

    • workspace (string): Workspace name

  • Returns: Success status

getVariable

Get details of a specific variable.

  • Inputs:

    • name (string): Name of the variable

    • organization (string): Organization name

    • workspace (string): Workspace name

  • Returns: Variable details

listVariables

List all variables in a workspace.

  • Inputs:

    • organization (string): Organization name

    • workspace (string): Workspace name

  • Returns: Array of variable details

Modules

createModule

Create a new module.

  • Inputs:

    • name (string): Name of the module

    • organization (string): Organization name

    • provider (string): Module provider

    • description (optional string): Module description

  • Returns: Created module details

updateModule

Update an existing module.

  • Inputs:

    • name (string): Name of the module

    • organization (string): Organization name

    • provider (string): Module provider

    • description (optional string): New module description

  • Returns: Updated module details

deleteModule

Delete a module.

  • Inputs:

    • name (string): Name of the module

    • organization (string): Organization name

    • provider (string): Module provider

  • Returns: Success status

getModule

Get details of a specific module.

  • Inputs:

    • name (string): Name of the module

    • organization (string): Organization name

    • provider (string): Module provider

  • Returns: Module details

listModules

List all modules in an organization.

  • Inputs:

    • organization (string): Organization name

  • Returns: Array of module details

Organizations

createOrganization

Create a new organization.

  • Inputs:

    • name (string): Name of the organization

    • description (optional string): Organization description

  • Returns: Created organization details

updateOrganization

Update an existing organization.

  • Inputs:

    • name (string): Name of the organization

    • description (optional string): New organization description

  • Returns: Updated organization details

deleteOrganization

Delete an organization.

  • Inputs:

    • name (string): Name of the organization

  • Returns: Success status

getOrganization

Get details of a specific organization.

  • Inputs:

    • name (string): Name of the organization

  • Returns: Organization details

listOrganizations

List all organizations.

  • Returns: Array of organization details

Setup

Environment Variables

Create a .env file in the root directory with the following variables:

TERRAKUBE_API_URL=<your-terrakube-api-url>
TERRAKUBE_PAT_TOKEN=<your-personal-access-token>

Installing via Smithery

To install Terrakube MCP Server for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @AzBuilder/mcp-server-terrakube --client claude

Development

  1. Clone the repository:

    git clone https://github.com/azbuilder/terrakube-mcp-server.git
    cd terrakube-mcp-server
  2. Install dependencies:

    npm install
  3. Build the project:

    npm run build

Usage with Claude Desktop

To use this with Claude Desktop, add the following to your claude_desktop_config.json:

{
  "mcpServers": {
    "terrakube": {
      "command": "npx",
      "args": [
        "-y",
        "@terrakube/mcp-server"
      ],
      "env": {
        "TERRAKUBE_API_URL": "<YOUR_API_URL>",
        "TERRAKUBE_PAT_TOKEN": "<YOUR_PAT_TOKEN>"
      }
    }
  }
}

Available Tools

16 tools
create-moduleC

Creates a new module in the specified organization

Inputs: name (required), organizationId (required), provider (required), registry (required), +1 more.

create-organizationC

Creates a new organization with the specified name and optional description

Inputs: name (required), description.

create-variableC

Creates a new variable in the specified workspace

Inputs: key (required), organizationId (required), value (required), workspaceId (required), +3 more.

create-workspaceC

Creates a new workspace in the specified organization

Inputs: name (required), organizationId (required), terraformVersion (required), description, +2 more.

edit-moduleC

Updates an existing module's details

Inputs: moduleId (required), organizationId (required), description, name, +2 more.

edit-organizationC

Updates an existing organization's details

Inputs: id (required), description, name.

edit-variableC

Updates an existing variable's details

Inputs: organizationId (required), variableId (required), workspaceId (required), category, +4 more.

edit-workspaceC

Updates an existing workspace's details

Inputs: organizationId (required), workspaceId (required), description, name, +3 more.

get-moduleC

Retrieves detailed information about a specific module

Inputs: moduleId (required), organizationId (required).

get-organizationB

Retrieves detailed information about a specific organization by its ID

Inputs: id (required).

get-variableC

Retrieves detailed information about a specific variable

Inputs: organizationId (required), variableId (required), workspaceId (required).

get-workspaceC

Retrieves detailed information about a specific workspace

Inputs: organizationId (required), workspaceId (required).

list-modulesB

Lists all modules in the specified organization

Inputs: organizationId (required).

list-organizationsB

Lists all organizations accessible to the current user

Inputs: no named parameters.

list-variablesB

Lists all variables in the specified workspace

Inputs: organizationId (required), workspaceId (required).

list-workspacesC

Lists all workspaces in the specified organization

Inputs: organizationId (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.6/5.0

    Scored across 16 tools

    Disambiguation5/5

    Every tool has a clearly distinct purpose with no ambiguity, as each combines a specific action (create, edit, get, list) with a specific resource type (module, organization, variable, workspace). The descriptions reinforce this clarity, making misselection unlikely.

    Naming Consistency5/5

    Tool names follow a perfectly consistent verb-noun pattern throughout, using hyphen-separated lowercase (e.g., create-module, edit-organization). All tools adhere to this convention without any deviations or mixed styles.

    Tool Count5/5

    With 16 tools, the count is well-scoped for managing Terraform-like resources (modules, organizations, variables, workspaces). Each tool earns its place by covering CRUD operations across four resource types, avoiding bloat or thinness.

    Completeness5/5

    The tool set provides complete CRUD/lifecycle coverage for the inferred domain of infrastructure management, with create, edit, get, and list operations for all four resource types. There are no obvious gaps or dead ends in the surface.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      D
      maintenance
      A Model Context Protocol (MCP) server that integrates Claude with the Terraform Cloud API, allowing Claude to manage your Terraform infrastructure through natural conversation.
      62
      23
      MIT
    • A
      license
      Not graded
      quality
      A
      maintenance
      A Model Context Protocol server that enables AI assistants to interact with Coolify instances through natural language, allowing management of servers, applications, databases, and deployments.
      2,280 npm
      621
      MIT
    • F
      license
      A
      quality
      D
      maintenance
      A containerized Model Context Protocol server that enables using natural language to develop AWS infrastructure with Terraform, offering best practices guidance, security scanning with Checkov, and access to AWS provider documentation.
      7
      -
    • A
      license
      Not graded
      quality
      D
      maintenance
      A Model Context Protocol server that enables CRUD operations and querying on Microsoft Dataverse through natural language.
      7 npm
      MIT