# MCP tools The MCP endpoint is exposed at `/mcp` (Streamable HTTP transport). The server currently registers the following tools. ## Sessions | Tool | Description | |---|---| | `list_sessions` | List stored sessions (paginated) | | `delete_session` | Delete a session by UUID | ## Environments | Tool | Description | |---|---| | `list_environments` | List environments (paginated) | | `get_environment` | Get one environment by UUID | | `create_environment` | Create environment (`name`, `urls`) | | `update_environment` | Update environment (`id`, optional `name`/`urls`) | | `delete_environment` | Delete environment by UUID | `urls` is a free-form key/value map. Common keys: `id_url`, `cabinet_url`, `admin_url`. ## Browser (ad-hoc) | Tool | Description | |---|---| | `open_url` | Open URL with optional `sessionName`, return page/title/content | | `exec_code` | Execute Playwright JS — script receives a single `context` argument (see `scenario.md`). Optional `environmentId` (UUID) resolves environment from DB for `context.getEnv()`. Optional `credentials` (`{ alias: credentialUUID }`) resolves credentials from DB for `context.getCredential(alias)`. | ## Scenarios | Tool | Description | |---|---| | `list_scenarios` | List scenarios (paginated) | | `get_scenario` | Get scenario with steps | | `create_scenario` | Create scenario by `name` | | `update_scenario` | Rename scenario | | `delete_scenario` | Delete scenario | | `create_scenario_step` | Add step to scenario | | `get_scenario_step` | Get one step | | `update_scenario_step` | Update step fields | | `delete_scenario_step` | Delete step | | `list_scenario_runs` | List runs for a scenario | | `run_scenario` | Trigger run for scenario | | `get_scenario_run` | Get run with step runs and logs | | `wait_for_scenario_run` | Wait until run is `pass` or `fail` | | `export_scenario` | Export scenario payload | | `import_scenario` | Import scenario payload | ## Scenario Files | Tool | Description | |---|---| | `upload_scenario_file` | Upload a file to a scenario; accepts optional `expiresAt` (ISO 8601 date string) | | `list_scenario_files` | List scenario files (paginated) | | `get_scenario_file_content` | Retrieve file content as base64 with metadata | ## Run Artifact Files | Tool | Description | |---|---| | `list_run_files` | List files (artifacts) created during a scenario run (paginated) | | `get_run_file_content` | Retrieve run artifact content as base64 with metadata; run artifacts are read-only and inherit expiry from the run artifact subsystem | ## Binary Content Handling File tools transport binary payloads as base64-encoded strings in a `contentBase64` field with an accompanying `encoding: "base64"` marker in the response. When retrieving file content via `get_scenario_file_content` or `get_run_file_content`, decode the base64 to recover the original bytes. Scenario files uploaded via `upload_scenario_file` must have their content pre-encoded as base64. Run artifacts are created implicitly through scenario execution (via `context.downloadFile()` during step execution) and cannot be uploaded via MCP. ## Notes - Tool IDs and entity IDs are UUIDs. - `create_scenario_step` schema still accepts legacy `type`/`sessionName` fields for compatibility. Current scheduler executes `execCode` plus optional `validateCode` and does not branch by step type.