
How to add Cyclops MCP to Windsurf
Let AI agents safely create and update Kubernetes applications via Cyclops Modules and templates. Paste the config into ~/.codeium/windsurf/mcp_config.json and restart Windsurf.
Last updated June 14, 2026 · 30★ · stdio · no auth
Windsurf config for Cyclops MCP
GOBIN="$HOME/go/bin" go install github.com/cyclops-ui/mcp-cyclops/cmd/mcp-cyclops@latest{
"mcpServers": {
"cyclops-mcp": {
"command": "mcp-cyclops",
"args": [],
"env": {
"KUBECONFIG": "/path/to/your/kubeconfig"
}
}
}
}Setup steps
- 1Open Windsurf → Cascade → the hammer/MCP icon → Configure (or edit ~/.codeium/windsurf/mcp_config.json).
- 2Paste the Cyclops MCP config below.
- 3Fill in placeholder secrets, then save.
- 4Click Refresh in the MCP panel.
- 5Cyclops MCP's tools become available to Cascade.
Before you start
- A Kubernetes cluster with Cyclops and its CRDs installed
- Cyclops v0.20.1 or greater (for UI-based MCP install)
- A kubeconfig (defaults to in-cluster config or $HOME/.kube/config) for the stdio binary
- Go toolchain (to install the mcp-cyclops binary via 'go install')
What Cyclops MCP can do in Windsurf
create_moduleCreate a new Module. Call get_template_schema first to validate values for the given template.
get_moduleFetch a Module by name.
list_modulesList all Cyclops Modules.
update_moduleUpdate a Module by name. Call get_template_schema first to validate values for the given template.
get_template_schemaReturn the JSON schema for the given template. Must be checked before calling create_module.
get_template_storeFetch a Template Store by name.
list_template_storeList Template Stores from the cluster.
Security
By default the server uses your local .kube/config (or in-cluster config) to connect to your Kubernetes cluster, so it operates with whatever permissions that kubeconfig/context grants. It can create and update workloads in your cluster — scope the credentials and target namespaces appropriately. The SSE deployment exposes the server on a cluster service (port 8000) with no built-in authentication, so restrict network access when exposing it.
Cyclops MCP + Windsurf FAQ
Where is the Windsurf config file?
Windsurf reads MCP servers from ~/.codeium/windsurf/mcp_config.json. Paste the Cyclops MCP config there under the "mcpServers" key and restart the client.
Is Cyclops MCP safe to use with Windsurf?
By default the server uses your local .kube/config (or in-cluster config) to connect to your Kubernetes cluster, so it operates with whatever permissions that kubeconfig/context grants. It can create and update workloads in your cluster — scope the credentials and target namespaces appropriately. The SSE deployment exposes the server on a cluster service (port 8000) with no built-in authentication, so restrict network access when exposing it.
How do I install it?
The recommended way is through the Cyclops UI under Addon > MCP server (requires Cyclops v0.20.1+). You can also install a local stdio binary with 'go install github.com/cyclops-ui/mcp-cyclops/cmd/mcp-cyclops@latest', or deploy it into your cluster with SSE transport via the provided install/mcp-server.yaml manifest.
What transports are supported?
The local binary runs over stdio using your kubeconfig. When installed into a cluster (via the UI or manifest), it runs with SSE transport and is reachable at an http URL such as http://localhost:8000/sse after port-forwarding the cyclops-mcp service.
How does it connect to my cluster?
By default it uses the in-cluster config or your $HOME/.kube/config. You can override this with the KUBECONFIG environment variable and choose a context with CYCLOPS_KUBE_CONTEXT. Namespaces for modules and Helm releases are configurable via CYCLOPS_MODULE_NAMESPACE, CYCLOPS_HELM_RELEASE_NAMESPACE, and CYCLOPS_MODULE_TARGET_NAMESPACE.