VSS Orchestrator MCP
The VSS Orchestrator MCP server is the host-side process that NemoClaw’s agent calls to deploy and operate VSS. It exposes a Model Context Protocol function group named vss_orchestrator that generates Docker Compose artifacts, runs docker compose operations in the background, lists containers, and fetches logs.
The server is packaged with the VSS agent and started via uv run nat mcp serve. In the notebook flow, Section 6.1 starts it on port 9988 and polls the profiles tool until healthy.
Configuration
The notebook starts the MCP server with this config file:
deploy/docker/scripts/vss_orchestrator_mcp_config.yml
The registered function group implementation lives in:
services/agent/packages/vss_agents/src/vss_agents/orchestrator/tools.py
Before starting the server outside the notebook, verify the absolute paths in the YAML match your checkout and writable data locations:
deployments_dir- absolute path todeploy/docker.source_compose_yaml- absolute path todeploy/docker/compose.yml.source_env- absolute path template for VSS profiles.envfiles, with{profile}placeholder.mdx_data_dir- base writable VSS data directory used for generated deployments. This overrides anyVSS_DATA_DIRvalue in the selected profile.envfile.output_dir- writable directory wheredocker_generatestores generated env and compose artifacts.
If any path is invalid or non-writable, startup or artifact generation fails early.
Environment variables
This section documents the environment variables read by the MCP server process. In the notebook flow, users set the VSS_* notebook variables in Section 1.3; Section 6.1 maps them to these unprefixed MCP process environment variables before launch.
docker_generate resolves profile values from lowest to highest precedence:
- Selected profile
.envdefaults. HARDWARE_PROFILEand hardware/model rules fromvss_orchestrator_mcp_config.yml.- MCP server startup environment, such as credentials, remote LLM/VLM endpoints, and GPU device IDs.
- Per-call
env_overridesfromdocker_generate.
Starting the server standalone
From services/agent/:
Call a tool directly with the NAT MCP client:
The notebook automates startup and writes logs to <VSS_REPO_DIR>/.orchestrator-artifacts/vss_orchestrator_mcp.log.
Key IDs returned by tools
Tools coordinate through two opaque IDs:
docker_compose_id- returned bydocker_generate; used bydocker_read,docker_up, anddocker_down.docker_compose_ops_id- returned bydocker_up/docker_down; used bydocker_statusto poll a background operation.
Tool reference
The MCP server exposes nine tools, all prefixed vss_orchestrator__.
docker_up runs pre-compose checks before starting Docker. It ensures data directories exist, downloads configured NGC model artifacts for profiles that need them, and creates alerts engine directories for the alerts profile.
Tool payloads and responses
profiles
profiles
List supported deployment profiles. Payload: none (use {}).
prereqs
prereqs
Run prerequisite checks. Payload: none (use {}).
docker_generate
docker_generate
Validate the profile/env and generate resolved env + compose artifacts.
Payload:
Options:
profileis required and supportsbase,search,lvs, andalerts.profile_modeis required foralertsand currently supportsverificationandreal-time. Other profiles do not acceptprofile_mode.env_overridesdefaults to[]and acceptsKEY=VALUEstrings. For values that can be set, see the Environment variables table and the selected profile.envdefaults. Per-callenv_overridesvalues have the highest precedence.
Response:
docker_read
docker_read
Fetch generated env/compose artifact contents by docker_compose_id.
Payload:
Options:
docker_compose_idis required and must be a compose ID returned bydocker_generate.
Response:
docker_list
docker_list
List Docker container names. Payload: none (use {}).
all_containers defaults to true. Use { "all_containers": false } only if you want to list running containers instead of all containers, including stopped ones.
Response:
docker_logs
docker_logs
Fetch logs for one container. Be mindful when requesting a large number of log lines because it can consume many chat tokens.
Payload:
Options:
container_nameis required and must be the Docker container name.taildefaults to20and accepts values from1to200.
Response:
docker_up
docker_up
Start deployment for a generated compose id. Returns immediately, and status can be polled via docker_status.
Payload:
Options appended to the docker compose up command:
docker_compose_idis required and must be a compose ID returned bydocker_generate.builddefaults totrueand appends--build.force_recreateappends--force-recreate.pull_alwaysappends--pull always.
Response:
docker_status
docker_status
Poll a running docker_up / docker_down operation.
Payload:
Options:
docker_compose_ops_idis required and must be an operation ID returned bydocker_upordocker_down.tail_linesdefaults to5and accepts values from1to20.
Response:
docker_down
docker_down
Stop and remove a deployment for a generated compose id. Returns immediately, and status can be polled via docker_status.
Payload:
Options appended to the docker compose down command:
docker_compose_idis required and must be a compose ID returned bydocker_generate.remove_volumesdefaults totrueand appends-v.remove_orphansdefaults totrueand appends--remove-orphans.deep_cleandefaults tofalse. When set totrue, a successful down operation also deletes the configuredmdx_data_dir.
Response: