Tekton Results MCP服务器
工具
清单的操作
pipelinerun_list –使用过滤选项列出Tekton结果中的流水线运行
namespace:用于列出PipelineRuns的命名空间(字符串,可选,默认值:当前kubeconfig命名空间;使用-对于所有命名空间)labelSelector:用于筛选PipelineRun的标签选择器(字符串,可选,逗号分隔key=value成对)prefix:用于筛选PipelineRun的名称前缀(字符串,可选)limit:要返回的最大结果数(整数,可选,范围:1-200,默认值:50)
taskrun_list –使用筛选选项从Tekton结果中列出任务运行
namespace:用于列出TaskRuns的命名空间(字符串,可选,默认值:当前kubeconfig命名空间;使用-对于所有命名空间)labelSelector:筛选TaskRun的标签选择器(字符串,可选,逗号分隔key=value成对)prefix:筛选TaskRun的名称前缀(字符串,可选)limit:要返回的最大结果数(整数,可选,范围:1-200,默认值:50)
获取操作
pipelinerun_get –按名称或过滤器获取特定的PipelineRun
name:要获取的PipelineRun的名称(字符串,可选)namespace:PipelineRun的命名空间(字符串,可选,默认值:当前kubeconfig命名空间;使用-对于所有命名空间)labelSelector:用于筛选PipelineRun的标签选择器(字符串,可选,逗号分隔key=value成对)prefix:用于筛选PipelineRun的名称前缀(字符串,可选)uid:精确的PipelineRun UID(字符串,可选)。Tekton Results数据库中的唯一标识符。这是找到特定跑步的最有效方法。output:返回格式为json或yaml(字符串,可选,默认:“yaml”)selectLast:如果为true,当多个运行与过滤器匹配时,自动选择最近的匹配项(布尔值,可选,默认值:true)。当为false时,如果找到多个匹配项,则返回错误。有用,因为运行名称在Tekton Results历史记录中不是唯一的。
taskrun_get –按名称或筛选器获取特定的TaskRun
name:要获取的TaskRun的名称(字符串,可选)namespace:TaskRun的命名空间(字符串,可选,默认值:当前kubeconfig命名空间;使用-对于所有命名空间)labelSelector:筛选TaskRun的标签选择器(字符串,可选,逗号分隔key=value成对)prefix:筛选TaskRun的名称前缀(字符串,可选)uid:精确的TaskRun UID(字符串,可选)。Tekton Results数据库中的唯一标识符。这是找到特定跑步的最有效方法。output:返回格式为json或yaml(字符串,可选,默认:“yaml”)selectLast:如果为true,当多个运行与过滤器匹配时,自动选择最近的匹配项(布尔值,可选,默认值:true)。当为false时,如果找到多个匹配项,则返回错误。有用,因为运行名称在Tekton Results历史记录中不是唯一的。
日志操作
pipelinerun_logs –获取PipelineRun的日志
name:从中获取日志的PipelineRun的名称(字符串,可选)namespace:PipelineRun所在的命名空间(字符串,可选,默认值:当前kubeconfig命名空间;使用-对于所有命名空间)labelSelector:用于筛选PipelineRun的标签选择器(字符串,可选,逗号分隔key=value成对)prefix:用于筛选PipelineRun的名称前缀(字符串,可选)uid:精确的PipelineRun UID(字符串,可选)。Tekton Results数据库中的唯一标识符。这是找到特定跑步的最有效方法。selectLast:如果为true,当多个运行与过滤器匹配时,自动选择最近的匹配项(布尔值,可选,默认值:true)。当为false时,如果找到多个匹配项,则返回错误。有用,因为运行名称在Tekton Results历史记录中不是唯一的。
注: 此工具从与PipelineRun关联的所有TaskRun中获取日志,按执行顺序按完成时间排序。日志仅在PipelineRun完成后可用。
taskrun_logs –获取TaskRun的日志
name:要从中获取日志的TaskRun的名称(字符串,可选)namespace:TaskRun所在的命名空间(string,可选,默认值:当前kubeconfig命名空间;使用-对于所有命名空间)labelSelector:筛选TaskRun的标签选择器(字符串,可选,逗号分隔key=value成对)prefix:筛选TaskRun的名称前缀(字符串,可选)uid:精确的TaskRun UID(字符串,可选)。Tekton Results数据库中的唯一标识符。这是找到特定跑步的最有效方法。selectLast:如果为true,当多个运行与过滤器匹配时,自动选择最近的匹配项(布尔值,可选,默认值:true)。当为false时,如果找到多个匹配项,则返回错误。有用,因为运行名称在Tekton Results历史记录中不是唯一的。
注: 日志仅在TaskRun完成后可用,甚至可能需要更长的时间,具体取决于记录器配置(缓冲等)。
处理多场比赛 selectLast
使用时 pipelinerun_get, pipelinerun_logs, taskrun_get,或 taskrun_logs,您可能会遇到多个运行与您的过滤器匹配的情况。这通常是因为:
- 在任何给定时间,运行名称在集群上都是唯一的,但在Tekton Results历史记录中不是唯一的
- 相同的PipelineRun/TaskRun名称可以在多个执行中重复使用
- 每个执行都存储有一个唯一的UID,但名称相同
这 selectLast 参数(默认为 true)控制此行为:
随着 selectLast=true (默认):
{
"name": "my-pipeline",
"namespace": "default"
}自动选择最近的运行。
随着 selectLast=false (严格模式):
{
"name": "my-pipeline",
"namespace": "default",
"selectLast": false
}如果找到多个匹配项,则返回错误:
Error: "multiple PipelineRun instances match the filters (default/my-pipeline, default/my-pipeline).
Please refine the filters with an exact name or prefix."为了避免歧义,您可以:
- 使用更具体的名称前缀(例如。,
my-pipeline-abc123而不是my-pipeline) - 添加标签选择器以缩小结果范围
- 使用
selectLast=true自动选取最近的跑步记录
配置
认证
所有工具都依赖于用于启动MCP服务器的集群内或kubeconfig上下文,因此不需要额外的Tekton Results凭据。在集群外运行时,确保kubeconfig上下文可以访问Tekton Results聚合的API。
直接访问Tekton结果
如果您的集群没有公开聚合的API(例如,当您向 tekton-results-api-service),在启动MCP服务器之前设置以下环境变量:
TEKTON_RESULTS_BASE_URL:API服务器的基本主机(例如。,https://localhost:8443).MCP服务器自动附加/apis/results.tekton.dev/v1alpha2.TEKTON_RESULTS_BEARER_TOKEN:根据Tekton Results API进行身份验证的可选承载令牌。如果省略,则使用kubeconfig中的令牌。TEKTON_RESULTS_INSECURE_SKIP_VERIFY:设置为true使用自签名证书时(例如,使用端口转发服务)。
当这些变量未设置时,MCP服务器通过Kubernetes聚合的API端点与Tekton Results通信(/apis/results.tekton.dev).
发展与贡献
检查 贡献.md 导游。
