Overview
The API is resource-oriented JSON over HTTPS, mounted under:
https://YOUR-TESTVIBE-SERVER/api/v1/ops
Each reference page documents one operation across its three surfaces: the REST route, the MCP tool (same name as the page), and the CLI command. They are generated from one shared manifest and one shared operations core, so behavior and guardrails are identical everywhere.
Operations at a glance
| MCP tool | REST | CLI |
|---|---|---|
list_projects | GET /projects | testvibe projects |
get_credits | GET /credits | testvibe credits |
list_billing_history | GET /credits/history | testvibe credits history |
list_credit_usage | GET /credits/usage | testvibe credits usage |
list_features | GET /projects/{project}/features | testvibe features list |
get_feature | GET /projects/{project}/features/{feature} | testvibe features show <feature> |
create_feature | POST /projects/{project}/features | testvibe features create <name> --file <path> |
update_feature | PATCH /projects/{project}/features/{feature} | testvibe features update <feature> … |
delete_feature | DELETE /projects/{project}/features/{feature} | testvibe features delete <feature> |
generate_feature | POST /projects/{project}/features/{feature}/generate | testvibe generate <feature> |
get_generation_status | GET /projects/{project}/features/{feature}/generation | testvibe generate <feature> --watch |
wait_for_generation | (poll the status route) | --watch |
get_generation_log | GET /projects/{project}/features/{feature}/generation/log | — |
cancel_generation | POST /projects/{project}/features/{feature}/generation/cancel | — |
run_feature | POST /projects/{project}/features/{feature}/run | testvibe run <feature> |
wait_for_run | (poll the run route) | --wait |
get_run | GET /projects/{project}/runs/{runId} | testvibe runs show <runId> |
list_runs | GET /projects/{project}/runs | testvibe runs list |
get_run_artifacts | GET /projects/{project}/runs/{runId}/artifacts | testvibe runs artifacts <runId> |
list_files | GET /projects/{project}/files | testvibe files list |
read_file | GET /projects/{project}/files/content?path= | testvibe files get <path> |
write_file | PUT /projects/{project}/files/content | testvibe files put <path> --file <local> |
list_configs | GET /projects/{project}/configs | testvibe configs |
list_load_tests | GET /projects/{project}/load | testvibe load list |
run_load_test | POST /projects/{project}/load/{loadTest}/run | testvibe load run <loadTest> |
list_automations | GET /projects/{project}/automations | testvibe automations list |
get_automation | GET /projects/{project}/automations/{automationId} | testvibe automations show <automationId> |
create_automation | POST /projects/{project}/automations | testvibe automations create … |
update_automation | PATCH /projects/{project}/automations/{automationId} | testvibe automations update <automationId> … |
delete_automation | DELETE /projects/{project}/automations/{automationId} | testvibe automations delete <automationId> |
run_automation | POST /projects/{project}/automations/{automationId}/run | testvibe automations run <automationId> |
list_automation_runs | GET /projects/{project}/automations/{automationId}/runs | testvibe automations runs <automationId> |
get_coverage | GET /projects/{project}/coverage | testvibe coverage show |
scan_coverage | POST /projects/{project}/coverage/scan | testvibe coverage scan |
list_coverage_runs | GET /projects/{project}/coverage/runs | testvibe coverage runs |
run_coverage | POST /projects/{project}/coverage/run | testvibe coverage run |
list_plugins | GET /projects/{project}/plugins | testvibe plugins list |
install_plugin | POST /projects/{project}/plugins/{slug}/install | testvibe plugins install <slug> |
remove_plugin | POST /projects/{project}/plugins/{slug}/remove | testvibe plugins remove <slug> |
publish_plugin | POST /projects/{project}/plugins | testvibe plugins publish --name "…" |
unpublish_plugin | DELETE /projects/{project}/plugins/{slug} | testvibe plugins unpublish <slug> |
list_variables | GET /projects/{project}/variables | testvibe vars list |
set_variable | PUT /projects/{project}/variables/{name} | testvibe vars set <NAME> <value> |
delete_variable | DELETE /projects/{project}/variables/{name} | testvibe vars delete <NAME> |
list_secrets | GET /projects/{project}/secrets | testvibe secrets list |
set_secret | PUT /projects/{project}/secrets/{name} | testvibe secrets set <NAME> <value> |
delete_secret | DELETE /projects/{project}/secrets/{name} | testvibe secrets delete <NAME> |
info
wait_for_generation and wait_for_run are client-side conveniences (the MCP server and CLI poll for you). Over raw REST, poll the corresponding GET route — see Long-running operations.
Start with Conventions & errors for the request/response basics shared by every page.