product: assert audience: test-developer, operator, ai-assistant authority: normative
MCP Tools — Packages
Tools for managing test packages — the versioned bundles that contain YAML test files and runner assemblies.
All tool responses include a top-level station field containing the StationLabel
configured for this server instance.
See also:
tools-reference.mdfor the full tool index.
list_packages
Lists all packages in the registry with their status and lifecycle.
| Parameter | Type | Required | Description |
|---|---|---|---|
| (none) |
Returns: packages[] — each has name, version, status, lifecycleStatus, installedVersion
Status values: NotInstalled, Downloading, Installed, UpdateAvailable, Error
Calls: GET /api/packages
trigger_package_refresh
Triggers a background re-scan of the package registry to discover updates. Returns immediately; results arrive via SignalR (visible in the Packages UI page).
| Parameter | Type | Required | Description |
|---|---|---|---|
| (none) |
Returns: message confirming the refresh was triggered
Calls: POST /api/packages/refresh
download_package
Starts a background download of a named package from the registry.
Returns immediately (202 Accepted). To block until the download finishes, follow this
call with wait_for_package (preferred). Alternatively monitor the Packages UI page, or
poll list_packages until status == "Installed".
| Parameter | Type | Required | Description |
|---|---|---|---|
name |
string | Yes | Package name as shown in list_packages |
Returns: message confirming the download was accepted
Calls: POST /api/packages/{name}/download
wait_for_package
Blocks until an asynchronous package operation reaches a terminal state (completed or
failed), then returns the outcome — the package-lifecycle counterpart to
wait_for_test_completion. Use it instead of a fixed sleep after trigger_package_refresh
or download_package.
Call it immediately after triggering the operation: the operation runs asynchronously and
its terminal event fires later. Pass name to wait for that package's download; leave it empty
to wait for the next terminal event of any kind (e.g. a registry refresh, which is not
package-scoped). activate_package is already synchronous, so it does not need this.
| Parameter | Type | Required | Description |
|---|---|---|---|
name |
string | No | Package to wait for; omit to match the next terminal event of any kind |
timeoutSeconds |
int | No | Max time to wait; defaults to 120 when ≤ 0 |
Returns: { outcome, eventType, packageName, message, isError } where outcome is one of
completed, failed, timeout, not_connected.
Reliable deploy sequence (no guessed sleeps):
trigger_package_refresh
wait_for_package # name omitted → catches RegistryRefreshCompleted/Failed
download_package name: "PKG"
wait_for_package name: "PKG" # blocks until PackageDownloadCompleted/Failed
activate_package name: "PKG" # synchronous — its response is the result
Uses the same live SignalR stream as
poll_test_progress.wait_for_packageblocks for you;poll_test_progress(see live-events) returns the rawpackageEventsif you prefer to poll.
activate_package
Marks a downloaded package as active, making its test files available for execution.
| Parameter | Type | Required | Description |
|---|---|---|---|
name |
string | Yes | Package name |
Returns: message confirming activation
Calls: POST /api/packages/{name}/activate
install_package
Convenience tool: downloads and activates a package in a single step.
Polls list_packages internally until status == "Installed" (up to 120 seconds)
before calling activate.
| Parameter | Type | Required | Description |
|---|---|---|---|
name |
string | Yes | Package name |
Returns: download and activate message strings
uninstall_package
Deactivates and removes a package from the local cache.
| Parameter | Type | Required | Description |
|---|---|---|---|
name |
string | Yes | Package name |
Returns: message confirming removal
Calls: DELETE /api/packages/{name}
set_package_lifecycle
Sets the lifecycle status of a package (controls whether it is eligible for use in staging or production environments).
| Parameter | Type | Required | Description |
|---|---|---|---|
name |
string | Yes | Package name |
lifecycleStatus |
string | Yes | One of: NotReleased, Development, Staging, Production |
Returns: message confirming the change
Calls: PUT /api/packages/{name}/lifecycle
get_available_test_files
Lists all YAML test files available from activated packages. Identical to
list_available_tests but grouped here for discoverability.
| Parameter | Type | Required | Description |
|---|---|---|---|
| (none) |
Returns: testFiles[] — packageName, testName, filePath, requiredTags
Calls: GET /api/packages/test-files