项目简介

Terrakube MCP Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为大型语言模型(LLM)客户端提供与 Terrakube 基础设施管理平台交互的能力。通过该服务器,LLM 客户端可以安全、便捷地管理 Terrakube 中的组织、工作区、模块和变量等资源。

主要功能点

  • 组织管理: 支持创建、查看、更新和删除 Terrakube 组织。
  • 工作区管理: 支持创建、查看、更新和删除 Terrakube 工作区。
  • 模块管理: 支持创建、查看、更新和删除 Terrakube 模块。
  • 变量管理: 支持创建、查看、更新和删除 Terrakube 变量。
  • 全面的 API 集成: 完全集成了 Terrakube API,实现无缝操作。
  • 类型安全: 使用 TypeScript 构建,提供增强的类型安全性和开发体验。
  • 强大的错误处理: 具备完善的错误处理机制,提供清晰的错误消息。
  • 灵活的环境配置: 通过环境变量进行灵活配置。

安装步骤

  1. 克隆仓库

    git clone https://github.com/azbuilder/terrakube-mcp-server.git
    cd terrakube-mcp-server
  2. 安装依赖

    npm install
  3. 构建项目

    npm run build

服务器配置

MCP 客户端需要配置以下 JSON 格式信息以连接 Terrakube MCP Server。

{
  "mcpServers": {
    "terrakube": {  // 服务器名称,可以自定义
      "command": "npx", // 启动命令,npx 用于执行本地或 npm 包
      "args": [  // 启动参数
        "-y",  // npx 参数,自动确认安装包
        "@terrakube/mcp-server" //  执行的 npm 包,这里指向 @terrakube/mcp-server,实际仓库名为 @AzBuilder/mcp-server-terrakube,但根据README的Claude Desktop配置,这里应为 @terrakube/mcp-server。可能存在npm包名和仓库名不一致的情况,或者README配置有误。建议用户尝试 '@AzBuilder/mcp-server-terrakube' 或 '@terrakube/mcp-server'
      ],
      "env": {  // 环境变量
        "TERRAKUBE_API_URL": "<YOUR_API_URL>",  //  Terrakube API 的 URL,例如:https://app.terrakube.io/api/v1
        "TERRAKUBE_PAT_TOKEN": "<YOUR_PAT_TOKEN>"  // Terrakube 个人访问令牌 (Personal Access Token)
      }
    }
  }
}

注意:

  • 请将 '<YOUR_API_URL>' 替换为您的 Terrakube API 地址。
  • 请将 '<YOUR_PAT_TOKEN>' 替换为您的 Terrakube 个人访问令牌。您需要在 Terrakube 控制台中生成个人访问令牌。
  • 'server name' 可以自定义,例如 "terrakube",用于在 MCP 客户端中标识该服务器。
  • 'command' 和 'args' 指定了启动 Terrakube MCP Server 的命令。这里使用 'npx' 运行 '@terrakube/mcp-server' npm 包。 请注意,根据实际情况,您可能需要调整 'args' 中的 npm 包名称,例如尝试 '@AzBuilder/mcp-server-terrakube'。
  • 'env' 中配置了 Terrakube API 访问所需的 'API URL' 和 'PAT_TOKEN' 环境变量。

基本使用方法

  1. 确保 Terrakube MCP Server 已成功安装和配置。
  2. 在支持 MCP 协议的 LLM 客户端(例如 Claude Desktop)中配置上述服务器信息。
  3. LLM 客户端将通过 MCP 协议与 Terrakube MCP Server 通信。
  4. 您可以通过 LLM 客户端,使用自然语言指令调用 Terrakube MCP Server 提供的工具,例如:
    • 列出所有组织
    • 获取指定工作区的详细信息
    • 创建一个新的变量
    • 等等。

具体可用的工具和参数请参考仓库 README.md 文件中 "Tools" 部分的详细描述。

信息

分类

开发者工具