- expose scenario file upload, listing, and content retrieval over MCP\n- expose run artifact listing and content retrieval with end-to-end coverage
79 lines
3.3 KiB
Markdown
79 lines
3.3 KiB
Markdown
# 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.
|
|
|