AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
MCP verified Apache-2.0 Self-run

Tektoncd Mcp Server

mcp-tektoncd-mcp-server · by tektoncd

A Model Context Protocol server for the tektoncd projects

No reviews yet
0 installs
1 views
0.0% view→install

Install

$ agentstack add mcp-tektoncd-mcp-server

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution Used
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/mcp-tektoncd-mcp-server)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
yesterday

Declared compatibility

Claude CodeClaude DesktopCursorWindsurf

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Tektoncd Mcp Server? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Tekton Model Context Protocol server

Tekton MCP Server exposes Tekton resources to Model Context Protocol (MCP) clients. It currently focuses on tektoncd/pipeline and supports both stdio and Streamable HTTP transports.

> [!IMPORTANT] > This project is under active development. Test it in a non-production cluster > and review the access granted to both the server and the connected MCP client.

Prerequisites

The server needs:

  • access to a Kubernetes cluster with

Tekton Pipelines installed

  • a kubeconfig for local use, or an in-cluster service account when deployed to

Kubernetes

  • Go at the version in [go.mod](./go.mod) when

building from source

kubectl and ko are also required to deploy the manifests from a source checkout.

Build from source

git clone https://github.com/tektoncd/mcp-server.git
cd mcp-server
mkdir -p bin
go build -mod=vendor -o bin/tekton-mcp-server ./cmd/tekton-mcp-server

The server uses the standard Kubernetes client configuration. Confirm that kubectl config current-context points to the intended cluster before running it.

Run locally

stdio

Use stdio when an MCP client starts the server as a subprocess:

./bin/tekton-mcp-server -transport=stdio

A typical MCP client entry looks like this; adapt the surrounding configuration to the client being used:

{
  "mcpServers": {
    "tekton": {
      "command": "/absolute/path/to/bin/tekton-mcp-server",
      "args": ["-transport=stdio"]
    }
  }
}

Streamable HTTP

Bind to localhost for local development:

./bin/tekton-mcp-server -transport=http -address=127.0.0.1:8080

Connect the MCP client to http://127.0.0.1:8080.

Deploy to Kubernetes

Set KO_DOCKER_REPO to a registry accessible to the cluster, then build the image and apply the manifests:

export KO_DOCKER_REPO=registry.example.com/YOUR-USER/mcp-server
ko apply -R -f config/
kubectl -n tekton-mcp rollout status deployment/tekton-mcp-server

For local access to the in-cluster service:

kubectl -n tekton-mcp port-forward service/tekton-mcp-server 8080:8080

ko delete -R -f config/ removes every included resource, including the tekton-mcp namespace and anything else stored in that namespace. Use it only when that destructive cleanup is intended.

Compatibility

The server uses Tekton v1 resources and is built and tested against the Kubernetes, Tekton Pipelines, and MCP Go SDK versions recorded in [go.mod](./go.mod). Until a broader compatibility matrix is published, test the server with the exact cluster versions on which it will run.

Security

The server can read and modify Tekton resources using the permissions of its kubeconfig or service account. Several tools create, patch, start, restart, and delete resources, so use a dedicated least-privilege identity and a disposable namespace while evaluating it.

The HTTP transport does not provide authentication or TLS. Do not expose it to an untrusted network without an authenticating, TLS-terminating proxy. The included development manifests grant cluster-wide permissions and should be reviewed before use on a shared cluster.

Report vulnerabilities privately through the project security policy. Do not open a public issue for a suspected vulnerability.

Development and contributing

See [DEVELOPMENT.md](./DEVELOPMENT.md) for build, test, dependency update, cluster deployment, and debugging instructions. Contributions follow the process in [CONTRIBUTING.md](./CONTRIBUTING.md).

The project was proposed and accepted in tektoncd/community#1194.

Tools

List Operations

list_pipelines – List Pipelines in the Cluster with Filtering Options
  • namespace: Namespace to list Pipelines from (string, required)
  • prefix: Name prefix to filter Pipelines (string, optional)
  • label-selector: Label selector to filter Pipelines (string, optional)
list_pipelineruns – List PipelineRuns in the Cluster with Filtering Options
  • namespace: Namespace to list PipelineRuns from (string, required)
  • prefix: Name prefix to filter PipelineRuns (string, optional)
  • label-selector: Label selector to filter PipelineRuns (string, optional)
list_tasks – List Tasks in the Cluster with Filtering Options
  • namespace: Namespace to list Tasks from (string, required)
  • prefix: Name prefix to filter Tasks (string, optional)
  • label-selector: Label selector to filter Tasks (string, optional)
list_taskruns – List TaskRuns in the Cluster with Filtering Options
  • namespace: Namespace to list TaskRuns from (string, required)
  • prefix: Name prefix to filter TaskRuns (string, optional)
  • label-selector: Label selector to filter TaskRuns (string, optional)
list_stepactions – List Step Actions in the Cluster with Filtering Options
  • namespace: Namespace to list Step Actions from (string, required)
  • prefix: Name prefix to filter Step Actions (string, optional)
  • label-selector: Label selector to filter Step Actions (string, optional)

Create Operations

create_pipeline – Create a new Pipeline from YAML definition
  • namespace: Namespace where the Pipeline will be created (string, optional, default: "default")
  • yaml: YAML definition of the Pipeline (string, required)
create_task – Create a new Task from YAML definition
  • namespace: Namespace where the Task will be created (string, optional, default: "default")
  • yaml: YAML definition of the Task (string, required)
create_pipelinerun – Create a new PipelineRun from YAML definition or generate from Pipeline
  • namespace: Namespace where the PipelineRun will be created (string, optional, default: "default")
  • yaml: YAML definition of the PipelineRun (string, optional)
  • generateName: Generate name prefix for the PipelineRun (string, optional)
create_taskrun – Create a new TaskRun from YAML definition
  • namespace: Namespace where the TaskRun will be created (string, optional, default: "default")
  • yaml: YAML definition of the TaskRun (string, optional)
  • generateName: Generate name prefix for the TaskRun (string, optional)

Get Operations

get_pipeline – Get a specific Pipeline by name
  • name: Name of the Pipeline to get (string, required)
  • namespace: Namespace of the Pipeline (string, optional, default: "default")
  • output: Output format - json or yaml (string, optional, default: "yaml")
get_task – Get a specific Task by name
  • name: Name of the Task to get (string, required)
  • namespace: Namespace of the Task (string, optional, default: "default")
  • output: Output format - json or yaml (string, optional, default: "yaml")
get_pipelinerun – Get a specific PipelineRun by name
  • name: Name of the PipelineRun to get (string, required)
  • namespace: Namespace of the PipelineRun (string, optional, default: "default")
  • output: Output format - json or yaml (string, optional, default: "yaml")
get_taskrun – Get a specific TaskRun by name
  • name: Name of the TaskRun to get (string, required)
  • namespace: Namespace of the TaskRun (string, optional, default: "default")
  • output: Output format - json or yaml (string, optional, default: "yaml")
get_taskrun_logs - Get the logs for a given TaskRun
  • name: Name or reference of the TaskRun to get logs from (string, required)
  • namespace: Namespace where the TaskRun is located (string, optional, default: "default")

Update Operations

update_pipeline – Update an existing Pipeline
  • name: Name of the Pipeline to update (string, required)
  • namespace: Namespace of the Pipeline (string, optional, default: "default")
  • yaml: Updated YAML definition of the Pipeline (string, required)
update_task – Update an existing Task
  • name: Name of the Task to update (string, required)
  • namespace: Namespace of the Task (string, optional, default: "default")
  • yaml: Updated YAML definition of the Task (string, required)
patch_pipeline – Apply a JSON patch to an existing Pipeline
  • name: Name of the Pipeline to patch (string, required)
  • namespace: Namespace of the Pipeline (string, optional, default: "default")
  • patch: JSON patch to apply to the Pipeline (string, required)

Delete Operations

delete_pipeline – Delete a Pipeline
  • name: Name of the Pipeline to delete (string, required)
  • namespace: Namespace of the Pipeline (string, optional, default: "default")
delete_task – Delete a Task
  • name: Name of the Task to delete (string, required)
  • namespace: Namespace of the Task (string, optional, default: "default")
delete_pipelinerun – Delete a PipelineRun
  • name: Name of the PipelineRun to delete (string, required)
  • namespace: Namespace of the PipelineRun (string, optional, default: "default")
delete_taskrun – Delete a TaskRun
  • name: Name of the TaskRun to delete (string, required)
  • namespace: Namespace of the TaskRun (string, optional, default: "default")
delete_all_pipelineruns – Delete multiple PipelineRuns based on selectors
  • namespace: Namespace to delete PipelineRuns from (string, optional, default: "default")
  • labelSelector: Label selector to filter PipelineRuns to delete (string, optional)
  • fieldSelector: Field selector to filter PipelineRuns to delete (string, optional)

Start/Restart Operations

start_pipeline – Start a Pipeline
  • name: Name or reference of the Pipeline to start (string, required)
  • namespace: Namespace where the Pipeline is located (string, optional, default: "default")
start_task – Start a Task
  • name: Name or reference of the Task to start (string, required)
  • namespace: Namespace where the Task is located (string, optional, default: "default")
restart_pipelinerun – Restart a PipelineRun
  • name: Name or reference of the PipelineRun to restart (string, required)
  • namespace: Namespace where the PipelineRun is located (string, optional, default: "default")
restart_taskrun – Restart a TaskRun
  • name: Name or reference of the TaskRun to restart (string, required)
  • namespace: Namespace where the TaskRun is located (string, optional, default: "default")

Artifact Hub Integration

The MCP server provides integration with Artifact Hub to discover, install, and trigger Tekton tasks and pipelines from the community catalog.

Artifact Hub Discovery Operations

list_artifacthub_tasks – List Tekton Tasks from Artifact Hub
  • query: Search query to filter tasks (string, optional)
  • limit: Maximum number of results to return (integer, optional, default: 20)
list_artifacthub_pipelines – List Tekton Pipelines from Artifact Hub
  • query: Search query to filter pipelines (string, optional)
  • limit: Maximum number of results to return (integer, optional, default: 20)

Artifact Hub Installation Operations

install_artifacthub_task – Install a Tekton Task from Artifact Hub
  • packageId: The Artifact Hub package ID of the task to install (string, required)
  • version: Version of the task to install (string, optional)
  • namespace: Namespace where the task will be installed (string, optional, default: "default")
install_artifacthub_pipeline – Install a Tekton Pipeline from Artifact Hub
  • packageId: The Artifact Hub package ID of the pipeline to install (string, required)
  • version: Version of the pipeline to install (string, optional)
  • namespace: Namespace where the pipeline will be installed (string, optional, default: "default")

Artifact Hub Trigger Operations

trigger_artifacthub_task – Trigger a Task installed from Artifact Hub
  • name: Name of the installed task to trigger (string, required)
  • namespace: Namespace where the task is located (string, optional, default: "default")
  • params: Parameters to pass to the task (object, optional)
trigger_artifacthub_pipeline – Trigger a Pipeline installed from Artifact Hub
  • name: Name of the installed pipeline to trigger (string, required)
  • namespace: Namespace where the pipeline is located (string, optional, default: "default")
  • params: Parameters to pass to the pipeline (object, optional)

Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.