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
1 change: 1 addition & 0 deletions docs/toolhive/reference/crd-spec.md
Original file line number Diff line number Diff line change
Expand Up @@ -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: \{\} <br /> |
| `observedGeneration` _integer_ | ObservedGeneration is the most recent generation observed for this MCPExternalAuthConfig.<br />It corresponds to the MCPExternalAuthConfig's generation, which is updated on mutation by the API Server. | | Optional: \{\} <br /> |
| `configHash` _string_ | ConfigHash is a hash of the current configuration for change detection | | Optional: \{\} <br /> |
| `referencingServers` _string array_ | ReferencingServers is a list of MCPServer resources that reference this MCPExternalAuthConfig<br />This helps track which servers need to be reconciled when this config changes | | Optional: \{\} <br /> |
Expand Down
40 changes: 35 additions & 5 deletions static/api-specs/publisher-provided.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
},
Expand Down Expand Up @@ -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",
Expand Down Expand Up @@ -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
}
}
}
33 changes: 29 additions & 4 deletions static/api-specs/toolhive-api.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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:
Expand Down Expand Up @@ -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:
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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:
Expand Down Expand Up @@ -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
Expand Down
30 changes: 30 additions & 0 deletions static/api-specs/toolhive-legacy-registry.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down Expand Up @@ -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",
Expand Down Expand Up @@ -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",
Expand Down Expand Up @@ -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",
Expand Down
7 changes: 7 additions & 0 deletions static/api-specs/upstream-registry.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
}
}
}
}
Expand Down