# Cyclops Model Context Protocol (MCP) Facilitator
This Cyclops MCP component empowers your preferred artificial intelligence entity to govern your cluster's Kubernetes assets. The Cyclops MCP endpoint furnishes the necessary interfaces for agents to safely instantiate and revise extant application definitions.
https://github.com/user-attachments/assets/0c675c33-1e36-4fdb-bf8c-2fd7fb491e6b
Consequently, it possesses the capacity to audit all registered manifest blueprints and their underlying schemas, thereby ensuring the generation of accurate, production-ready deployments. This drastically curtails the propensity for configuration errors by the agent, as it manipulates abstract entities (termed Cyclops Modules) rather than directly modifying granular Kubernetes objects like Deployments, Services, or Ingresses.
This mechanism facilitates accelerated development cycles while guaranteeing that no unscrutinized infrastructural flaws reach the production environment.
**By leveraging Cyclops and its associated MCP, you effectively decouple Kubernetes operational complexity from both human developers and sophisticated AI operators.**
## Deployment via Graphical Interface
The most straightforward method for deploying the Cyclops MCP server is through the Cyclops User Interface (UI).
> ⚠️ To utilize the UI for installing the Cyclops MCP, Cyclops must be operating on version `v0.20.1` or newer.
1. Access the Cyclops MCP installation by navigating the sidebar to `“Addon”` and then selecting `"MCP server"`. Initiate the installation by clicking `"Install Cyclops MCP server"`; the service should be operational within moments.

2. Once the MCP server is live, the subsequent task is making it accessible externally to your cluster and linking your AI agent to it.
To proxy the MCP server locally, execute the following command:
bash
kubectl port-forward -n cyclops svc/cyclops-mcp 8000:8000
Your server endpoint will then be reachable at `localhost:8000`.
3. Connect your AI entity by injecting the Cyclops MCP server address into its configuration parameters. For integration with tools like Cursor, use the following JSON snippet:
bash
{
"mcpServers": {
"cyclops-kubernetes": {
"url": "http://localhost:8000/sse"
}
}
}
You are now prepared to commence interactions with your AI assistant. The preceding example demonstrates integration with Cursor.
Install via stdin Binary Method
### 1. Prerequisite: Cyclops Installation in Kubernetes
Refer to the official documentation for single-command installation instructions: https://cyclops-ui.com/docs/installation/install/manifest
### 2. Fetching the MCP Server Executable
Obtain the Cyclops MCP server binary using this command:
yaml
GOBIN="$HOME/go/bin" go install github.com/cyclops-ui/mcp-cyclops/cmd/mcp-cyclops@latest
### 3. Configuring the MCP Client
> ⚠️ By default, the Cyclops MCP server will leverage the `.kube/config` file for cluster connectivity.
Configure your client to utilize the MCP Cyclops server:
{
"mcpServers": {
"mcp-cyclops": {
"command": "mcp-cyclops"
}
}
}
## Configuration Directives
Configuration of the Cyclops MCP server is managed through environment variables. The subsequent JSON illustrates how to specify an alternate kubeconfig file path for the server's cluster management operations.
{
"mcpServers": {
"mcp-cyclops": {
"command": "mcp-cyclops",
"env": {
"KUBECONFIG": "/path/to/your/kubeconfig"
}
}
}
}
### Environment Variables Reference
| Variable Name | Purpose |
|-----------------------------------|-----------------------------------------------------------------------------------------|
| `KUBECONFIG` | Location of the kubeconfig file (optional; defaults to in-cluster configuration or $HOME/.kube/config) |
| `CYCLOPS_KUBE_CONTEXT` | Specific Kubernetes context to be employed (optional) |
| `CYCLOPS_MODULE_NAMESPACE` | The designated namespace for storing module resources |
| `CYCLOPS_HELM_RELEASE_NAMESPACE` | The namespace designated for hosting Helm release artifacts |
| `CYCLOPS_MODULE_TARGET_NAMESPACE` | The namespace where deployed modules will ultimately reside |
---
Installation Directly into a Kubernetes Cluster
---
To avoid requiring every developer to locally install the `mcp-cyclops` binary, you can deploy the Cyclops MCP server using SSE as the communication transport directly into your Kubernetes cluster, centralizing access for all authorized users.
1. Verify prerequisite installations within your cluster:
1. Confirm Cyclops pods are operational:
shell
kubectl get pods -n cyclops
Expected Output:
NAME READY STATUS RESTARTS AGE
cyclops-ctrl-676b5d9789-ntcls 1/1 Running 0 94s
cyclops-ui-7798655f97-xdg29 1/1 Running 0 94s
2. Check for installed Custom Resource Definitions (CRDs) related to Cyclops:
shell
kubectl get crds | grep cyclops-ui
Expected Output:
modules.cyclops-ui.com 2025-04-26T15:28:18Z
templateauthrules.cyclops-ui.com 2025-04-26T15:28:18Z
templatestores.cyclops-ui.com 2025-04-26T15:28:18Z
2. Deploy the Cyclops MCP server resource using the following manifest command:
bash
kubectl apply -f https://raw.githubusercontent.com/cyclops-ui/mcp-cyclops/refs/heads/main/install/mcp-server.yaml
3. Next, expose the `cyclops-mcp` service. For initial validation, use port-forwarding:
bash
kubectl port-forward svc/cyclops-mcp -n cyclops 8000:8000
4. Update your agent's configuration to point to the exposed MCP service host, or in testing scenarios, the local forwarded address:
{
"mcpServers": {
"mcp-cyclops": {
"url": "http://localhost:8000/sse"
}
}
}
---
## Exposed Agent Interfaces
| Interface Name | Functionality Description |
|-----------------------|------------------------------------------------------------------------------------------------------------------------------------|
| `create_module` | Instantiates a novel Module. Precondition: Execution of `get_template_schema` is mandatory to verify parameter compliance for the target template. |
| `get_module` | Retrieves a Module based on its designated identifier. |
| `list_modules` | Generates a manifest of all active Cyclops Modules. |
| `update_module` | Modifies an existing Module by its Name. Precondition: Execution of `get_template_schema` is mandatory to validate supplied values. |n| `get_template_schema` | Returns the JSON schema definition for a specified template. Crucial validation step before invoking `create_module`. |n| `get_template_store` | Fetches metadata for a specified Template Store resource. |
| `list_template_store` | Enumerates all Template Stores currently present within the cluster. |