使用说明

项目简介

mcp-tekton 是一个基于 Model Context Protocol (MCP) 的服务器实现,专注于为 LLM 应用提供 Tekton Pipeline 的上下文信息和操作能力。它允许 LLM 客户端通过标准化的 MCP 协议,安全地访问和操作 Kubernetes 集群中的 Tekton Pipeline 资源,并执行预定义的工具,例如启动 Pipeline。

注意: 该项目目前为概念验证阶段 (proof of concept),可能不适用于生产环境。

主要功能点

  • 资源管理 (Resources):
    • PipelineRun 资源: 将 Kubernetes 集群中的 Tekton PipelineRun 作为 MCP 资源进行托管和管理。
    • 实时同步: 通过 Kubernetes Informer 机制,MCP 服务器能够实时同步 PipelineRun 的状态变化。
    • 数据访问: 允许 LLM 客户端通过 MCP 协议读取 PipelineRun 资源的详细信息 (JSON 格式)。
  • 工具注册与执行 (Tools):
    • 启动 Pipeline 工具: 提供 'start_pipeline' 工具,允许 LLM 客户端通过调用该工具来触发 Tekton Pipeline 的运行。
    • 参数化工具: 'start_pipeline' 工具支持指定 Pipeline 的名称和命名空间作为参数。
  • Prompt 模板 (Prompts):
    • 错误解释 Prompt (未完全实现): 初步定义 'explain_pipeline_error' Prompt,旨在未来支持 LLM 解释 Pipeline 运行错误 (目前功能未完全实现)。

安装步骤

  1. 安装 Go 语言环境: 确保你的开发环境中已安装 Go 语言 (Golang)。
  2. 克隆仓库: 使用 'git clone https://github.com/openshift-pipelines/mcp-tekton' 命令克隆仓库到本地。
  3. 构建服务器: 在仓库根目录下,执行 'go build -o mcp-tekton-server main.go' 命令编译生成可执行文件 'mcp-tekton-server'。

服务器配置

MCP 客户端需要配置以下 JSON 格式的服务器信息以连接到 mcp-tekton 服务器。由于 mcp-tekton 服务器使用 Stdio 作为传输协议,因此配置相对简单。

{
  "serverName": "tekton-mcp-server",  // MCP 服务器名称,客户端可自定义
  "command": "./mcp-tekton-server",     // 启动 MCP 服务器的命令,指向编译生成的可执行文件
  "args": [],                           // 启动参数,当前 mcp-tekton 服务器无需额外参数
  "transport": "stdio"                  // 使用 Stdio 传输协议
}

配置参数说明:

  • 'serverName': 服务器的名称,用于客户端标识,可以自定义。
  • 'command': 启动服务器的命令。假设你在仓库根目录编译并运行服务器,则命令为 './mcp-tekton-server'。请根据实际情况修改可执行文件的路径。
  • 'args': 传递给服务器的命令行参数。mcp-tekton 服务器当前版本不需要任何参数,因此为空数组 '[]'。
  • 'transport': 指定 MCP 客户端与服务器之间的通信协议。mcp-tekton 服务器使用标准输入输出 (stdio) 进行通信,因此设置为 '"stdio"'。

基本使用方法

  1. 启动 MCP 服务器: 在安装步骤中编译生成 'mcp-tekton-server' 后,在终端中运行 './mcp-tekton-server' 命令启动服务器。服务器将监听标准输入,并将响应输出到标准输出。
  2. 配置 MCP 客户端: 在你的 MCP 客户端应用中,根据上述 "服务器配置" 部分的信息,配置连接到 'tekton-mcp-server'。
  3. 客户端与服务器交互: 客户端可以使用 MCP 协议定义的 JSON-RPC 方法与服务器进行交互,例如:
    • 读取 PipelineRun 资源: 客户端可以发送 'mcp.readResource' 请求,指定 PipelineRun 的 URI (例如 'tekton://<namespace>/pipelinerun/<pipelinerun-name>') 来获取 PipelineRun 的详细信息。
    • 调用 'start_pipeline' 工具: 客户端可以发送 'mcp.callTool' 请求,指定工具名称为 'start_pipeline',并在 'arguments' 中提供 'name' (Pipeline 名称) 和 'namespace' (Pipeline 命名空间) 参数,以启动指定的 Tekton Pipeline。

示例: 使用 MCP Inspector (命令行工具) 测试

你可以使用 '@modelcontextprotocol/inspector' 命令行工具来测试 mcp-tekton 服务器 (前提是你已经安装了 Node.js 和 npm)。

  1. 安装 MCP Inspector: 运行 'npm install -g @modelcontextprotocol/inspector' 安装 Inspector 工具。
  2. 运行 Inspector 连接服务器: 在终端中,使用以下命令启动 Inspector 并连接到 mcp-tekton 服务器 (假设 'mcp-tekton-server' 可执行文件在当前目录下):
    npx @modelcontextprotocol/inspector ./mcp-tekton-server
  3. 在 Inspector 中测试功能: Inspector 启动后,你可以使用其命令来测试服务器的资源读取和工具调用功能。例如,你可以尝试读取一个已存在的 PipelineRun 资源,或者调用 'start_pipeline' 工具来启动一个新的 PipelineRun。

注意: 要使 mcp-tekton 服务器正常工作,运行服务器的环境需要能够访问 Kubernetes 集群,通常需要在 Kubernetes 集群内部或配置 kubeconfig 文件以便访问集群。

信息

分类

开发者工具