Skip to content

Commit 8345a6e

Browse files
committed
docs: pin v1.2.0/v1.3.0 rollout timeline for deprecated cluster-prefixed MCP tools
Signed-off-by: chathuranga95 <siriwardhanachathuranga@gmail.com>
1 parent a7166ea commit 8345a6e

1 file changed

Lines changed: 52 additions & 20 deletions

File tree

docs/reference/mcp-servers.mdx

Lines changed: 52 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,28 @@ For the best experience, configure **both** the Control Plane and Observability
3636

3737
### Control Plane MCP Server
3838

39-
The Control Plane MCP server provides **104 unique tools** organized into six toolsets.
39+
The Control Plane MCP server provides **77 canonical tools** organized into six toolsets, plus 27 deprecated cluster-prefixed aliases that remain listed for one release (see [Deprecated cluster-prefixed tools](#deprecated-cluster-prefixed-tools)).
4040

4141
:::info Tools in multiple toolsets
42-
Some read-only tools (marked with †) appear in both the default developer toolsets and the PE toolset. This allows platform engineers to use the PE toolset alongside Namespace and Project toolsets without needing to enable all developer toolsets. The per-toolset counts below sum to 117 (7 + 3 + 22 + 9 + 12 + 64); subtracting the 13 †-marked cross-toolset duplicates leaves 104 unique tools.
42+
Some read-only tools (marked with †) appear in both the default developer toolsets and the PE toolset. This allows platform engineers to use the PE toolset alongside Namespace and Project toolsets without needing to enable all developer toolsets. The per-toolset counts below sum to 117 (7 + 3 + 22 + 9 + 12 + 64); subtracting the 13 †-marked cross-toolset duplicates leaves 104 listed tools in this release — 77 canonical tools plus 27 deprecated cluster-prefixed aliases. From v1.2.0 onward the aliases are hidden by default, leaving 77 listed.
43+
:::
44+
45+
#### Deprecated cluster-prefixed tools
46+
47+
:::warning Deprecation notice
48+
The 27 `*_cluster_*` tools (cluster-scoped component types, traits, workflows, and planes) are **deprecated**. Each one has been collapsed into its namespace-scoped counterpart, which now accepts a `scope: "namespace" | "cluster"` argument (defaults to `"namespace"`). For example, `get_cluster_component_type` is replaced by `get_component_type` called with `scope: "cluster"`.
49+
50+
**Rollout timeline:**
51+
52+
| Release | `tools/list` behavior | Callable? |
53+
| ----------- | --------------------------------------------------------------------------------- | --------- |
54+
| **current** | Aliases **listed by default**, each marked deprecated in its description. | Yes |
55+
| **v1.2.0** | Aliases **hidden by default**; set `?includeDeprecatedTools=true` to opt back in. | Yes |
56+
| **v1.3.0** | Aliases **removed**; the `includeDeprecatedTools` flag is also removed. | No |
57+
58+
Every invocation of a deprecated alias returns a deprecation warning pointing to the replacement, so clients that ignore `tools/list` metadata still get a migration signal at call time.
59+
60+
If your integration depends on the legacy `*_cluster_*` names, migrate to the canonical tool with `scope: "cluster"` before v1.2.0 — discovery-driven clients that read `tools/list` will stop seeing the aliases on that release unless you append `?includeDeprecatedTools=true` to the MCP server URL (see [Per-Session Tool Filtering](#per-session-tool-filtering)).
4361
:::
4462

4563
<details>
@@ -92,7 +110,7 @@ Some read-only tools (marked with †) appear in both the default developer tool
92110
- `list_traits` † — List available traits in a namespace (autoscaling, ingress, service mesh, etc.)
93111
- `get_trait_schema` † — Get the parameter schema for a trait
94112

95-
**Platform Standards — Read-Only, Cluster-Scoped**
113+
**Platform Standards — Read-Only, Cluster-Scoped** _(deprecated — use the namespace-scoped tool with `scope: "cluster"`; see [Deprecated cluster-prefixed tools](#deprecated-cluster-prefixed-tools))_
96114

97115
- `list_cluster_component_types` † — List cluster-scoped component types shared across namespaces
98116
- `get_cluster_component_type` † — Get the full definition of a cluster-scoped component type
@@ -130,6 +148,9 @@ Some read-only tools (marked with †) appear in both the default developer tool
130148
- `get_workflow_run_events` — Get Kubernetes events for a workflow run (scheduling, pod-startup failures); optional `task` filter
131149
- `list_workflows` † — List all workflow templates in a namespace (CI/CD pipelines executed on the workflow plane)
132150
- `get_workflow_schema` † — Get the parameter schema for a workflow template
151+
152+
_Deprecated — use the namespace-scoped tool with `scope: "cluster"` instead; see [Deprecated cluster-prefixed tools](#deprecated-cluster-prefixed-tools):_
153+
133154
- `list_cluster_workflows` — List cluster-scoped workflow definitions shared across namespaces
134155
- `get_cluster_workflow` — Get the full definition of a cluster-scoped workflow
135156
- `get_cluster_workflow_schema` — Get the schema for a cluster-scoped workflow
@@ -172,7 +193,7 @@ The PE toolset is enabled by default. These tools are intended for platform admi
172193
- `list_observability_planes` — List all observability planes providing monitoring, logging, and tracing in a namespace
173194
- `get_observability_plane` — Get detailed observability plane info including observer URL and health status
174195

175-
**Infrastructure — Cluster-Scoped Planes (6)**
196+
**Infrastructure — Cluster-Scoped Planes (6)** _(deprecated — use the namespace-scoped tool with `scope: "cluster"`; see [Deprecated cluster-prefixed tools](#deprecated-cluster-prefixed-tools))_
176197

177198
- `list_cluster_dataplanes` — List all cluster-scoped data planes
178199
- `get_cluster_dataplane` — Get detailed info for a cluster-scoped data plane
@@ -195,12 +216,12 @@ The PE toolset is enabled by default. These tools are intended for platform admi
195216

196217
**Platform Standards — Creation Schemas (6)**
197218

198-
- `get_component_type_creation_schema` — Get the spec schema for creating a namespace-scoped component type
199-
- `get_cluster_component_type_creation_schema` — Get the spec schema for creating a cluster-scoped component type
200-
- `get_trait_creation_schema` — Get the spec schema for creating a namespace-scoped trait
201-
- `get_cluster_trait_creation_schema` — Get the spec schema for creating a cluster-scoped trait
202-
- `get_workflow_creation_schema` — Get the spec schema for creating a namespace-scoped workflow
203-
- `get_cluster_workflow_creation_schema` — Get the spec schema for creating a cluster-scoped workflow
219+
- `get_component_type_creation_schema` — Get the spec schema for creating a component type
220+
- `get_cluster_component_type_creation_schema` _(deprecated — use `get_component_type_creation_schema` with `scope: "cluster"`)_ — Get the spec schema for creating a cluster-scoped component type
221+
- `get_trait_creation_schema` — Get the spec schema for creating a trait
222+
- `get_cluster_trait_creation_schema` _(deprecated — use `get_trait_creation_schema` with `scope: "cluster"`)_ — Get the spec schema for creating a cluster-scoped trait
223+
- `get_workflow_creation_schema` — Get the spec schema for creating a workflow
224+
- `get_cluster_workflow_creation_schema` _(deprecated — use `get_workflow_creation_schema` with `scope: "cluster"`)_ — Get the spec schema for creating a cluster-scoped workflow
204225

205226
**Platform Standards — Write, Namespace-Scoped (9)**
206227

@@ -214,7 +235,7 @@ The PE toolset is enabled by default. These tools are intended for platform admi
214235
- `update_workflow` — Update an existing workflow (full replacement)
215236
- `delete_workflow` — Delete a workflow from a namespace
216237

217-
**Platform Standards — Read, Cluster-Scoped (6)**
238+
**Platform Standards — Read, Cluster-Scoped (6)** _(deprecated — use the namespace-scoped tool with `scope: "cluster"`; see [Deprecated cluster-prefixed tools](#deprecated-cluster-prefixed-tools))_
218239

219240
- `list_cluster_component_types` † — List cluster-scoped component types
220241
- `get_cluster_component_type` † — Get the full definition of a cluster-scoped component type
@@ -223,7 +244,7 @@ The PE toolset is enabled by default. These tools are intended for platform admi
223244
- `get_cluster_trait` † — Get the full definition of a cluster-scoped trait
224245
- `get_cluster_trait_schema` † — Get the schema for a cluster-scoped trait
225246

226-
**Platform Standards — Write, Cluster-Scoped (9)**
247+
**Platform Standards — Write, Cluster-Scoped (9)** _(deprecated — use the namespace-scoped tool with `scope: "cluster"`; see [Deprecated cluster-prefixed tools](#deprecated-cluster-prefixed-tools))_
227248

228249
- `create_cluster_component_type` — Create a new cluster-scoped component type
229250
- `update_cluster_component_type` — Update an existing cluster-scoped component type (full replacement)
@@ -298,21 +319,32 @@ The `namespace` and `project` toolsets are useful companions for the PE toolset
298319

299320
## Per-Session Tool Filtering
300321

301-
By default, the Control Plane MCP server filters `tools/list` and `tools/call` results by the authenticated user's permissions. Tools the user lacks permission for are hidden, and unauthorized calls are rejected. MCP clients can additionally narrow what a session sees, or opt out of authorization-based filtering, by passing optional query parameters when establishing the session.
322+
By default, the Control Plane MCP server filters `tools/list` and `tools/call` results by the authenticated user's permissions. Tools the user lacks permission for are hidden, and unauthorized calls are rejected. MCP clients can additionally narrow what a session sees, opt out of authorization-based filtering, or opt out of the deprecated cluster-prefixed aliases early, by passing optional query parameters when establishing the session.
302323

303-
| Query Parameter | Required | Default | Description |
304-
| --------------- | -------- | ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
305-
| `toolsets` | `false` | All configured toolsets | Comma-separated list of toolsets to expose via `tools/list` for the session (e.g. `namespace,component,pe`). Unknown toolset names are silently ignored. |
306-
| `filterByAuthz` | `false` | `true` | When `true`, hides tools the user cannot call and rejects unauthorized invocations. Set to `false` to disable MCP-layer authorization filtering. |
324+
| Query Parameter | Required | Default | Description |
325+
| ------------------------ | -------- | -------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
326+
| `toolsets` | `false` | All configured toolsets | Comma-separated list of toolsets to expose via `tools/list` for the session (e.g. `namespace,component,pe`). Unknown toolset names are silently ignored. |
327+
| `filterByAuthz` | `false` | `true` | When `true`, hides tools the user cannot call and rejects unauthorized invocations. Set to `false` to disable MCP-layer authorization filtering. |
328+
| `includeDeprecatedTools` | `false` | `true` (changing to `false` in v1.2.0) | Controls whether `tools/list` includes the deprecated cluster-prefixed aliases. The aliases remain callable regardless of this flag — it only controls listing. The flag and aliases are both removed in v1.3.0. |
307329

308-
**Example:**
330+
**Example — current release** (everything listed by default, so the flag is only needed if you want to opt out of the deprecated aliases early):
309331

310332
```
311-
http://api.openchoreo.localhost:8080/mcp?toolsets=namespace,component,pe&filterByAuthz=false
333+
http://api.openchoreo.localhost:8080/mcp?toolsets=namespace,component,pe&filterByAuthz=false&includeDeprecatedTools=false
334+
```
335+
336+
**Example — v1.2.0 and later** (deprecated aliases hidden by default; opt back in explicitly):
337+
338+
```
339+
http://api.openchoreo.localhost:8080/mcp?toolsets=namespace,component,pe&filterByAuthz=false&includeDeprecatedTools=true
312340
```
313341

314342
:::note
315-
Both query parameters are HTTP-only and read once when the session is established. The `toolsets` parameter only filters `tools/list` results; it does not gate `tools/call`. The control plane API enforces authorization independently of `filterByAuthz`, so disabling MCP-layer filtering does not grant additional access. It just exposes tools the user cannot successfully invoke.
343+
These query parameters are HTTP-only and read once when the session is established. The `toolsets` parameter only filters `tools/list` results; it does not gate `tools/call`. The control plane API enforces authorization independently of `filterByAuthz`, so disabling MCP-layer filtering does not grant additional access. It just exposes tools the user cannot successfully invoke.
344+
:::
345+
346+
:::note Authorization of scope-collapsed tools
347+
A scope-collapsed tool (one that accepts a `scope` argument) requires a distinct permission per scope — one for `scope: "namespace"` and one for `scope: "cluster"`. It appears in `tools/list` as long as the user holds the permission for **at least one** scope; a `tools/call` invocation is then authorized against the permission for the scope actually requested. So a user with only namespace-level permissions still sees the tool, but a call with `scope: "cluster"` is rejected unless they also hold the cluster-level permission.
316348
:::
317349

318350
## Finding MCP Server URLs

0 commit comments

Comments
 (0)