Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/upstream-projects.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ projects:

- id: toolhive
repo: stacklok/toolhive
version: v0.29.1
version: v0.29.3
# toolhive is a monorepo covering the CLI, the Kubernetes
# operator, and the vMCP gateway. It also introduces cross-
# cutting features that land in concepts/, integrations/,
Expand Down
2 changes: 1 addition & 1 deletion docs/toolhive/guides-k8s/deploy-operator.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ groups using these values:
| Value | Description | Default |
| ------------------------- | ----------------------------------------------------- | ------- |
| `crds.install.server` | Install server CRDs (MCPServer, MCPRemoteProxy, etc.) | `true` |
| `crds.install.registry` | Install registry CRDs (MCPRegistry) | `true` |
| `crds.install.registry` | Install registry CRDs (MCPRegistry, deprecated) | `true` |
| `crds.install.virtualMcp` | Install vMCP CRDs (VirtualMCPServer, etc.) | `true` |
| `crds.keep` | Preserve CRDs when uninstalling the chart | `true` |

Expand Down
11 changes: 11 additions & 0 deletions docs/toolhive/guides-registry/quickstart.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,17 @@ This quickstart covers the standalone Registry Server that you host and curate
yourself. If you're looking for the built-in catalog that ships with the
ToolHive CLI and UI, see the [Introduction](./intro.mdx) for a comparison.

:::warning[MCPRegistry CRD is deprecated]

This quickstart uses the `MCPRegistry` CRD, which is deprecated and will be
removed in a future release. The CRD remains fully functional and is the fastest
path to a running Registry Server for experimentation. For new long-lived
deployments, use the [toolhive-registry-server Helm chart](./deploy-helm.mdx)
instead. See [Deploy the Registry Server](./deployment.mdx) for a comparison of
the deployment methods.

:::

## What you'll learn

- How to install the ToolHive Operator, which bundles the `MCPRegistry` CRD
Expand Down
2 changes: 1 addition & 1 deletion docs/toolhive/reference/crds/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ references.
type: 'link',
href: '/toolhive/reference/crds/mcpregistry',
label: 'MCPRegistry',
description: 'Deploy a ToolHive Registry Server.',
description: 'Deploy a ToolHive Registry Server (deprecated).',
}}
/>

Expand Down
6 changes: 6 additions & 0 deletions docs/toolhive/reference/crds/mcpregistry.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,12 @@ toc_max_heading_level: 4

`MCPRegistry` deploys a [ToolHive Registry Server](../../guides-registry/intro.mdx) in the cluster. The operator watches `MCPRegistry` resources and provisions the Registry Server, its PostgreSQL backing, and the configured sources (Git, ConfigMap, URL, or Kubernetes discovery) that populate its catalog of MCP server definitions.

:::warning[Deprecated]

The `MCPRegistry` CRD is deprecated and will be removed in a future release. The CRD remains fully functional, but `kubectl` now prints a deprecation warning on apply or get and the operator emits a `Warning` event recommending the [`toolhive-registry-server` Helm chart](https://github.com/stacklok/toolhive-registry-server). For new deployments, see [Deploy with Helm](../../guides-registry/deploy-helm.mdx).

:::

**API:** `toolhive.stacklok.dev/v1beta1`
· **Scope:** Namespaced · **Short names:** `mcpreg`, `registry`

Expand Down
4 changes: 2 additions & 2 deletions scripts/lib/crd-intros.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -82,11 +82,11 @@ export const intros = {
MCPRegistry: {
slug: 'mcpregistry',
group: 'core',
summary: 'Deploy a ToolHive Registry Server.',
summary: 'Deploy a ToolHive Registry Server (deprecated).',
description:
'Schema reference for MCPRegistry, which declares a ToolHive Registry Server deployment managed by the operator.',
intro:
'`MCPRegistry` deploys a [ToolHive Registry Server](../../guides-registry/intro.mdx) in the cluster. The operator watches `MCPRegistry` resources and provisions the Registry Server, its PostgreSQL backing, and the configured sources (Git, ConfigMap, URL, or Kubernetes discovery) that populate its catalog of MCP server definitions.',
'`MCPRegistry` deploys a [ToolHive Registry Server](../../guides-registry/intro.mdx) in the cluster. The operator watches `MCPRegistry` resources and provisions the Registry Server, its PostgreSQL backing, and the configured sources (Git, ConfigMap, URL, or Kubernetes discovery) that populate its catalog of MCP server definitions.\n\n:::warning[Deprecated]\n\nThe `MCPRegistry` CRD is deprecated and will be removed in a future release. The CRD remains fully functional, but `kubectl` now prints a deprecation warning on apply or get and the operator emits a `Warning` event recommending the [`toolhive-registry-server` Helm chart](https://github.com/stacklok/toolhive-registry-server). For new deployments, see [Deploy with Helm](../../guides-registry/deploy-helm.mdx).\n\n:::',
},

// Shared configuration - grouping, then auth, then observability/behavior,
Expand Down
2 changes: 1 addition & 1 deletion static/api-specs/crds/index.json
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@
"registry"
],
"scope": "Namespaced",
"description": "MCPRegistry is the Schema for the mcpregistries API",
"description": "MCPRegistry is the Schema for the mcpregistries API.\n\nThe MCPRegistry CRD is deprecated and will be removed in a future release.\nInstall the ToolHive registry server via the toolhive-registry-server Helm chart\ninstead: https://github.com/stacklok/toolhive-registry-server",
"references": [],
"referencedBy": [],
"slug": "mcpregistry"
Expand Down
2 changes: 1 addition & 1 deletion static/api-specs/crds/mcpexternalauthconfigs.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -376,7 +376,7 @@
"type": "object"
},
"tls": {
"description": "TLS configures TLS for connections to the Redis/Valkey master.\nPresence of this field enables TLS. Omit to use plaintext.",
"description": "TLS configures TLS for connections to the Redis/Valkey master or cluster nodes.\nPresence of this field enables TLS. Omit to use plaintext.",
"properties": {
"caCertSecretRef": {
"description": "CACertSecretRef references a Secret containing a PEM-encoded CA certificate\nfor verifying the server. When not specified, system root CAs are used.",
Expand Down
2 changes: 1 addition & 1 deletion static/api-specs/crds/mcpregistries.schema.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "MCPRegistry",
"description": "MCPRegistry is the Schema for the mcpregistries API",
"description": "MCPRegistry is the Schema for the mcpregistries API.\n\nThe MCPRegistry CRD is deprecated and will be removed in a future release.\nInstall the ToolHive registry server via the toolhive-registry-server Helm chart\ninstead: https://github.com/stacklok/toolhive-registry-server",
"x-kubernetes-group": "toolhive.stacklok.dev",
"x-kubernetes-kind": "MCPRegistry",
"x-kubernetes-version": "v1beta1",
Expand Down
2 changes: 1 addition & 1 deletion static/api-specs/crds/mcpremoteproxies.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,7 @@
"type": "object"
},
"oidcConfigRef": {
"description": "OIDCConfigRef references a shared MCPOIDCConfig resource for OIDC authentication.\nThe referenced MCPOIDCConfig must exist in the same namespace as this MCPRemoteProxy.\nPer-server overrides (audience, scopes) are specified here; shared provider config\nlives in the MCPOIDCConfig resource.",
"description": "OIDCConfigRef references a shared MCPOIDCConfig resource for OIDC authentication.\nThe referenced MCPOIDCConfig must exist in the same namespace as this MCPRemoteProxy.\nPer-server overrides (audience, scopes) are specified here; shared provider config\nlives in the MCPOIDCConfig resource.\n\nSECURITY: if this field is omitted and no other authentication source is configured,\nthe proxy runs UNAUTHENTICATED. It accepts every request that can reach its port and\nforwards it to the remote MCP server under a synthetic local-user identity, with no\ntoken or credential check. Set this field to enforce identity-based access control\nper request.",
"properties": {
"audience": {
"description": "Audience is the expected audience for token validation.\nThis MUST be unique per server to prevent token replay attacks.",
Expand Down
2 changes: 1 addition & 1 deletion static/api-specs/crds/mcpservers.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,7 @@
"type": "integer"
},
"oidcConfigRef": {
"description": "OIDCConfigRef references a shared MCPOIDCConfig resource for OIDC authentication.\nThe referenced MCPOIDCConfig must exist in the same namespace as this MCPServer.\nPer-server overrides (audience, scopes) are specified here; shared provider config\nlives in the MCPOIDCConfig resource.",
"description": "OIDCConfigRef references a shared MCPOIDCConfig resource for OIDC authentication.\nThe referenced MCPOIDCConfig must exist in the same namespace as this MCPServer.\nPer-server overrides (audience, scopes) are specified here; shared provider config\nlives in the MCPOIDCConfig resource.\n\nSECURITY: if this field is omitted and no other authentication source is configured,\nthe proxy runs UNAUTHENTICATED. It accepts every request that can reach its port and\nforwards it to the MCP server under a synthetic local-user identity, with no token or\ncredential check. Set this field to enforce identity-based access control per request.",
"properties": {
"audience": {
"description": "Audience is the expected audience for token validation.\nThis MUST be unique per server to prevent token replay attacks.",
Expand Down
2 changes: 1 addition & 1 deletion static/api-specs/crds/virtualmcpservers.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -267,7 +267,7 @@
"type": "object"
},
"tls": {
"description": "TLS configures TLS for connections to the Redis/Valkey master.\nPresence of this field enables TLS. Omit to use plaintext.",
"description": "TLS configures TLS for connections to the Redis/Valkey master or cluster nodes.\nPresence of this field enables TLS. Omit to use plaintext.",
"properties": {
"caCertSecretRef": {
"description": "CACertSecretRef references a Secret containing a PEM-encoded CA certificate\nfor verifying the server. When not specified, system root CAs are used.",
Expand Down
5 changes: 5 additions & 0 deletions static/api-specs/publisher-provided.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,11 @@
"minimum": 1,
"maximum": 65535
},
"stateless": {
"type": "boolean",
"description": "Whether the server only supports POST requests (no SSE/GET).",
"default": false
},
"oauth_config": {
"description": "OAuth/OIDC configuration for remote servers",
"$ref": "#/$defs/oauth_config"
Expand Down
6 changes: 6 additions & 0 deletions static/api-specs/toolhive-api.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3321,6 +3321,9 @@ components:
description: RepositoryURL is the URL to the source code repository for
the server
type: string
stateless:
description: Stateless indicates the server only supports POST (no SSE/GET)
type: boolean
status:
description: Status indicates whether the server is currently active or
deprecated
Expand Down Expand Up @@ -3525,6 +3528,9 @@ components:
description: RepositoryURL is the URL to the source code repository for
the server
type: string
stateless:
description: Stateless indicates the server only supports POST (no SSE/GET)
type: boolean
status:
description: Status indicates whether the server is currently active or
deprecated
Expand Down