mcp server terrakube
A Model Context Protocol server that enables managing Terrakube infrastructure through natural language, handling workspace management, variables, modules, and organization operations.
A Model Context Protocol server that enables managing Terrakube infrastructure through natural language, handling workspace management, variables, modules, and organization operations.
A Model Context Protocol (MCP) server for Terrakube operations, enabling workspace management, variable handling, module operations, and organization management.
createWorkspaceCreate 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
updateWorkspaceUpdate 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
deleteWorkspaceDelete a workspace.
- Inputs:
- name (string): Name of the workspace
- organization (string): Organization name
- Returns: Success status
getWorkspaceGet details of a specific workspace.
- Inputs:
- name (string): Name of the workspace
- organization (string): Organization name
- Returns: Workspace details
listWorkspacesList all workspaces in an organization.
- Inputs:
- organization (string): Organization name
- Returns: Array of workspace details
createVariableCreate 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
updateVariableUpdate 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
deleteVariableDelete a variable.
- Inputs:
- name (string): Name of the variable
- organization (string): Organization name
- workspace (string): Workspace name
- Returns: Success status
getVariableGet details of a specific variable.
- Inputs:
- name (string): Name of the variable
- organization (string): Organization name
- workspace (string): Workspace name
- Returns: Variable details
listVariablesList all variables in a workspace.
- Inputs:
- organization (string): Organization name
- workspace (string): Workspace name
- Returns: Array of variable details
createModuleCreate 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
updateModuleUpdate 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
deleteModuleDelete a module.
- Inputs:
- name (string): Name of the module
- organization (string): Organization name
- provider (string): Module provider
- Returns: Success status
getModuleGet details of a specific module.
- Inputs:
- name (string): Name of the module
- organization (string): Organization name
- provider (string): Module provider
- Returns: Module details
listModulesList all modules in an organization.
- Inputs:
- organization (string): Organization name
- Returns: Array of module details
createOrganizationCreate a new organization.
- Inputs:
- name (string): Name of the organization
- description (optional string): Organization description
- Returns: Created organization details
updateOrganizationUpdate an existing organization.
- Inputs:
- name (string): Name of the organization
- description (optional string): New organization description
- Returns: Updated organization details
deleteOrganizationDelete an organization.
- Inputs:
- name (string): Name of the organization
- Returns: Success status
getOrganizationGet details of a specific organization.
- Inputs:
- name (string): Name of the organization
- Returns: Organization details
listOrganizationsList all organizations. - Returns: Array of organization details
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>
To install Terrakube MCP Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @AzBuilder/mcp-server-terrakube --client claude
Clone the repository:
git clone https://github.com/azbuilder/terrakube-mcp-server.git
cd terrakube-mcp-server
Install dependencies:
npm install
Build the project:
npm run build
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>"
}
}
}
}