内容
[](https://mseep.ai/app/azbuilder-mcp-server-terrakube)
# Terrakube MCP 服务器
[](https://smithery.ai/server/@AzBuilder/mcp-server-terrakube)
<br/>
Terrakube 操作的模型上下文协议(MCP)服务器,实现工作区管理、变量处理、模块操作和组织管理。
<a href="https://glama.ai/mcp/servers/@terrakube-io/mcp-server-terrakube">
<img width="380" height="200" src="https://glama.ai/mcp/servers/@terrakube-io/mcp-server-terrakube/badge" alt="Terrakube 服务器 MCP 服务器" />
</a>
## 功能特点
- **全面的 API 集成**:与 Terrakube 的 API 完全集成,实现无缝操作
- **类型安全**:使用 TypeScript 构建,增强类型安全性和开发者体验
- **错误处理**:具有清晰错误消息的强大错误处理
- **环境配置**:通过环境变量进行灵活的配置
- **模块化设计**:有条理的代码结构,便于维护和扩展
## 工具
### 工作区
#### `createWorkspace`
在 Terrakube 中创建新的工作区。
- **输入参数**:
- `name`(字符串):工作区名称
- `organization`(字符串):组织名称
- `description`(可选字符串):工作区描述
- `vcsProviderId`(可选字符串):VCS 提供商 ID
- `vcsRepository`(可选字符串):VCS 仓库名称
- `vcsBranch`(可选字符串):VCS 分支名称
- **返回值**:创建的工作区详情
#### `updateWorkspace`
更新现有工作区。
- **输入参数**:
- `name`(字符串):工作区名称
- `organization`(字符串):组织名称
- `description`(可选字符串):新的工作区描述
- `vcsProviderId`(可选字符串):新的 VCS 提供商 ID
- `vcsRepository`(可选字符串):新的 VCS 仓库名称
- `vcsBranch`(可选字符串):新的 VCS 分支名称
- **返回值**:更新的工作区详情
#### `deleteWorkspace`
删除工作区。
- **输入参数**:
- `name`(字符串):工作区名称
- `organization`(字符串):组织名称
- **返回值**:成功状态
#### `getWorkspace`
获取特定工作区的详情。
- **输入参数**:
- `name`(字符串):工作区名称
- `organization`(字符串):组织名称
- **返回值**:工作区详情
#### `listWorkspaces`
列出组织中的所有工作区。
- **输入参数**:
- `organization`(字符串):组织名称
- **返回值**:工作区详情数组
### 变量
#### `createVariable`
在工作区中创建新的变量。
- **输入参数**:
- `name`(字符串):变量名称
- `organization`(字符串):组织名称
- `workspace`(字符串):工作区名称
- `value`(字符串):变量值
- `description`(可选字符串):变量描述
- `category`(可选字符串):变量类别
- `hcl`(可选布尔值):变量是否为 HCL
- `sensitive`(可选布尔值):变量是否为敏感信息
- **返回值**:创建的变量详情
#### `updateVariable`
更新现有的变量。
- **输入参数**:
- `name`(字符串):变量名称
- `organization`(字符串):组织名称
- `workspace`(字符串):工作区名称
- `value`(字符串):新的变量值
- `description`(可选字符串):新的变量描述
- `category`(可选字符串):新的变量类别
- `hcl`(可选布尔值):变量是否为 HCL
- `sensitive`(可选布尔值):变量是否为敏感信息
- **返回值**:更新的变量详情
#### `deleteVariable`
删除变量。
- **输入参数**:
- `name`(字符串):变量名称
- `organization`(字符串):组织名称
- `workspace`(字符串):工作区名称
- **返回值**:成功状态
#### `getVariable`
获取特定变量的详情。
- **输入参数**:
- `name`(字符串):变量名称
- `organization`(字符串):组织名称
- `workspace`(字符串):工作区名称
- **返回值**:变量详情
#### `listVariables`
列出工作区中的所有变量。
- **输入参数**:
- `organization`(字符串):组织名称
- `workspace`(字符串):工作区名称
- **返回值**:变量详情数组
### 模块
#### `createModule`
创建新的模块。
- **输入参数**:
- `name`(字符串):模块名称
- `organization`(字符串):组织名称
- `provider`(字符串):模块提供商
- `description`(可选字符串):模块描述
- **返回值**:创建的模块详情
#### `updateModule`
更新现有的模块。
- **输入参数**:
- `name`(字符串):模块名称
- `organization`(字符串):组织名称
- `provider`(字符串):模块提供商
- `description`(可选字符串):新的模块描述
- **返回值**:更新的模块详情
#### `deleteModule`
删除模块。
- **输入参数**:
- `name`(字符串):模块名称
- `organization`(字符串):组织名称
- `provider`(字符串):模块提供商
- **返回值**:成功状态
#### `getModule`
获取特定模块的详情。
- **输入参数**:
- `name`(字符串):模块名称
- `organization`(字符串):组织名称
- `provider`(字符串):模块提供商
- **返回值**:模块详情
#### `listModules`
列出组织中的所有模块。
- **输入参数**:
- `organization`(字符串):组织名称
- **返回值**:模块详情数组
### 组织
#### `createOrganization`
创建新的组织。
- **输入参数**:
- `name`(字符串):组织名称
- `description`(可选字符串):组织描述
- **返回值**:创建的组织详情
#### `updateOrganization`
更新现有的组织。
- **输入参数**:
- `name`(字符串):组织名称
- `description`(可选字符串):新的组织描述
- **返回值**:更新的组织详情
#### `deleteOrganization`
删除组织。
- **输入参数**:
- `name`(字符串):组织名称
- **返回值**:成功状态
#### `getOrganization`
获取特定组织的详情。
- **输入参数**:
- `name`(字符串):组织名称
- **返回值**:组织详情
#### `listOrganizations`
列出所有组织。
- **返回值**:组织详情数组
## 安装配置
### 环境变量
在根目录中创建 `.env` 文件,并包含以下变量:
```env
TERRAKUBE_API_URL=<您的 Terrakube API 地址>
TERRAKUBE_PAT_TOKEN=<您的个人访问令牌>
```
### 通过 Smithery 安装
通过 [Smithery](https://smithery.ai/server/@AzBuilder/mcp-server-terrakube) 自动安装 Terrakube MCP 服务器:
```bash
npx -y @smithery/cli install @AzBuilder/mcp-server-terrakube --client claude
```
### 开发
1. 克隆仓库:
```bash
git clone https://github.com/azbuilder/terrakube-mcp-server.git
cd terrakube-mcp-server
```
2. 安装依赖:
```bash
npm install
```
3. 构建项目:
```bash
npm run build
```
### 与 Claude Desktop 一起使用
要与 Claude Desktop 一起使用,请在 `claude_desktop_config.json` 中添加以下内容:
```json
{
"mcpServers": {
"terrakube": {
"command": "npx",
"args": [
"-y",
"@terrakube/mcp-server"
],
"env": {
"TERRAKUBE_API_URL": "<您的 API 地址>",
"TERRAKUBE_PAT_TOKEN": "<您的 PAT 令牌>"
}
}
}
}
```