Skip to content

Commit a0ef7a9

Browse files
Update ToolHive reference docs for v0.3.0
1 parent 84f13e4 commit a0ef7a9

File tree

6 files changed

+121
-23
lines changed

6 files changed

+121
-23
lines changed

docs/toolhive/reference/cli/thv.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ ToolHive (thv) is a lightweight, secure, and fast manager for MCP servers
1818
ToolHive (thv) is a lightweight, secure, and fast manager for MCP (Model Context Protocol) servers.
1919
It is written in Go and has extensive test coverage—including input validation—to ensure reliability and security.
2020

21-
Under the hood, ToolHive acts as a very thin client for the Docker/Podman Unix socket API.
21+
Under the hood, ToolHive acts as a very thin client for the Docker/Podman/Colima Unix socket API.
2222
This design choice allows it to remain both efficient and lightweight while still providing powerful,
2323
container-based isolation for running MCP servers.
2424

@@ -47,12 +47,12 @@ thv [flags]
4747
* [thv proxy](thv_proxy.md) - Create a transparent proxy for an MCP server with authentication support
4848
* [thv registry](thv_registry.md) - Manage MCP server registry
4949
* [thv restart](thv_restart.md) - Restart a tooling server
50-
* [thv rm](thv_rm.md) - Remove an MCP server
50+
* [thv rm](thv_rm.md) - Remove one or more MCP servers
5151
* [thv run](thv_run.md) - Run an MCP server
5252
* [thv runtime](thv_runtime.md) - Commands related to the container runtime
5353
* [thv search](thv_search.md) - Search for MCP servers
5454
* [thv secret](thv_secret.md) - Manage secrets
5555
* [thv serve](thv_serve.md) - Start the ToolHive API server
56-
* [thv stop](thv_stop.md) - Stop an MCP server
56+
* [thv stop](thv_stop.md) - Stop one or more MCP servers
5757
* [thv version](thv_version.md) - Show the version of ToolHive
5858

docs/toolhive/reference/cli/thv_rm.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,20 @@ mdx:
1111

1212
## thv rm
1313

14-
Remove an MCP server
14+
Remove one or more MCP servers
1515

1616
### Synopsis
1717

18-
Remove an MCP server managed by ToolHive.
18+
Remove one or more MCP servers managed by ToolHive.
1919

2020
```
21-
thv rm [workload-name] [flags]
21+
thv rm [workload-name...] [flags]
2222
```
2323

2424
### Options
2525

2626
```
27+
--all Delete all workloads
2728
--group string Delete all workloads in the specified group
2829
-h, --help help for rm
2930
```

docs/toolhive/reference/cli/thv_run.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,10 +107,10 @@ thv run [flags] SERVER_OR_IMAGE_OR_PROTOCOL [-- ARGS...]
107107
--otel-env-vars stringArray Environment variable names to include in OpenTelemetry spans (comma-separated: ENV1,ENV2)
108108
--otel-headers stringArray OpenTelemetry OTLP headers in key=value format (e.g., x-honeycomb-team=your-api-key)
109109
--otel-insecure Connect to the OpenTelemetry endpoint using HTTP instead of HTTPS
110-
--otel-metrics-enabled Enable OTLP metrics export (when OTLP endpoint is configured)
110+
--otel-metrics-enabled Enable OTLP metrics export (when OTLP endpoint is configured) (default true)
111111
--otel-sampling-rate float OpenTelemetry trace sampling rate (0.0-1.0) (default 0.1)
112112
--otel-service-name string OpenTelemetry service name (defaults to toolhive-mcp-proxy)
113-
--otel-tracing-enabled Enable distributed tracing (when OTLP endpoint is configured)
113+
--otel-tracing-enabled Enable distributed tracing (when OTLP endpoint is configured) (default true)
114114
--permission-profile string Permission profile to use (none, network, or path to JSON file)
115115
--print-resolved-overlays Debug: show resolved container paths for tmpfs overlays
116116
--proxy-mode string Proxy mode for stdio transport (sse or streamable-http) (default "sse")
@@ -132,6 +132,7 @@ thv run [flags] SERVER_OR_IMAGE_OR_PROTOCOL [-- ARGS...]
132132
--target-port int Port for the container to expose (only applicable to SSE or Streamable HTTP transport)
133133
--thv-ca-bundle string Path to CA certificate bundle for ToolHive HTTP operations (JWKS, OIDC discovery, etc.)
134134
--tools stringArray Filter MCP server tools (comma-separated list of tool names)
135+
--tools-override string Path to a JSON file containing overrides for MCP server tools names and descriptions
135136
--transport string Transport mode (sse, streamable-http or stdio)
136137
-v, --volume stringArray Mount a volume into the container (format: host-path:container-path[:ro])
137138
```

docs/toolhive/reference/cli/thv_stop.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@ mdx:
1111

1212
## thv stop
1313

14-
Stop an MCP server
14+
Stop one or more MCP servers
1515

1616
### Synopsis
1717

18-
Stop a running MCP server managed by ToolHive.
18+
Stop one or more running MCP servers managed by ToolHive.
1919

2020
```
21-
thv stop [workload-name] [flags]
21+
thv stop [workload-name...] [flags]
2222
```
2323

2424
### Options

static/api-specs/toolhive-api.yaml

Lines changed: 60 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,9 @@ components:
194194
Port is the port on which the workload is exposed.
195195
This is embedded in the URL.
196196
type: integer
197+
proxy_mode:
198+
description: ProxyMode is the proxy mode for stdio transport (sse or streamable-http).
199+
type: string
197200
remote:
198201
description: Remote indicates whether this is a remote workload (true) or
199202
a container workload (false).
@@ -326,6 +329,29 @@ components:
326329
If true, the value will be stored as a secret rather than as a plain environment variable
327330
type: boolean
328331
type: object
332+
registry.Group:
333+
properties:
334+
description:
335+
description: Description is a human-readable description of the group's
336+
purpose and functionality
337+
type: string
338+
name:
339+
description: Name is the identifier for the group, used when referencing
340+
the group in commands
341+
type: string
342+
remote_servers:
343+
additionalProperties:
344+
$ref: '#/components/schemas/registry.RemoteServerMetadata'
345+
description: RemoteServers is a map of server names to their corresponding
346+
remote server definitions within this group
347+
type: object
348+
servers:
349+
additionalProperties:
350+
$ref: '#/components/schemas/registry.ImageMetadata'
351+
description: Servers is a map of server names to their corresponding server
352+
definitions within this group
353+
type: object
354+
type: object
329355
registry.Header:
330356
properties:
331357
choices:
@@ -527,6 +553,13 @@ components:
527553
registry.Registry:
528554
description: Full registry data
529555
properties:
556+
groups:
557+
description: Groups is a slice of group definitions containing related MCP
558+
servers
559+
items:
560+
$ref: '#/components/schemas/registry.Group'
561+
type: array
562+
uniqueItems: false
530563
last_updated:
531564
description: LastUpdated is the timestamp when the registry was last updated,
532565
in RFC3339 format
@@ -785,24 +818,18 @@ components:
785818
description: ThvCABundle is the path to the CA certificate bundle for ToolHive
786819
HTTP operations
787820
type: string
788-
tool_override:
789-
additionalProperties:
790-
$ref: '#/components/schemas/runner.ToolOverride'
791-
description: |-
792-
ToolOverride is the map of tool names to override. Tools to override are
793-
specified as ToolOverride structs.
794-
type: object
795-
tool_override_file:
796-
description: |-
797-
ToolOverrideFile is the path to a file containing tool overrides.
798-
The file is a JSON struct mapping actual names to ToolOverride structs.
799-
type: string
800821
tools_filter:
801822
description: ToolsFilter is the list of tools to filter
802823
items:
803824
type: string
804825
type: array
805826
uniqueItems: false
827+
tools_override:
828+
additionalProperties:
829+
$ref: '#/components/schemas/runner.ToolOverride'
830+
description: ToolsOverride is a map from an actual tool to its overridden
831+
name and/or description
832+
type: object
806833
transport:
807834
description: Transport is the transport mode (stdio, sse, or streamable-http)
808835
type: string
@@ -869,6 +896,7 @@ components:
869896
items:
870897
type: string
871898
type: array
899+
uniqueItems: false
872900
headers:
873901
additionalProperties:
874902
type: string
@@ -1137,6 +1165,11 @@ components:
11371165
type: string
11381166
type: array
11391167
uniqueItems: false
1168+
tools_override:
1169+
additionalProperties:
1170+
$ref: '#/components/schemas/v1.toolOverride'
1171+
description: Tools override
1172+
type: object
11401173
transport:
11411174
description: Transport configuration
11421175
type: string
@@ -1413,6 +1446,16 @@ components:
14131446
description: Type of the secrets provider that was setup
14141447
type: string
14151448
type: object
1449+
v1.toolOverride:
1450+
description: Tool override
1451+
properties:
1452+
description:
1453+
description: Description of the tool
1454+
type: string
1455+
name:
1456+
description: Name of the tool
1457+
type: string
1458+
type: object
14161459
v1.updateRequest:
14171460
description: Request to update an existing workload (name cannot be changed)
14181461
properties:
@@ -1472,6 +1515,11 @@ components:
14721515
type: string
14731516
type: array
14741517
uniqueItems: false
1518+
tools_override:
1519+
additionalProperties:
1520+
$ref: '#/components/schemas/v1.toolOverride'
1521+
description: Tools override
1522+
type: object
14751523
transport:
14761524
description: Transport configuration
14771525
type: string

static/api-specs/toolhive-registry-schema.json

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,13 @@
3131
},
3232
"additionalProperties": false
3333
},
34+
"groups": {
35+
"type": "array",
36+
"description": "Collection of group definitions containing related MCP servers",
37+
"items": {
38+
"$ref": "#/definitions/group"
39+
}
40+
},
3441
"version": {
3542
"type": "string",
3643
"description": "Registry schema version",
@@ -546,6 +553,47 @@
546553
}
547554
},
548555
"additionalProperties": false
556+
},
557+
"group": {
558+
"type": "object",
559+
"description": "Group definition containing related MCP servers that can be deployed together",
560+
"required": ["name", "description"],
561+
"properties": {
562+
"name": {
563+
"type": "string",
564+
"description": "Identifier for the group, used when referencing the group in commands",
565+
"pattern": "^[a-z0-9][a-z0-9-]*[a-z0-9]$",
566+
"minLength": 1,
567+
"maxLength": 100
568+
},
569+
"description": {
570+
"type": "string",
571+
"description": "Human-readable description of the group's purpose and functionality",
572+
"minLength": 10,
573+
"maxLength": 500
574+
},
575+
"servers": {
576+
"type": "object",
577+
"description": "Collection of MCP server entries within this group indexed by server name",
578+
"patternProperties": {
579+
"^[a-z0-9][a-z0-9-]+[a-z0-9]$": {
580+
"$ref": "#/definitions/server"
581+
}
582+
},
583+
"additionalProperties": false
584+
},
585+
"remote_servers": {
586+
"type": "object",
587+
"description": "Collection of remote MCP server entries within this group indexed by server name",
588+
"patternProperties": {
589+
"^[a-z0-9][a-z0-9-]+[a-z0-9]$": {
590+
"$ref": "#/definitions/remote_server"
591+
}
592+
},
593+
"additionalProperties": false
594+
}
595+
},
596+
"additionalProperties": false
549597
}
550598
}
551599
}

0 commit comments

Comments
 (0)