mcp-server
Health Gecti
- License — License: Apache-2.0
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Community trust — 25 GitHub stars
Code Gecti
- Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Gecti
- Permissions — No dangerous permissions requested
Bu listing icin henuz AI raporu yok.
A Model Context Protocol server for the tektoncd projects
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.modwhen
building from source
kubectl andko 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 thatkubectl 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 thetekton-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 ingo.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 for build, test, dependency update,
cluster deployment, and debugging instructions. Contributions follow the
process in CONTRIBUTING.md.
The project was proposed and accepted intektoncd/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)
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi