From 9cd6803782ca582aa212549885b46d8393da176a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 18 Feb 2026 13:18:25 +0000 Subject: [PATCH] Update ToolHive reference docs for v0.10.0 --- docs/toolhive/reference/crd-spec.md | 1 + .../api-specs/publisher-provided.schema.json | 40 ++++++++++++++++--- static/api-specs/toolhive-api.yaml | 33 +++++++++++++-- .../toolhive-legacy-registry.schema.json | 30 ++++++++++++++ .../api-specs/upstream-registry.schema.json | 7 ++++ 5 files changed, 102 insertions(+), 9 deletions(-) diff --git a/docs/toolhive/reference/crd-spec.md b/docs/toolhive/reference/crd-spec.md index 27c9b168..8a517f1d 100644 --- a/docs/toolhive/reference/crd-spec.md +++ b/docs/toolhive/reference/crd-spec.md @@ -1418,6 +1418,7 @@ _Appears in:_ | Field | Description | Default | Validation | | --- | --- | --- | --- | +| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#condition-v1-meta) array_ | Conditions represent the latest available observations of the MCPExternalAuthConfig's state | | Optional: \{\}
| | `observedGeneration` _integer_ | ObservedGeneration is the most recent generation observed for this MCPExternalAuthConfig.
It corresponds to the MCPExternalAuthConfig's generation, which is updated on mutation by the API Server. | | Optional: \{\}
| | `configHash` _string_ | ConfigHash is a hash of the current configuration for change detection | | Optional: \{\}
| | `referencingServers` _string array_ | ReferencingServers is a list of MCPServer resources that reference this MCPExternalAuthConfig
This helps track which servers need to be reconciled when this config changes | | Optional: \{\}
| diff --git a/static/api-specs/publisher-provided.schema.json b/static/api-specs/publisher-provided.schema.json index 50abf562..63131172 100644 --- a/static/api-specs/publisher-provided.schema.json +++ b/static/api-specs/publisher-provided.schema.json @@ -52,6 +52,17 @@ }, "uniqueItems": true }, + "overview": { + "type": "string", + "description": "Longer Markdown-formatted description for web display. Unlike the upstream description (limited to 100 chars), this supports full Markdown and is intended for rich rendering on catalog pages." + }, + "tool_definitions": { + "type": "array", + "description": "Full MCP Tool definitions describing the tools available from this server, including name, description, inputSchema, and annotations", + "items": { + "$ref": "#/definitions/tool_definition" + } + }, "metadata": { "$ref": "#/definitions/metadata" }, @@ -112,11 +123,6 @@ "description": "Number of repository stars", "minimum": 0 }, - "pulls": { - "type": "number", - "description": "Number of container image pulls or usage count", - "minimum": 0 - }, "last_updated": { "type": "string", "description": "Timestamp when the metadata was last updated, in RFC3339 format", @@ -392,6 +398,30 @@ } }, "additionalProperties": false + }, + "tool_definition": { + "type": "object", + "description": "An MCP Tool definition describing a tool available from this server", + "required": ["name"], + "properties": { + "name": { + "type": "string", + "description": "The name of the tool" + }, + "description": { + "type": "string", + "description": "A human-readable description of the tool" + }, + "inputSchema": { + "type": "object", + "description": "A JSON Schema object defining the expected parameters for the tool" + }, + "annotations": { + "type": "object", + "description": "Optional properties describing tool behavior (e.g., readOnlyHint, destructiveHint)" + } + }, + "additionalProperties": true } } } diff --git a/static/api-specs/toolhive-api.yaml b/static/api-specs/toolhive-api.yaml index fea9ffaf..3ca634e4 100644 --- a/static/api-specs/toolhive-api.yaml +++ b/static/api-specs/toolhive-api.yaml @@ -228,7 +228,7 @@ components: scopes_supported: description: |- ScopesSupported lists the OAuth 2.0 scope values advertised in discovery documents. - If empty, defaults to ["openid", "profile", "email", "offline_access"]. + If empty, defaults to registration.DefaultScopes (["openid", "profile", "email", "offline_access"]). items: type: string type: array @@ -806,6 +806,12 @@ components: Name is the identifier for the MCP server, used when referencing the server in commands If not provided, it will be auto-generated from the registry key type: string + overview: + description: |- + Overview is a longer Markdown-formatted description for web display. + Unlike the Description field (limited to 500 chars), this supports + full Markdown and is intended for rich rendering on catalog pages. + type: string permissions: $ref: '#/components/schemas/permissions.Profile' provenance: @@ -838,6 +844,11 @@ components: description: Tier represents the tier classification level of the server, e.g., "Official" or "Community" type: string + title: + description: |- + Title is an optional human-readable display name for the server. + If not provided, the Name field is used for display purposes. + type: string tools: description: Tools is a list of tool names provided by this MCP server items: @@ -892,9 +903,6 @@ components: description: LastUpdated is the timestamp when the server was last updated, in RFC3339 format type: string - pulls: - description: Pulls indicates how many times the server image has been downloaded - type: integer stars: description: Stars represents the popularity rating or number of stars for the server @@ -1037,6 +1045,12 @@ components: type: string oauth_config: $ref: '#/components/schemas/registry.OAuthConfig' + overview: + description: |- + Overview is a longer Markdown-formatted description for web display. + Unlike the Description field (limited to 500 chars), this supports + full Markdown and is intended for rich rendering on catalog pages. + type: string repository_url: description: RepositoryURL is the URL to the source code repository for the server @@ -1056,6 +1070,11 @@ components: description: Tier represents the tier classification level of the server, e.g., "Official" or "Community" type: string + title: + description: |- + Title is an optional human-readable display name for the server. + If not provided, the Name field is used for display purposes. + type: string tools: description: Tools is a list of tool names provided by this MCP server items: @@ -2040,6 +2059,12 @@ components: v1.installSkillRequest: description: Request to install a skill properties: + client: + description: Client is the target client (e.g., "claude-code") + type: string + force: + description: Force allows overwriting unmanaged skill directories + type: boolean name: description: Name or OCI reference of the skill to install type: string diff --git a/static/api-specs/toolhive-legacy-registry.schema.json b/static/api-specs/toolhive-legacy-registry.schema.json index 8012e80b..54694cda 100644 --- a/static/api-specs/toolhive-legacy-registry.schema.json +++ b/static/api-specs/toolhive-legacy-registry.schema.json @@ -110,6 +110,14 @@ "type": "string", "description": "Identifier for the MCP server, used when referencing the server in commands (auto-generated from the object key)" }, + "title": { + "type": "string", + "description": "Optional human-readable display name for the server. If not provided, the name field is used for display." + }, + "overview": { + "type": "string", + "description": "Longer Markdown-formatted description for web display. Unlike the description field (limited to 500 chars), this supports full Markdown and is intended for rich rendering on catalog pages." + }, "permissions": { "description": "Security profile and access permissions for the server", "$ref": "#/definitions/permissions" @@ -165,6 +173,13 @@ "minItems": 1, "uniqueItems": true }, + "tool_definitions": { + "type": "array", + "description": "Full MCP Tool definitions describing the tools available from this server, including name, description, inputSchema, and annotations", + "items": { + "type": "object" + } + }, "transport": { "type": "string", "description": "Communication transport protocol used by the MCP server", @@ -490,6 +505,14 @@ "type": "string", "description": "Identifier for the remote MCP server (auto-generated from the object key)" }, + "title": { + "type": "string", + "description": "Optional human-readable display name for the server. If not provided, the name field is used for display." + }, + "overview": { + "type": "string", + "description": "Longer Markdown-formatted description for web display. Unlike the description field (limited to 500 chars), this supports full Markdown and is intended for rich rendering on catalog pages." + }, "url": { "type": "string", "description": "Endpoint URL for the remote MCP server", @@ -532,6 +555,13 @@ "minItems": 1, "uniqueItems": true }, + "tool_definitions": { + "type": "array", + "description": "Full MCP Tool definitions describing the tools available from this server, including name, description, inputSchema, and annotations", + "items": { + "type": "object" + } + }, "headers": { "type": "array", "description": "HTTP headers for authentication to the remote server", diff --git a/static/api-specs/upstream-registry.schema.json b/static/api-specs/upstream-registry.schema.json index 72ea1a17..2ae69c76 100644 --- a/static/api-specs/upstream-registry.schema.json +++ b/static/api-specs/upstream-registry.schema.json @@ -78,6 +78,13 @@ } } } + }, + "skills": { + "type": "array", + "description": "Array of skills in the registry", + "items": { + "$ref": "https://raw.githubusercontent.com/stacklok/toolhive/main/pkg/registry/data/skill.schema.json" + } } } }