Skip to content

Commit a5aa396

Browse files
committed
chore(mcp): remove the mcp
This MCP is unmaintained and old compared with datumctl-mcp so it is time to send this on vacation!
1 parent a5fab73 commit a5aa396

9 files changed

Lines changed: 2 additions & 2140 deletions

File tree

README.md

Lines changed: 0 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ Use `datumctl` to manage your Datum Cloud resources, authenticate securely, and
1212
* **Multi-User Support:** Manage credentials for multiple Datum Cloud user accounts.
1313
* **Resource Management:** Interact with Datum Cloud resources (e.g., list organizations).
1414
* **Kubernetes Integration:** Seamlessly configure `kubectl` to use your Datum Cloud credentials for accessing Kubernetes clusters.
15-
* **MCP Server (optional):** Start an MCP server (`datumctl mcp`) for Datum Cloud so AI agents (e.g., Claude) can discover resources, inspect schemas, validate manifests, and perform CRUD operations via server-side dry-run.
1615
* **Cross-Platform:** Pre-built binaries available for Linux, macOS, and Windows.
1716

1817
## Getting Started
@@ -46,10 +45,6 @@ See the [Installation Guide](https://www.datum.net/docs/quickstart/datumctl/) fo
4645
```
4746
Now you can use `kubectl` to interact with your Datum Cloud control plane.
4847

49-
### MCP Setup
50-
51-
MCP can target either an **organization** or **project** control plane. For maximum flexibility, we recommend starting with an organization context.
52-
5348
**A) If you already have a project:**
5449
```bash
5550
# Ensure your kube context points at an organization control plane
@@ -82,75 +77,6 @@ kubectl wait --for=condition=Ready --timeout=15m project/$PRJ_ID
8277
echo "Project ready: $PRJ_ID"
8378
```
8479

85-
#### MCP subcommand (optional)
86-
87-
Start the Model Context Protocol (MCP) server targeting a specific Datum Cloud context:
88-
```bash
89-
# Exactly one of --organization or --project is required.
90-
datumctl mcp --organization <org-id> --namespace <ns> [--port 8080]
91-
# or
92-
datumctl mcp --project <project-id> --namespace <ns> [--port 8080]
93-
```
94-
95-
##### Available Tools
96-
97-
- **Discovery:** `list_crds`, `get_crd` - Discover and inspect Custom Resource Definitions
98-
- **Validation:** `validate_yaml` - Validate manifests via server-side dry-run
99-
- **Context:** `change_context` - Switch between organization and project contexts
100-
- **CRUD Operations:** `create_resource`, `get_resource`, `update_resource`, `delete_resource`, `list_resources`
101-
- **Safety:** All write operations default to dry-run mode; use `dryRun: false` to apply changes
102-
103-
##### Startup & safety
104-
105-
- **Preflight:** On startup, `datumctl mcp` verifies connectivity and auth by calling Kubernetes discovery (e.g., `GET /version`). If this check fails, the server exits.
106-
- **Dry-run by default:** All write operations use server-side dry-run (`dryRun=true`) by default for safety.
107-
108-
> [!NOTE]
109-
> The MCP server builds its own Kubernetes connection for the selected Datum context; it does **not** depend on your local kubeconfig or `--kube-context`. Provide either `--organization` or `--project`.
110-
111-
##### Scope: organization vs. project
112-
113-
> [!IMPORTANT]
114-
> **Organization scope** provides access to all projects within the organization and allows switching between them using `change_context`.
115-
> **Project scope** provides direct access to project-specific resources but limits visibility to that single project.
116-
117-
**Recommended (organization scope)**
118-
```bash
119-
datumctl mcp --organization <org-id> --namespace <ns> [--port 8080]
120-
```
121-
122-
##### Claude config (macOS)
123-
```json
124-
{
125-
"mcpServers": {
126-
"datum_mcp": {
127-
"command": "/absolute/path/to/datumctl",
128-
"args": ["mcp", "--organization", "your-org-id", "--namespace", "default"]
129-
}
130-
}
131-
}
132-
```
133-
134-
**Project scope (alternative)**
135-
```bash
136-
datumctl mcp --project <project-id> --namespace <ns> [--port 8080]
137-
```
138-
139-
**HTTP debug (if `--port` is set):**
140-
```bash
141-
# List CRDs
142-
curl -s localhost:8080/datum/list_crds | jq
143-
144-
# List resources
145-
curl -s localhost:8080/datum/list_resources -H 'Content-Type: application/json' -d '{"kind":"Project"}' | jq
146-
147-
# Validate a YAML file (wrap safely into JSON)
148-
printf '{"yaml":%s}\n' "$(jq -Rs . </path/to/file.yaml)" | curl -s -X POST localhost:8080/datum/validate_yaml -H 'Content-Type: application/json' -d @- | jq
149-
```
150-
151-
For more detailed tool setup instructions, refer to the official
152-
[Set Up Tools](https://docs.datum.net/docs/tasks/tools/) guide on docs.datum.net.
153-
15480
## Documentation
15581

15682
For comprehensive user and developer guides, including detailed command references and authentication flow explanations, please see the [**Documentation**](./docs/README.md).

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,12 @@ require (
1616
go.miloapis.com/activity v0.3.1
1717
go.miloapis.com/milo v0.21.0
1818
golang.org/x/oauth2 v0.36.0
19-
k8s.io/apiextensions-apiserver v0.35.2
2019
k8s.io/apimachinery v0.35.2
2120
k8s.io/cli-runtime v0.35.2
2221
k8s.io/client-go v0.35.2
2322
k8s.io/component-base v0.35.2
2423
k8s.io/kubectl v0.35.2
2524
sigs.k8s.io/controller-runtime v0.23.3
26-
sigs.k8s.io/yaml v1.6.0
2725
)
2826

2927
require (
@@ -101,6 +99,7 @@ require (
10199
gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect
102100
gopkg.in/inf.v0 v0.9.1 // indirect
103101
k8s.io/api v0.35.2 // indirect
102+
k8s.io/apiextensions-apiserver v0.35.2 // indirect
104103
k8s.io/apiserver v0.35.2 // indirect
105104
k8s.io/component-helpers v0.35.2 // indirect
106105
k8s.io/klog/v2 v2.130.1 // indirect
@@ -113,4 +112,5 @@ require (
113112
sigs.k8s.io/kustomize/kyaml v0.21.0 // indirect
114113
sigs.k8s.io/randfill v1.0.0 // indirect
115114
sigs.k8s.io/structured-merge-diff/v6 v6.3.2-0.20260122202528-d9cc6641c482 // indirect
115+
sigs.k8s.io/yaml v1.6.0 // indirect
116116
)

internal/client/context_switch.go

Lines changed: 0 additions & 68 deletions
This file was deleted.

0 commit comments

Comments
 (0)