The set is deliberately flat CRUD, which makes it good for the loop a CI job actually needs: add_run against a case list, add_result per test as the suite reports, close_run at the end. Results go in one at a time — there is no batch result tool here — so a large suite means one call per test. Delete exists on every object type and takes only an id, so the credential that files results is also the credential that can remove a project.
A TestRail API client covering projects, test cases, runs, results and datasets, with read, create, update and delete on each.
- Projects read singly or in full, created with announcement and suite_mode, updated, marked completed, and deleted
- Test cases per project or suite, created and updated with title, separated steps, estimate, priority_id, type_id, milestone_id and refs
- Runs built from an explicit case_ids list or from include_all, assigned to a user, then updated, closed or deleted
- Results posted against a test with status_id, elapsed, defects, version, comment and assignee, and read back per test
- Datasets per project, created with name and description, renamed and deleted
A TestRail instance and an account with API access, supplied as TESTRAIL_URL, TESTRAIL_USERNAME and TESTRAIL_API_KEY. That account's permissions are the only limit on the delete tools, which cover projects, cases, runs and datasets.
One command plus a key — uvx testrail-mcp, then supply credentials
