trackmcp
Back to directory
AzBuilder

mcp-server-terrakube

View on GitHub

Model Context Protocol Server for Terrakube

2 stars TypeScriptAI & Machine Learning Updated Sep 23, 2025

Documentation

MseeP.ai Security Assessment Badge

Terrakube MCP Server

smithery badge

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

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:

env
TERRAKUBE_API_URL=
TERRAKUBE_PAT_TOKEN=

Installing via Smithery

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

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

Development

1. Clone the repository:

bash
git clone https://github.com/azbuilder/terrakube-mcp-server.git
   cd terrakube-mcp-server

2. Install dependencies:

bash
npm install

3. Build the project:

bash
npm run build

Usage with Claude Desktop

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

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

Frequently asked questions

What is mcp-server-terrakube?

mcp-server-terrakube is Model Context Protocol Server for Terrakube

How do I install mcp-server-terrakube?

Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

Is mcp-server-terrakube open source?

Yes — it is hosted on GitHub at https://github.com/AzBuilder/mcp-server-terrakube and has 2 stars.

Related MCP tools

Run your own MCP server? See who uses it and what to fix.

Measure it with TrackMCP