Skip to content

Commit 8d4c58f

Browse files
authored
add mcp server docs
add mcp server docs
2 parents f696a1c + a135f01 commit 8d4c58f

2 files changed

Lines changed: 145 additions & 0 deletions

File tree

web/docs/mcp/about.md

Lines changed: 140 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
# Cyclops MCP (Model Context Protocol)
2+
3+
Cyclops MCP allows your favorite AI agent to manage your Kubernetes applications. Cyclops MCP servers provide tools for agents to create and update existing applications safely.
4+
5+
![image](https://github.com/user-attachments/assets/f86617e3-712a-4625-9d28-63f078366059)
6+
7+
This means it can check all of your existing templates and the schema of those templates to create accurate and production-ready applications. Your agent now has much less room to make a misconfiguration since it creates high-level resources (Cyclops Modules) instead of touching every line of your Kubernetes resources (Deployments, Services, and Ingresses).
8+
9+
It allows you to move fast and ensure no uncaught misconfigurations are hitting your production.
10+
11+
**With Cyclops and our MCP, you can now abstract Kubernetes complexity from your developers AND your AI agents**
12+
13+
## Install
14+
15+
### 1. Make sure Cyclops is installed in your Kubernetes cluster
16+
17+
Check our docs on how it install it with a single command - https://cyclops-ui.com/docs/installation/install/manifest
18+
19+
### 2. Download MCP server
20+
21+
You can download the Cyclops MCP server binary with the following command:
22+
23+
```yaml
24+
GOBIN="$HOME/go/bin" go install github.com/cyclops-ui/mcp-cyclops/cmd/mcp-cyclops@latest
25+
```
26+
27+
### 3. Add server configuration
28+
29+
> ⚠️ By default, Cyclops MCP will use the `.kube/config` file to connect to your cluster
30+
31+
Configure your MCP Cyclops server:
32+
33+
```json
34+
{
35+
"mcpServers": {
36+
"mcp-cyclops": {
37+
"command": "mcp-cyclops"
38+
}
39+
}
40+
}
41+
```
42+
43+
## Install on a Kubernetes cluster
44+
45+
Instead of having each developer install `mcp-cyclops` binary, you can install the Cyclops MCP server with SSE as transport type to your Kubernetes cluster and allow all of your developers to connect to the same server.
46+
47+
1. Before installing, make sure Cyclops and all its CRDs are installed in your cluster:
48+
1. Check Cyclops pods are running:
49+
50+
```shell
51+
kubectl get pods -n cyclops
52+
```
53+
54+
Should write:
55+
56+
```
57+
NAME READY STATUS RESTARTS AGE
58+
cyclops-ctrl-676b5d9789-ntcls 1/1 Running 0 94s
59+
cyclops-ui-7798655f97-xdg29 1/1 Running 0 94s
60+
```
61+
62+
2. Check if CRDs are installed
63+
64+
```shell
65+
kubectl get crds | grep cyclops-ui
66+
```
67+
68+
Should write:
69+
70+
```
71+
modules.cyclops-ui.com 2025-04-26T15:28:18Z
72+
templateauthrules.cyclops-ui.com 2025-04-26T15:28:18Z
73+
templatestores.cyclops-ui.com 2025-04-26T15:28:18Z
74+
```
75+
76+
2. Install Cyclops MCP server with the following command:
77+
78+
```shell
79+
kubectl apply -f https://raw.githubusercontent.com/cyclops-ui/mcp-cyclops/refs/heads/main/install/mcp-server.yaml
80+
```
81+
82+
3. You can now expose the `cyclops-mcp` service. To test your MCP server, you can port-forward it:
83+
84+
```shell
85+
kubectl port-forward svc/cyclops-mcp -n cyclops 8000:8000
86+
```
87+
88+
4. Add your Cyclops MCP server host, or in case you are testing it, the [localhost](http://localhost) address where you port-forwarded the MCP service:
89+
90+
```json
91+
{
92+
"mcpServers": {
93+
"mcp-cyclops": {
94+
"url": "http://localhost:8000/sse"
95+
}
96+
}
97+
}
98+
```
99+
100+
## Tools
101+
102+
| Tool | Description |
103+
|-----------------------|------------------------------------------------------------------------------------------------------------------------------------|
104+
| `create_module` | Create new Module. Before calling this tool, make sure to call `get_template_schema` to validate values for the given template |
105+
| `get_module` | Fetch Module by name |
106+
| `list_modules` | List all Cyclops Modules |
107+
| `update_module` | Update Module by Name. Before calling this tool, make sure to call `get_template_schema` to validate values for the given template |
108+
| `get_template_schema` | Returns JSON schema for the given template. Needs to be checked before calling `create_module` tool |
109+
| `get_template_store` | Fetch Template Store by Name |
110+
| `list_template_store` | List Template Stores from cluster |
111+
112+
## Configuration
113+
114+
You can configure Cyclops MCP server via env variables. Below is an example of adding the configuration for specifying the kubeconfig file the Cyclops MCP server should use when managing your Cyclops applications.
115+
116+
```json
117+
{
118+
"mcpServers": {
119+
"mcp-cyclops": {
120+
"command": "mcp-cyclops",
121+
"env": {
122+
"KUBECONFIG": "/path/to/your/kubeconfig"
123+
}
124+
}
125+
}
126+
}
127+
128+
```
129+
130+
### Environment variables
131+
132+
Below is the list of environment variables used for configuring your Cyclops MCP server:
133+
134+
| Env var | Description |
135+
|-----------------------------------|-----------------------------------------------------------------------------------------|
136+
| `KUBECONFIG` | Path to kubeconfig file (optional, defaults to in-cluster config or $HOME/.kube/config) |
137+
| `CYCLOPS_KUBE_CONTEXT` | Kubernetes context to use (optional) |
138+
| `CYCLOPS_MODULE_NAMESPACE` | Namespace where modules are stored |
139+
| `CYCLOPS_HELM_RELEASE_NAMESPACE` | Namespace for Helm releases |
140+
| `CYCLOPS_MODULE_TARGET_NAMESPACE` | Target namespace for modules |

web/sidebars.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,11 @@ const sidebars = {
8282
"templates/private_templates",
8383
],
8484
},
85+
{
86+
type: "doc",
87+
label: "Cyclops MCP server",
88+
id: "mcp/about",
89+
},
8590
{
8691
type: "category",
8792
label: "Backstage plugins",

0 commit comments

Comments
 (0)