diff --git a/docs/toolhive/guides-cli/registry.md b/docs/toolhive/guides-cli/registry.md index c7863a95..a8739720 100644 --- a/docs/toolhive/guides-cli/registry.md +++ b/docs/toolhive/guides-cli/registry.md @@ -185,6 +185,6 @@ registry. - [`thv registry` command reference](../reference/cli/thv_registry.md) - [`thv search` command reference](../reference/cli/thv_search.md) -- [`thv config set-registry-url` command reference](../reference/cli/thv_config_set-registry-url.md) -- [`thv config get-registry-url` command reference](../reference/cli/thv_config_get-registry-url.md) -- [`thv config unset-registry-url` command reference](../reference/cli/thv_config_unset-registry-url.md) +- [`thv config set-registry-url` command reference](../reference/cli/thv_config_set-registry.md) +- [`thv config get-registry-url` command reference](../reference/cli/thv_config_get-registry.md) +- [`thv config unset-registry-url` command reference](../reference/cli/thv_config_unset-registry.md) diff --git a/docs/toolhive/reference/cli/thv.md b/docs/toolhive/reference/cli/thv.md index ec51ae8d..4eac7208 100644 --- a/docs/toolhive/reference/cli/thv.md +++ b/docs/toolhive/reference/cli/thv.md @@ -48,7 +48,6 @@ thv [flags] * [thv rm](thv_rm.md) - Remove an MCP server * [thv run](thv_run.md) - Run an MCP server * [thv runtime](thv_runtime.md) - Commands related to the container runtime -* [thv runtime](thv_runtime.md) - Commands related to the container runtime * [thv search](thv_search.md) - Search for MCP servers * [thv secret](thv_secret.md) - Manage secrets * [thv serve](thv_serve.md) - Start the ToolHive API server diff --git a/docs/toolhive/reference/cli/thv_client_register.md b/docs/toolhive/reference/cli/thv_client_register.md index aeccb9a3..fbaa8e5c 100644 --- a/docs/toolhive/reference/cli/thv_client_register.md +++ b/docs/toolhive/reference/cli/thv_client_register.md @@ -18,6 +18,11 @@ Register a client for MCP server configuration Register a client for MCP server configuration. Valid clients: + - amp-cli: Sourcegraph Amp CLI + - amp-cursor: Sourcegraph Amp extension for Cursor + - amp-vscode: Sourcegraph Amp extension for VS Code + - amp-vscode-insider: Sourcegraph Amp extension for VS Code Insiders + - amp-windsurf: Sourcegraph Amp extension for Windsurf - claude-code: Claude Code CLI - cline: Cline extension for VS Code - cursor: Cursor editor diff --git a/docs/toolhive/reference/cli/thv_client_remove.md b/docs/toolhive/reference/cli/thv_client_remove.md index 7fb7e9bc..21b1eb41 100644 --- a/docs/toolhive/reference/cli/thv_client_remove.md +++ b/docs/toolhive/reference/cli/thv_client_remove.md @@ -18,6 +18,11 @@ Remove a client from MCP server configuration Remove a client from MCP server configuration. Valid clients: + - amp-cli: Sourcegraph Amp CLI + - amp-cursor: Sourcegraph Amp extension for Cursor + - amp-vscode: Sourcegraph Amp extension for VS Code + - amp-vscode-insider: Sourcegraph Amp extension for VS Code Insiders + - amp-windsurf: Sourcegraph Amp extension for Windsurf - claude-code: Claude Code CLI - cline: Cline extension for VS Code - cursor: Cursor editor diff --git a/docs/toolhive/reference/cli/thv_config.md b/docs/toolhive/reference/cli/thv_config.md index a8c7388f..c19d24be 100644 --- a/docs/toolhive/reference/cli/thv_config.md +++ b/docs/toolhive/reference/cli/thv_config.md @@ -33,10 +33,10 @@ The config command provides subcommands to manage application configuration sett * [thv](thv.md) - ToolHive (thv) is a lightweight, secure, and fast manager for MCP servers * [thv config get-ca-cert](thv_config_get-ca-cert.md) - Get the currently configured CA certificate path -* [thv config get-registry-url](thv_config_get-registry-url.md) - Get the currently configured registry URL +* [thv config get-registry](thv_config_get-registry.md) - Get the currently configured registry * [thv config otel](thv_config_otel.md) - Manage OpenTelemetry configuration * [thv config set-ca-cert](thv_config_set-ca-cert.md) - Set the default CA certificate for container builds -* [thv config set-registry-url](thv_config_set-registry-url.md) - Set the MCP server registry URL +* [thv config set-registry](thv_config_set-registry.md) - Set the MCP server registry * [thv config unset-ca-cert](thv_config_unset-ca-cert.md) - Remove the configured CA certificate -* [thv config unset-registry-url](thv_config_unset-registry-url.md) - Remove the configured registry URL +* [thv config unset-registry](thv_config_unset-registry.md) - Remove the configured registry diff --git a/docs/toolhive/reference/cli/thv_config_get-registry-url.md b/docs/toolhive/reference/cli/thv_config_get-registry.md similarity index 54% rename from docs/toolhive/reference/cli/thv_config_get-registry-url.md rename to docs/toolhive/reference/cli/thv_config_get-registry.md index 72b187fc..d78b66ff 100644 --- a/docs/toolhive/reference/cli/thv_config_get-registry-url.md +++ b/docs/toolhive/reference/cli/thv_config_get-registry.md @@ -1,30 +1,30 @@ --- -title: thv config get-registry-url +title: thv config get-registry hide_title: true -description: Reference for ToolHive CLI command `thv config get-registry-url` +description: Reference for ToolHive CLI command `thv config get-registry` last_update: author: autogenerated -slug: thv_config_get-registry-url +slug: thv_config_get-registry mdx: format: md --- -## thv config get-registry-url +## thv config get-registry -Get the currently configured registry URL +Get the currently configured registry ### Synopsis -Display the URL of the remote registry that is currently configured. +Display the currently configured registry (URL or file path). ``` -thv config get-registry-url [flags] +thv config get-registry [flags] ``` ### Options ``` - -h, --help help for get-registry-url + -h, --help help for get-registry ``` ### Options inherited from parent commands diff --git a/docs/toolhive/reference/cli/thv_config_set-registry-url.md b/docs/toolhive/reference/cli/thv_config_set-registry-url.md deleted file mode 100644 index d56f819f..00000000 --- a/docs/toolhive/reference/cli/thv_config_set-registry-url.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: thv config set-registry-url -hide_title: true -description: Reference for ToolHive CLI command `thv config set-registry-url` -last_update: - author: autogenerated -slug: thv_config_set-registry-url -mdx: - format: md ---- - -## thv config set-registry-url - -Set the MCP server registry URL - -### Synopsis - -Set the URL for the remote MCP server registry. -This allows you to use a custom registry instead of the built-in one. - -Example: - thv config set-registry-url https://example.com/registry.json - -``` -thv config set-registry-url [flags] -``` - -### Options - -``` - -p, --allow-private-ip Allow setting the registry URL, even if it references a private IP address - -h, --help help for set-registry-url -``` - -### Options inherited from parent commands - -``` - --debug Enable debug mode -``` - -### SEE ALSO - -* [thv config](thv_config.md) - Manage application configuration - diff --git a/docs/toolhive/reference/cli/thv_config_set-registry.md b/docs/toolhive/reference/cli/thv_config_set-registry.md new file mode 100644 index 00000000..376e03b5 --- /dev/null +++ b/docs/toolhive/reference/cli/thv_config_set-registry.md @@ -0,0 +1,46 @@ +--- +title: thv config set-registry +hide_title: true +description: Reference for ToolHive CLI command `thv config set-registry` +last_update: + author: autogenerated +slug: thv_config_set-registry +mdx: + format: md +--- + +## thv config set-registry + +Set the MCP server registry + +### Synopsis + +Set the MCP server registry to either a remote URL or local file path. +The command automatically detects whether the input is a URL or file path. + +Examples: + thv config set-registry https://example.com/registry.json # Remote URL + thv config set-registry /path/to/local-registry.json # Local file path + thv config set-registry file:///path/to/local-registry.json # Explicit file URL + +``` +thv config set-registry [flags] +``` + +### Options + +``` + -p, --allow-private-ip Allow setting the registry URL, even if it references a private IP address + -h, --help help for set-registry +``` + +### Options inherited from parent commands + +``` + --debug Enable debug mode +``` + +### SEE ALSO + +* [thv config](thv_config.md) - Manage application configuration + diff --git a/docs/toolhive/reference/cli/thv_config_unset-registry-url.md b/docs/toolhive/reference/cli/thv_config_unset-registry.md similarity index 53% rename from docs/toolhive/reference/cli/thv_config_unset-registry-url.md rename to docs/toolhive/reference/cli/thv_config_unset-registry.md index 4a4668ea..06b99a9b 100644 --- a/docs/toolhive/reference/cli/thv_config_unset-registry-url.md +++ b/docs/toolhive/reference/cli/thv_config_unset-registry.md @@ -1,30 +1,30 @@ --- -title: thv config unset-registry-url +title: thv config unset-registry hide_title: true -description: Reference for ToolHive CLI command `thv config unset-registry-url` +description: Reference for ToolHive CLI command `thv config unset-registry` last_update: author: autogenerated -slug: thv_config_unset-registry-url +slug: thv_config_unset-registry mdx: format: md --- -## thv config unset-registry-url +## thv config unset-registry -Remove the configured registry URL +Remove the configured registry ### Synopsis -Remove the registry URL configuration, reverting to the built-in registry. +Remove the registry configuration, reverting to the built-in registry. ``` -thv config unset-registry-url [flags] +thv config unset-registry [flags] ``` ### Options ``` - -h, --help help for unset-registry-url + -h, --help help for unset-registry ``` ### Options inherited from parent commands diff --git a/docs/toolhive/reference/cli/thv_logs.md b/docs/toolhive/reference/cli/thv_logs.md index f6ae1f0e..de1c5525 100644 --- a/docs/toolhive/reference/cli/thv_logs.md +++ b/docs/toolhive/reference/cli/thv_logs.md @@ -17,6 +17,9 @@ Output the logs of an MCP server or manage log files Output the logs of an MCP server managed by ToolHive, or manage log files. +By default, this command shows the logs from the MCP server container. +Use --proxy to view the logs from the ToolHive proxy process instead. + ``` thv logs [workload-name|prune] [flags] ``` @@ -26,6 +29,7 @@ thv logs [workload-name|prune] [flags] ``` -f, --follow Follow log output (only for workload logs) -h, --help help for logs + -p, --proxy Show proxy logs instead of container logs ``` ### Options inherited from parent commands diff --git a/docs/toolhive/reference/cli/thv_runtime.md b/docs/toolhive/reference/cli/thv_runtime.md index 059143ba..57d51efa 100644 --- a/docs/toolhive/reference/cli/thv_runtime.md +++ b/docs/toolhive/reference/cli/thv_runtime.md @@ -29,5 +29,4 @@ Commands related to the container runtime * [thv](thv.md) - ToolHive (thv) is a lightweight, secure, and fast manager for MCP servers * [thv runtime check](thv_runtime_check.md) - Ping the container runtime -* [thv runtime check](thv_runtime_check.md) - Ping the container runtime diff --git a/static/api-specs/toolhive-api.yaml b/static/api-specs/toolhive-api.yaml index ce52beae..9970ad4d 100644 --- a/static/api-specs/toolhive-api.yaml +++ b/static/api-specs/toolhive-api.yaml @@ -116,6 +116,11 @@ components: - ClaudeCode - Windsurf - WindsurfJetBrains + - AmpCli + - AmpVSCode + - AmpCursor + - AmpVSCodeInsider + - AmpWindsurf client.MCPClientStatus: properties: client_type: @@ -130,6 +135,11 @@ components: - ClaudeCode - Windsurf - WindsurfJetBrains + - AmpCli + - AmpVSCode + - AmpCursor + - AmpVSCodeInsider + - AmpWindsurf installed: description: Installed indicates whether the client is installed on the system @@ -139,6 +149,11 @@ components: ToolHive configuration type: boolean type: object + groups.Group: + properties: + name: + type: string + type: object ignore.Config: description: IgnoreConfig contains configuration for ignore processing properties: @@ -581,12 +596,19 @@ components: - ClaudeCode - Windsurf - WindsurfJetBrains + - AmpCli + - AmpVSCode + - AmpCursor + - AmpVSCodeInsider + - AmpWindsurf type: array uniqueItems: false type: object v1.bulkOperationRequest: - description: Request to perform bulk operations on workloads properties: + group: + description: Group name to operate on (mutually exclusive with names) + type: string names: description: Names of the workloads to operate on items: @@ -616,6 +638,11 @@ components: - ClaudeCode - Windsurf - WindsurfJetBrains + - AmpCli + - AmpVSCode + - AmpCursor + - AmpVSCodeInsider + - AmpWindsurf type: object v1.createClientResponse: properties: @@ -631,6 +658,23 @@ components: - ClaudeCode - Windsurf - WindsurfJetBrains + - AmpCli + - AmpVSCode + - AmpCursor + - AmpVSCodeInsider + - AmpWindsurf + type: object + v1.createGroupRequest: + properties: + name: + description: Name of the group to create + type: string + type: object + v1.createGroupResponse: + properties: + name: + description: Name of the created group + type: string type: object v1.createRequest: description: Request to create a new workload @@ -761,6 +805,15 @@ components: server: $ref: '#/components/schemas/registry.ImageMetadata' type: object + v1.groupListResponse: + properties: + groups: + description: List of groups + items: + $ref: '#/components/schemas/groups.Group' + type: array + uniqueItems: false + type: object v1.listSecretsResponse: description: Response containing a list of secret keys properties: @@ -1109,6 +1162,131 @@ paths: summary: List all clients status tags: - discovery + /api/v1beta/groups: + get: + description: Get a list of all groups + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/v1.groupListResponse' + description: OK + "500": + content: + application/json: + schema: + type: string + description: Internal Server Error + summary: List all groups + tags: + - groups + post: + description: Create a new group with the specified name + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/v1.createGroupRequest' + description: Group creation request + required: true + responses: + "201": + content: + application/json: + schema: + $ref: '#/components/schemas/v1.createGroupResponse' + description: Created + "400": + content: + application/json: + schema: + type: string + description: Bad Request + "409": + content: + application/json: + schema: + type: string + description: Conflict + "500": + content: + application/json: + schema: + type: string + description: Internal Server Error + summary: Create a new group + tags: + - groups + /api/v1beta/groups/{name}: + delete: + description: Delete a group by name. + parameters: + - description: Group name + in: path + name: name + required: true + schema: + type: string + - description: 'Delete all workloads in the group (default: false, moves workloads + to default group)' + in: query + name: with-workloads + schema: + type: boolean + responses: + "204": + content: + application/json: + schema: + type: string + description: No Content + "404": + content: + application/json: + schema: + type: string + description: Not Found + "500": + content: + application/json: + schema: + type: string + description: Internal Server Error + summary: Delete a group + tags: + - groups + get: + description: Get details of a specific group + parameters: + - description: Group name + in: path + name: name + required: true + schema: + type: string + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/groups.Group' + description: OK + "404": + content: + application/json: + schema: + type: string + description: Not Found + "500": + content: + application/json: + schema: + type: string + description: Internal Server Error + summary: Get group details + tags: + - groups /api/v1beta/registry: get: description: Get a list of the current registries @@ -1490,13 +1668,18 @@ paths: - version /api/v1beta/workloads: get: - description: Get a list of all running workloads + description: Get a list of all running workloads, optionally filtered by group parameters: - description: List all workloads, including stopped ones in: query name: all schema: type: boolean + - description: Filter workloads by group name + in: query + name: group + schema: + type: string responses: "200": content: @@ -1504,6 +1687,12 @@ paths: schema: $ref: '#/components/schemas/v1.workloadListResponse' description: OK + "404": + content: + application/json: + schema: + type: string + description: Group not found summary: List all workloads tags: - workloads @@ -1716,13 +1905,13 @@ paths: - workloads /api/v1beta/workloads/delete: post: - description: Delete multiple workloads by name + description: Delete multiple workloads by name or by group requestBody: content: application/json: schema: $ref: '#/components/schemas/v1.bulkOperationRequest' - description: Bulk delete request + description: Bulk delete request (names or group) required: true responses: "202": @@ -1742,13 +1931,13 @@ paths: - workloads /api/v1beta/workloads/restart: post: - description: Restart multiple workloads by name + description: Restart multiple workloads by name or by group requestBody: content: application/json: schema: $ref: '#/components/schemas/v1.bulkOperationRequest' - description: Bulk restart request + description: Bulk restart request (names or group) required: true responses: "202": @@ -1768,13 +1957,13 @@ paths: - workloads /api/v1beta/workloads/stop: post: - description: Stop multiple workloads by name + description: Stop multiple workloads by name or by group requestBody: content: application/json: schema: $ref: '#/components/schemas/v1.bulkOperationRequest' - description: Bulk stop request + description: Bulk stop request (names or group) required: true responses: "202":